CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
17.09.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: BSD :: FreeBSD

... И всё начинается с рестарта.
Загрузка и инициализация системы

CITKIT.ru

Страницы: предыдущая :: 1 :: 2 :: 3 :: 4 :: ... :: 7 :: следующая

Содержание

Стадии загрузки

В этой ОС для загрузки системы используется программа, общая для всех операционок BSD-семейства. Она имеет собственное имя, и имя это, как ни странно, — BSD Loader (хотя, как будет ясно чуть позже, это несколько условно).

Должен покаяться — за несколько лет общения с FreeBSD и эпизодическим знакомством с ее сестрами (OpenBSD и даже NetBSD) у меня как-то не было повода разбираться с устройством их загрузчика. Ну грузит он прекрасно родную систему — и замечательно (например, FreeBSD). Грузит также и другие BSD-системы — еще лучше. Что без напряга и Linux может загрузить — так вообще здорово. А то, что еще и на загрузку Windows способен — это уж просто бесплатное приложение...

Как и пребывал бы я в счастливом незнании, если бы как-то, в связи с установкой FreeBSD на ноутбук Toshiba, не пришлось покопаться немного с опциями BSD Loader. И тут оказалось, что это — программа с мощными интерактивными функциями, да еще и обладающая возможностью настройки. Не сравнить с GRUB'ом, конечно, но если не экспериментировать с многочисленными операционками на многих винчестерах, — функций loader'а оказывается более чем достаточно. Что я и попытаюсь продемонстрировать ниже.

Основная особенность загрузчика BSD Loader, отличающая его от Lilo и, в меньшей степени, GRUB, — то, что он не маскирует свою многокомпонентную природу, включая четыре (почти) самостоятельные программы.

Первая часть загрузчика (т.н. boot0) — это программа, записываемая при инсталляции системы в загрузочный сектор диска, с которого осуществляется загрузка машины согласно установкам BIOS. Для дисков с интерфейсом PATA Обычно это Master на первом IDE-канале, но возможны варианты (например, при наличии аппаратного ATA RAID или дополнительных ATA-контроллеров). Для SATA дисков в качестве первого загрузочного устройства, как правило, через BIOS Setup может быть определён любой диск -- именно он и должен нести в своём загрузочном секторе boot0.

Программа boot0 отвечает за первую стадию этапа загрузки, в которой происходит чтение таблицы первичных дисковых разделов, вывод их списка (если разделов более одного), некоторого периода ожидания для выбора пользователем (по умолчанию загрузочным будет раздел, выбранный в предыдущем сеансе работы) и после такового (или по истечении фиксированного периода ожидания), передачи управления коду, записанному в загрузочном секторе выбранного (или умолчального) раздела. Выбор раздела осуществляется нажатием клавиш F1-F4). Если дисков два, нажатие клавиши F5 просто передаст управление на MBR второго из них — а там уж события потекут в зависимости от того, что в нем записано: читать разделы на втором физическом диске boot0 сам по себе не способен.

Список разделов для выбора включает их имена в соответствии с идентификаторами типа файловой системы, например:

F1	DOS
F2	Linux
F3	BSD
F5	Drive 1

Важно, что BSD Loader не может ни опознать логические разделы внутри расширенного раздела DOS, ни загрузить с них какую-либо операционку, если Extended раздел не несёт своего собственного разгрузчика.

В принципе наличие первой части BSD-загрузчика не является обязательным: его вполне может подменять загрузчик Linux (тот же Lilo, передающий управление на загрузочный сектор BSD-слайса "по цепочке") или мультисистемный GRUB, который напрямую способен работать с файловыми системами и загружать ядра разных операционок.

Вторая часть BSD Loader, boot1, размещается в загрузочном секторе первичного раздела, несущего BSD-систему (BSD-слайса). То есть и boot0, и boot1 лежат не только за пределами файловой системы, но и, фактически, вне собственно слайса BSD. Третья же часть (boot2) лежит уже внутри слайса, но не входит в какой-либо из его логических разделов.

Вторая и третья части загрузчика — это, в сущности, единая программа, разделенная только из-за ограничений на размер загрузочного сектора раздела (512 байт). Так что в задачу boot1 входит только опознать слайс BSD, отыскать на нем boot2 и передать ему управление. А уж тот обязан, выждав некоторое время, опознать корневую файловую систему, отыскать на ней и запустить бинарный исполняемый файл — /boot/loader, образующий четвертую часть загрузчика; строго говоря, термин BSD loader только к этой программе и относится.

Таким образом, можно видеть, что первые три части BSD-загрузчика (boot0, boot1 и boot2) лежат вне файловых систем установленной ОС BSD. В которую мы попадаем только начиная с запуска loader, обычного исполняемого файла, помещаемого в специальном каталоге /boot корневой файловой системы.

