Использование файлов-строителей

Вопрос: Итак, у меня есть файл-строитель, что теперь?
Ответ: Если у вас есть файл-строитель, вам остается только создать образ файловой системы используя утилиту «mkifs». Выглядит это примерно так:

mkifs -v my.build my.ifs
Она берет файл-строитель с именем «my.build» и создает загрузочный модуль «my.ifs».

Вопрос: Хорошо! Я получил «my.ifs», что дальше?
Ответ: Ничего себе! Вы получили его. Сходите на перерыв, вы работали над этим глупым материалом слишком долго… поправлюсь, не вы, а я 😉
Хм… Давайте вернемся к работе. Вы хотите так или иначе загрузить и использовать ваш образ. Теперь мы должны понять, как эти вещи работают, чтобы приспособить их для своей работы! Позволю себе кратко описать загрузочный процесс ОС. Когда мы включаем компьютер, он запустит BIOS, который сначала выполнит POST (Power On Self Test). Затем будут инициализированы присутствующие системные компоненты. Если будут обнаружены некоторые специальные компоненты, тогда BIOS вызовет соответствующие им расширенные подпрограммы, чтобы их тоже инициализировать. Наконец, когда все проинициализировано, BIOS посмотрит, есть ли кто-то, чтобы перехватить управление. Он проверит загрузочную запись и решит, где ее искать и в какой последовательности загружать. Предположим, что BIOS просматривает жесткий диск с самого начала. Жесткий диск разделен на несколько разделов, каждая из которых действует как независимый диск. Track0/Sector0/Head0 активного раздела жесткого диска (а также Flash Disk-а), как предполагается, содержит MBR (Master Boot Record). BIOS, обнаружив MBR-подпись в этом секторе, загружает его в память и передает ему управление. MBR — очень маленькая универсальная программа, которую фактически не знает как загружать ОС, но знает, какие разделы содержит ОС. Нулевой сектор раздела содержит «Boot Records» (загрузочную запись). Этот блок начальной загрузки — определяет специфику раздела ОС и знает, как ее грузить. Если мы загружаемся с дискеты MBR отсутствует, и загрузчик находится в Track0/Sector0/Head0 диска.

В QNX загрузчик (это характерно для любого мультисистемного загрузчика) находится в MBR. После выбора загрузочного раздела, он загружает boot records этого раздела и передает управление ему непосредственно. В том случае, если это QNX раздел, тогда управление берет на себя QNX и выводит знакомое сообщение «Press ESC for .altboot.». После этого он начинает загружать содержимое «.boot» или «.altboot», в зависимости от выбора пользователя. «.boot» (или «.altboot») — это образ neutrino. Он связывается с заголовком «.boot» или «.altboot» и копирует загрузочный код в память, загружает критические структуры данных с информацией, которая у него есть и обрабатывает ее по управлению загрузочного кода. Обратите внимание, что код запуска — «startup-bios» для «.bootstrap» файла строителя (эти данные никогда не сжимаются). Сейчас все это — еще не QNX. Но все это уже знает, как проводить исследование различных аппаратных средств. Он получает информацию про определенные параметры ЦП машины, формирует связь между ядром и машиной, распаковывает образ, затем загружает ядро и наконец запускает сценарий запуска. Ура-а-а-а!!! Так много всего происходит, чтобы запустить эту глупую коробку…

Итак, чему же мы научились от всего этого рассказа? Если вы не уверены в себе, я рекомендовал бы просмотреть вышесказанное снова. Так или иначе серьезные люди выяснили бы все что им нужно, мы однозначно крюком или хуком должны получить наш образ neutrino в виде «.boot» (или «.altboot», поскольку вам это нравится!). Создание образа относительно просто и требует самых минимальных знаний программы….. (жаль, что не дают призы за мою работу)… «dinit». Ниже приведено его типичное использование:

dinit -f my.ifs /dev/fd0
Эта программа форматирует гибкий диск, записывает boot records и заполняет «.boot» содержимым my.ifs. Если у вас уже есть созданные разделы, вы только заменяете /.altboot my.ifs, используя:

cp -f my.ifs/.altboot
Предупреждение. Вы должны быть твердо уверены, что по крайней мере один из /.boot и /.altboot является нормальным и позволит вам загрузиться в вашу систему, иначе вы будете жалеть об этом позже.

Все сказали и сделали… сейчас можно перегружаться.