|
FreeBSD boot
При включении машины выполняется проверка оборудования и установка конфигураций, заданных в BIOS и CMOS. Процедура проверки оборудования запускает тест памяти, а также поиск устройств IDE или SCSI. После этого на экран выводится таблица с данными о найденных устройствах и настройках. Затем BIOS читает главную загрузочную запись (Master Boot Record) (MBR) ведущего устройства первого контроллера в поисках информации о первом загрузочном блоке. Задача MBR и первых двух загрузочных блоков - запустить заг-рузчик, который конфигурирует ядро. Каждый из последующих загрузочных блоков несколько сложнее, чем предыдущий. Размер двух первых из них ограничен 512 байтами (т.е. размером MBR и загрузочного сектора слайса). Ниже мы рассмотрим назначение всех блоков. Загрузочный блок 0 (bootO). Этот первичный блок находится в MBR и содержит список доступных слайсов, из числа которых с помощью функциональных клавиш можно выбрать нужный для загрузки. F1 FreeBSD F2 Linux F3 ?? Default: F1 Нажатие соответствующей функциональной клавиши позволяет выбрать нужный слайс. Если подождать несколько секунд, то система выберет слайс, установленный по умолчанию. Загрузочный блок 1 (boot1). Он содержит несложную программу, которая запускается из загрузочного сектора слайса (slice), выбранного в bootO. Программа использует сокращенную версию утилиты disklabel, разбивающую слайс на разделы (о чем подробно рассказано в главе 19) для нахождения и запуска загрузчика boot2. Заметьте, что boot l не имеет пользовательского интерфейса. Загрузочный блок 2 (boot1). Наконец, система достигает загрузочного блока, которому отведено достаточно места, чтобы он мог содержать код основного загрузчика, который умеет читать файлы из загружаемой файловой системы. В ранних версиях FreeBSD этот блок выдавал запрос, позволяющий указать, откуда загружать ядро (кроме установки по умолчанию). Теперь он автоматически запускает программу, называемую загрузчиком (loader), которая поддерживает пользовательский интерфейс и имеет другие возможности. Загрузчик (loader). Эта программа находится в каталоге /boot. Она читает конфигурационные файлы /boot/defaults/loader.conf и /boot/loader.conf, а затем загружает ядро и указанные в них модули. Файл /boot/loader.conf содержит установки, отменяющие /boot/defaults/loader.conf, и работает подобно файлу /etc/rc.conf. Загрузчик ожидает нажатия клавиши в течение 10 секунд. Если его не последует, он загружает ядро в состоянии, заданном по умолчанию. Если нажать Enter, программа предложит интерфейс командной строки, с помощью которого можно полностью управлять процедурой загрузки ядра. Пусть, например, требуется загрузить определенный модуль ядра (скажем, /modules/portal.ko) на этапе загрузки, до того как система загрузится целиком. Кроме того, необходимо просмотреть все модули, находящиеся в памяти на текущий момент. Все это можно выполнить посредством приглашения ok, как показано ниже:
ok load portal. ko /modules/portal.ko text=0xld18 data=0xlf4+0x4 syms=[0x4+0x8d0+0x4+0x6bf] ok Ismod 0x100000: kernel (elf kernel, Ox355be4) Ox455be4: /boot/kernel.conf (userconfig script, Ox4c) 0x456000: portal.ko (elf module, ОхЗеЬО)
На этом фаза процесса загрузки, связанная с загрузочными блоками, завершается. На финальной стадии управление берет система FreeBSD: ядро загружается в память, проверяет все доступные устройства, выполняет сценарии конфигурирования ресурсов (resource configuration), создающие необходимую рабочую среду, и запускает различные системные службы. Ядро (kernel). Когда загрузчик закончит свою работу и передаст управление следующей стадии, ядро начинает проверять все найденные устройства и выводить результаты на экран. Именно на этой стадии на экран выводится основная масса сообщений. Все сообщения заносятся в файлы dmesg, прочесть которые позволяет команда dmesg. init После того как ядро полностью загружено в память, управление передается процессу init, и начинается заключительная стадия процедуры загрузки. Об этом говорит сообщение Automatic reboot in progress (Происходит автоматическая перезагрузка). При этом init запускает Resource Configuration script - сценарий конфигурирования ресурсов (/etc/rc). Этот сценарий в первую очередь проверяет целостность всех файловых систем, указанных в файле /etc/fstab Процесс init обращается к каталогу / usr/local/etc/rc.d после того, как запускает все сценарии /etc/rc.*. Все выполняемые файлы из этого каталога, имеющие расширение .sh, запускаются в алфавитном порядке.
basics/posts/fbsd-boot -- Last updated 2010-04-27 Tuesday 12:00:45 Edit
© copyright 2010
Design by: lev