Правда, в каталоге /boot (это — "умолчальное" место размещения loader) наряду с его исполняемым файлом можно видеть также файлы с именами boot0, boot1 и boot2. Но они представляют собой лишь копии соответствующего кода, расположенного (и запускающегося) вне файловой системы BSD. Назначение их — восстановление возможности загрузки после аварийных ситуаций.

Задача loader'а — быстренько загрузить ядро и набор умолчальных модулей, после чего он выводит свое меню с логотипом проекта; со всем этим мы уже сталкивались при инсталляции. Как уже говорилось в главе про инсталляцию, меню содержит следующие пункты:

1. Boot FreeBSD [default]
2. Boot FreeBSD with ACPI disabled
3. Boot FreeBSD in Safe Mode
4. Boot FreeBSD in single user mode
5. Boot FreeBSD with verbose logging
6. Escape to loader prompt
7. Reboot

Если не сделать никакого выбора — через десять секунд начнет грузиться умолчальный вариант. Для предотвращения чего (и получения дополнительного времени на размышления) достаточно нажать Spacebar — отсчет времени остановится, и загрузки не будет до выбора в явном виде.

После выбора или истечения срока давности начинается довольно длительный процесс определения оборудования, в ходе которого на экран выводятся многочисленные сообщения ядра — их отличие от обычных сообщений — в ярко-белом "окрасе" символов. Сообщения эти очень интересны, но рассмотреть их нелегко. Что, впрочем, не страшно — в дальнейшем их можно будет просмотреть командой dmesg. После этого монтируется корневая файловая система, и с нее (обычным исполняемым файлом /sbin/init) запускается процесс init, отрабатываются стартовые скрипты. В ознаменование этого ярко-белый цвет сообщений ядра сменяется на обычный сероватый — этап загрузки, интересующий нас в данный момент, закончен.




Страницы: предыдущая :: 1 :: 2 :: 3 :: 4 :: ... :: 7 :: следующая

Комментарии

аноним, Mon Oct 5 17:51:54 2009:
Алексей, четверг, 18 декабря 2008 г. 00:36:37:
Толи я такой нуб. Толи для таких нубов как я написано не совсем понятно. "в текстовом редакторе открывается файл /etc/rc.conf". Непонятно как открыть в редакторе,и когда это вообще делать

ee /etc/rc.conf
vi /etc/rc.conf - какой больше нравится.

"ttyv8 "/usr/local/bin/kdm -nodaemon" xterm off secure - надо "on". в ttyv8 обычно - xdm, kdm в ttyv9
Raven, Sun Dec 21 14:34:07 2008:
18.2 секунды это ровно 100 тиков.
Системные часы работают с частотой 18.2 тика в секунду. и, кстати, команда, приведенная для конфигурирования:
boot0cfg -t 30 -s 2 -v -f /boot/boot0.old ad0
задаст всего 30 тиков, а не 30 секунд ожидания.
Алексей, Thu Dec 18 00:36:37 2008:
Толи я такой нуб. Толи для таких нубов как я написано не совсем понятно. "в текстовом редакторе открывается файл /etc/rc.conf". Непонятно как открыть в редакторе,и когда это вообще делать. "ttyv8 "/usr/local/bin/kdm -nodaemon" xterm off secure
обеспечит авторизацию в менеджере от KDE " я так пологаю должно быть on вместо off? или я чего то не понимаю? И вообще что-то не совсем мне понятно как менять все эти конфиги. А так вообще очень познавательно. Надеюсь Ваш материал поможет освоить мне FreeBSD.
Алексей Федорчук, Tue Nov 4 22:21:33 2008:
2 аноним, вторник, 4 ноября 2008 г. 21:40:49:
____
Спасибо, пофиксил
аноним, Tue Nov 4 21:40:49 2008:
(hd0,1 с точки зрения GRUB, /dev/ad1s1 по Free'шному)

Опечатка, надо hd1,0.
аноним, Mon Nov 3 13:42:37 2008:
команду
# shutdown now
я заменяю на
#kill 1 1
(так короче)
И еще. less - смотрелка, а редактировать - чем-нибудь, вроде ee. Я почему упоминаю такие мелочи - начинающие могут смутиться, а FreeBSd нужно любить!
Woolfy, Fri Oct 31 12:51:56 2008:
"
Для чего каждая из них проверяется на наличие бита "чистого размонтирования" (clean byte),
"
Все таки наверное, "байт чистого размонтирования".
Хотя, уместнее будет, назвать его просто - "флагом".
Алексей Федорчук, Wed Oct 29 12:38:29 2008:
2 Александр
Ага, спасибо
Александр, Wed Oct 29 12:24:24 2008:
Опечатка:
"... ведь размер загрузочного сектора раздела составляет те же 512 Кбайт ..."
Кбайт -> байт

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds