9.1.1. Начальная загрузка: LILO и GRUB
9.1.1. Начальная загрузка: LILO и GRUB
Общие механизмы
Как известно, первая программа, которая выполняется после включения компьютера, — это BIOS. Она находит загрузочное устройство, считывает в память его первый (нулевой) сектор и передает на него управление. В этом секторе находится MBR (Master Boot Record) — главная загрузочная запись размером в 512 байт, в которой помещаются:
? первичный загрузчик;
? таблица разделов диска (Partition Table) размером в 64 байта, описывающая четыре первичных раздела: номера их первого и последнего цилиндров, тип файловой системы и признак активности раздела;
? «волшебное число» (0xAA55), предназначенное для проверки, служит ли данный сектор загрузочным.
Формат MBR стандартен для всех операционных систем, а содержание области, отведенной под первичный загрузчик, может различаться. Этот загрузчик очень мал, поэтому перед ним стоит всего одна задача: найти на диске и считать в память код загрузчика следующего этапа, разворачивающего уже саму операционную систему, и передать ему управление.
В ОС Windows 9x первичный загрузчик передает управление на Boot Record — первый сектор того первичного раздела, который отмечен как активный (bootable — такой может быть только один). В более сложных системах из MBR запускается диспетчер загрузки (NTLoader для Windows NT, LILO и GRUB — для Linux), позволяющий выбрать вариант загрузки и даже загружаемую ОС. Такую гибкость диспетчеру обеспечивает возможность не ограничиваться тем объемом данных, который помещается в MBR, а читать необходимые данные из файлов на диске. Достигается эта гибкость ценой зависимости от файловой системы: существуют файловые системы (например, XFS и ReiserFS с включенным режимом оптимизации дискового пространства), с которыми ОС Linux может работать, но загружаться с них не может. Отдельный раздел /boot, о котором говорилось в п.1.2.2 в связи с «барьером 1024 цилиндра», необходим еще и поэтому: на нем должна быть создана файловая система ext2fs или ext3fs, а для всех остальных разделов файловые системы можно выбирать произвольно.
Загрузчик LILO
Стандартный загрузчик Linux — LILO (LInux LOader) — состоит из двух частей: первичного загрузчика LI и вторичного LO. LI располагается в MBR и только и умеет, что загружать LO, а тот уже передает управление ядру или вызывает другой первичный загрузчик (например, Windows 9x). LO находится в файле на диске (по умолчанию /boot/boot.b). О файловых системах LI не знает, поэтому карта размещения этого файла хранится в нем в виде «цилиндр/головка/сектор». Помещает ее туда утилита /sbin/lilo, которую нужно запускать после любого изменения LO или его конфигурационного файла /etc/lilo.conf.
У вторичного загрузчика LO есть собственная карта размещения файлов (по умолчанию /boot/map). По ней он ищет загружаемое ядро и образ виртуального диска, поэтому после любого изменения ядра или загружаемых модулей тоже обязательно запускать утилиту lilo.
Что такое виртуальный диск? Представьте себе загрузку Linux со SCSI-диска или другого устройства, драйвер которого не вкомпилирован в ядро, а подгружается в виде модуля. LILO сможет найти и прочитать с него файл образа ядра. Теперь ядру предстоит смонтировать корневую файловую систему. Чтобы сделать это, нужно подключить драйвер SCSI, а чтобы найти драйвер в /lib/modules, нужно смонтировать корневую файловую систему.
Похожая проблема возникает при первоначальной установке ОС Linux: для работы инсталлятора нужна файловая система со стандартными утилитами, а на диске ее еще нет. Обе проблемы решаются в Linux с помощью технологии initrd (INITial Ram Disk): вместе с ядром LILO загружает в память образ стартового диска, и ядро монтирует его как обычную файловую систему. В этой файловой системе находятся модули, необходимые для работы с нестандартными внешними устройствами и сетью, и утилиты для их подгрузки. Подключив модули, ядро отсоединяет виртуальный диск и монтирует настоящую корневую файловую систему.
Файл образа виртуального диска обычно называется /boot/initrd-<версия_ядра>. Если нестандартных устройств у вас нет или их драйверы встроены в ядро, то этот файл для загрузки не нужен.
Поведение LILO зависит от настроек в его конфигурационном файле /etc/lilo.conf. Ниже приведен пример такого файла. Символ #, как обычно, служит для комментариев.
Листинг 9.1. Примерный файл /etc/lilo.conf
# LILO version: 21.5
# Общий раздел
#
# использовать MBR первого жесткого диска первого
# контроллера IDE
boot=/dev/hda
#
# Карта LO
map=/boot/map
#
# Файл вторичного загрузчика
install=/boot/boot.b
#
# Режим для загрузочных дискет. У меня закомментирован.
# compact
#
# Режим VGA: normal - 80x25, ext - 80x50
vga=normal
#
# Раскладка клавиатуры
keytable=/boot/ru4.kit
# Диск поддерживает режим LBA (Large Block Access) —
# трансляцию
# физических адресов в логические так,
# чтобы число цилиндров не превышало
# понятных BIOS 1024. Другое значение этого
# параметра - linear. Не меняйте значения, выставленного
# инсталлятором, если вы не знаете точно, что делаете.
lba32
#
# Сообщение, которое выдается при загрузке
message=/boot/message
#
# Задержка 5 секунд (в других версиях LILO этот параметр
# называется delay)
timeout=50
#
# Вывести message и приглашение
# к выбору загружаемого ядра на
# timeout/10 секунд, после которых загружается ядро,
# выбранное по умолчанию.
# Если prompt не установлен, добиться приглашения
# можно, удерживая <Shift> во время загрузки.
prompt
#
#Цветовая схема
menu-scheme=wb:bw:wb:bw
#
# Ядро, загружаемое по умолчанию. Если не указано, то
# загружается первое в списке
default=Fedora
#
# Список вариантов загрузки, не более 16.
# В каждой секции варианта должна быть строка
# label. Это имя, которое вводится в ответ на приглашение
# LILO или является командой меню и служит для выбора
# загружаемого ядра или ОС.
#
image=/boot/vmlinuz-2.4.20 # ядро
label=linux-initrd # метка
initrd=/boot/initrd-2.4.20.img
root=/dev/hda6 # монтировать этот раздел как корневой
read-only # режим монтирования / на время загрузки
#
image=/boot/vmlinuz-2.6.9-1.667
label=Fedora
root=/dev/hda2
read-only
#
image=/boot/vmlinuz
label=failsafe
root=/dev/hda6
append=" mem=64M failsafe" # параметры, передаваемые ядру
read-only
#
other=/dev/hda1 # ОС - не Linux
label=WindowsXP # root не указывается
table=/dev/hda # где находится таблица разделов
Если вы определили секцию other=/dev/hda1, то в корневом каталоге раздела /dev/hda1 (диска С:) должен находиться вторичный загрузчик. У меня, например, на одном из компьютеров с много вариантной загрузкой там находится NTLoader (поскольку WindowsXP была установлена до Linux), и LILO успешно загружает WindowsXP.
Команда append позволяет передать ядру необходимые параметры. Ее формат:
append=" параметр1[=значение1][, значение2...] [параметр2[=значение3][,значение4...]...]"
Значения разделяются запятой без пробелов, параметры разделяются пробелами. Например, у вас есть устройство CD-RW, которое вы до сих пор использовали как обыкновенный CD-ROM, подключив его как Secondary Slave, то есть /dev/hdd. Чтобы записывать компакт-диски под Linux, CD-RW должен быть устройством SCSI, значит, это устройство нужно эмулировать. Команда выглядит так:
append=" hdd=ide-scsi "
Не забудьте после каждого изменения конфигурационного файла запустить утилиту lilo. Некоторые ее полезные ключи:
? -V — показать версию LILO;
? -q — показать текущую карту загрузки;
? -t — проверить lilo.conf на ошибки;
? -u — удалить LILO. После удаления вы сможете загрузить Linux только с внешнего носителя (дискеты).
Если вы решили пока не удалять LILO, то при очередной загрузке системы вас встретит приглашение LILO. Нажмите <Ввод>, чтобы загрузить вариант по умолчанию. Нажмите <Tab> для просмотра вариантов. Иногда на экран выдается только подсказка:
LILO
Чтобы выбрать ядро, нужно нажать клавишу «Shift», после чего появится подсказка:
LILO boot:
и только теперь можно нажать <Tab>. Если вы введете команду help, то получите список всех команд LILO.
Чтобы загрузиться в однопользовательском режиме (например, для восстановления системы после аварии), введите в строке приглашения:
<метка_варианта> single
Если вы переустановили Windows, а она заменила вам содержимое MBR, то восстановить его можно, загрузившись с дискеты или компакт-диска и введя команду lilo. Таким же образом можно установить LILO, если при инсталляции системы вы выбрали другой диспетчер загрузки.
Любопытно, что четыре буквы приглашения LILO — это отметки об успешном окончании четырех шагов загрузки. Если вы видите меньше четырех букв, то это значит:
? L<xx>: первичный загрузчик запустился, но не смог загрузить вторичный. Двузначное число xx — это код ошибки. Обычно причина ошибки — аппаратный сбой.
? LI: LI смог загрузить вторичный загрузчик, но не смог передать ему управление. Причина: перемещение /boot/boot.b без запуска утилиты lilo. Чаще всего это значит, что вы удалили или добавили раздел.
? LIL: LO запустился, но не смог прочитать карту размещения файлов. Аппаратный сбой.
? LIL?: LO загрузился по неправильному адресу. Причина — перемещение /boot/boot.b без запуска утилиты lilo.
? LIL-: испорчена карта размещения файлов. Причина — перемещение /boot/map без запуска утилиты lilo.
? Еще одной причиной любой из этих ошибок может быть неправильное указание геометрии диска (несовпадение ее с фактической).
Загрузчик GRUB
Другой известный диспетчер загрузки — это набирающий все большую популярность GNU GRUB (GRand Unified Bootloader). В дистрибутивах Mandrake и Fedora Core этот загрузчик используется по умолчанию, хотя я рекомендую вам сменить его на проверенный временем LILO.
GRUB использует несколько отличную от LILO схему загрузки. Вторичный загрузчик хранится не в каком-то файле, а в не используемом системой пространстве. Обычно это вся первая дорожка диска. Если места для полноценного вторичного загрузчика там недостаточно, туда помещается маленький загрузчик промежуточного этапа, «полуторный», состоящий из драйвера файловой системы и инструкций для вызова настоящего, большого, вторичного загрузчика. Благодаря такой организации GRUB поддерживает большинство файловых систем (FAT и FAT32, ext2fs и ext3fs, ReiserFS, XFS, BSD FFS), понимает большинство форматов исполняемых файлов и — не главное, но самое заметное для начинающего системного администратора, — изменения в конфигурационном файле вступают в силу сразу же, без прописывания их в специальном месте специальной утилитой.
Конфигурационный файл GRUB называется /boot/grub/grub.conf. В мгновенно устаревающих руководствах вы можете встретить другое название — /boot/grub/menu.1st — но это не страшно: этот файл является символической ссылкой на первый. Пример такого файла приведен ниже.
Листинг 9.2. Примерный файл /boot/grub/grub.conf
#boot=/dev/hda
default=0
fallback=1
timeout=5
splashimage=(hd0,1)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.9-1.667)
root (hd0,1)
kernel /vmlinuz-2.6.9-1.667 ro root=/dev/hda2
initrd /initrd-2.6.9-1.667.img
title WindowsXP
rootnoverify (hd0,0)
chainloader +1
Закомментированная команда boot указывает загрузочный диск. Команда default говорит, какая метка (title) будет загружена по умолчанию, а fallback — какая система будет загружена в случае неудачи. Команда timeout указывает время (в секундах) ожидания ввода команды или выбора другой операционной системы.
Команда splashimage указывает, какой рисунок будет использован в качестве фона. Если у вас что-то не ладится с видеорежимом, закомментируйте это строку.
Труднее всего смириться с тем, как GRUB именует жесткие диски и их разделы. Диски отсчитываются не с буквы «а», а с нуля, а разделы — не с единицы, а тоже с нуля. Таким образом, раздел, который Linux именует /dev/hda1, a Windows — С:, GRUB называет (hd0,0). Круглые скобки обязательны.
Команда rootnoverify нужна для не-Linux систем, a chainloader +1 —для ОС, понимающих только «цепочечную» загрузку (MBR ? загрузочная запись активного раздела). Если вы зачем-то разместили Windows на неактивном разделе, откуда она сама загрузиться не сможет, то команде chainloader должна предшествовать команда makeactive.
GRUB имеет графический интерфейс, но попасть в его командную строку все-таки можно: увидев меню вторичного загрузчика, выберите курсором нужную позицию и нажмите <с> (нажав <Ввод>, вы загрузите выбранную систему, нажав <а>, вы сможете передать ядру дополнительные параметры, а нажав <е> — отредактировать последовательность команд, выполняемых при загрузке выбранной системы).
Итак, вы в командной строке. Редактировать вводимые команды можно в стиле bash: поддерживается автодополнение команд и путей к файлам, пролистывание истории команд стрелками «вверх» и «вниз». Список всех доступных команд можно получить по команде help, а получить краткую справку о команде — введя help <имя_команды>.
Установить диспетчер загрузки GRUB (если вы не сделали этого при инсталляции системы) можно командой /sbin/grub-install /dev/hda. Утилита grub-install, как и все остальные компоненты GRUB, содержится в пакете grub, который можно скачать по адресу http://www.sisyphus.ru/srpm/grub.
Как установить графический фон загрузчика GRUB
Много интересных картинок, пригодных для установки в качестве фона загрузчика GRUB, можно найти по адресу http://ruslug.rutgers.edu/~mcgrof/grub-images/images/working-splashimages. Чтобы не загружать все эти картинки, можно просмотреть их уменьшенные изображения по адресу http://ruslug.rutgers.edu/~mcgrof/grub-images/images, а потом уже загрузить понравившуюся картинку.
Выбранную картинку поместите в каталог /boot/grub и укажите ее в директиве splashimage конфигурационного файла:
splashimage=(hd0,0)/boot/grub/image.xpm.gz
Собственную картинку можно использовать как фон для загрузчика, если преобразовать ее в формат, поддерживаемый GRUB. Преобразование выполняется утилитой convert, после чего картинку нужно сжать компрессором gzip:
# convert myimage.png -colors 14 -resize 640x480 myimage.xpm
# gzip myimage.xpm
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Установка Lilo-22.2
Установка Lilo-22.2 Приблизительное время компиляции: 0.08 SBU Необходимое дисковое пространство: 3 MBИнсталляция LiloМы выбрали LILO в качестве загрузчика, потому что с ним на комфортно, однако вы можете выбрать другой. Fabio Fracassi написал руководство по установке GRUB, см.
Lilo
Lilo Официальная ссылкаLilo (22.2): ftp://ibiblio.org/pub/Linux/system/boot/lilo/ http://ibiblio.org/pub/Linux/system/boot/lilo/Содержимое LiloПоследняя проверка: версия 22.2.Программыlilo, mkrescue и keytab-lilo.plОписанияlilolilo устанавливает загрузчик Linux, используемый для старта системы.mkrescuemkrescue создает загрузочную дискету,
Глава 2 Установка и начальная настройка Linux
Глава 2 Установка и начальная настройка Linux Установка всегда была самой сложной процедурой у всех дистрибутивов Linux. Вспоминаются времена, когда нужно было последовательно загружаться с нескольких дискет, а потом следовать сложным инструкциям или самостоятельно
3.2.2. LILO
3.2.2. LILO Как мы уже знаем, программа LILO позволяет загружать Linux и другие ОС, установленные на вашем компьютере. Все настройки загрузки хранятся в файле /etc/lilo.conf. Программа LILO начинает работать после того, как компьютер протестировал систему, и до старта ОС. В старых версиях
2.4.1. Загрузчик LILO из дистрибутива ОС Linux
2.4.1. Загрузчик LILO из дистрибутива ОС Linux Загрузчик LILO создан Вернером Альмесбергером (Werner Almesberger). LILO может загружать ядро Linux как с дискеты, так и с жесткого диска, а также может загружать другие операционные системы: PC/MS-DOS, DR DOS, OS/2, Windows 95/98, Windows NT, 386BSD, SCO UNIX, Unixware и т. д. Может
2.7. Использование загрузчика LILO
2.7. Использование загрузчика LILO 2.7.1. Установка и настройка загрузчика LILO Как уже было сказано в разделе о выборе загрузчика, если у вас была установлена Windows 98 с файловой системой FAT16, то наиболее логичным и доступным выбором является использование программы, которая
4.11. Использование LILO
4.11. Использование LILO Linux LOader (LILO) — программа, предназначенная для загрузки Linux и других операционных систем.Существуют другие загрузчики, например, bootlin, bootact, bootstar, но они постепенно вытесняются LILO. Помимо LILO Linux еще можно загрузить с помощью loadlin, GRUB (загрузчик в Linux Mandrake)
7.3. Загрузчик GRUB
7.3. Загрузчик GRUB 7.3.1. Кратко о GRUB Как уже было отмечено, GRUB (Grand Unified Bootloader) - это один из возможных загрузчиков Linux. Раньше загрузчиком де-факто был LILO (Linux Loader), но потом появился GRUB, и LILO сдал свои позиции. Конечно, LILO уступил свое место под солнцем не сразу, а за несколько лет. Но
7.3.1. Кратко о GRUB
7.3.1. Кратко о GRUB Как уже было отмечено, GRUB (Grand Unified Bootloader) - это один из возможных загрузчиков Linux. Раньше загрузчиком де-факто был LILO (Linux Loader), но потом появился GRUB, и LILO сдал свои позиции. Конечно, LILO уступил свое место под солнцем не сразу, а за несколько лет. Но даже и сейчас
7.3.2. Конфигурационный файл GRUB
7.3.2. Конфигурационный файл GRUB Конфигурационный файл GRUB называется /boot/grub/grub.conf. В ранних версиях этот файл назывался menu.lst, а теперь menu.lst - это ссылка на файл grub.conf, хотя в некоторых дистрибутивах, например, в Ubuntu, данный файл до сих пор называется menu.lst. Впрочем, к Fedora это
7.3.4. Обои для GRUB
7.3.4. Обои для GRUB Если вы не котите, чтобы ваш компьютер был похож на все остальные, можно установить картинку, которая будет использоваться в качестве фона меню загрузчика GRUB.Вот требования к картинке:• количество цветов - 16;• разрешение (размеры) - 640 х 480;• формат -
7.3.5. Установка пароли GRUB
7.3.5. Установка пароли GRUB Теперь поговорим об установке пароля GRUB. Пароль можно установить так (в файле /boot/grub/grub.conf):…password my_pass…title LinuxВ этом случае мы установили пароль my_pass. Если кто-то попытается отредактировать параметры ядра (чтобы, например, взломать ваш пароль root, см,
Начальная точка
Начальная точка Эта точка расположена за пределами воронки продаж, в которой происходит действие сценария. Например, покупатель находит ссылку на сайт через поисковую систему, щелкает по рекламному баннеру или еще каким-то образом попадает на вашу домашнюю страницу. В
Nero Express – «начальная школа»
Nero Express – «начальная школа» Этой программой обычно становится Nero Express – программа для быстрой записи дисков. В принципе, со временем вы сможете запросто отказаться от услуг SmartStart и сразу же запускать Nero Express – тем более, что у этой программы есть свой собственный
Начальная форма при открытии базы данных или приложения
Начальная форма при открытии базы данных или приложения Чтобы база данных открывалась из начальной формы, нужна небольшая настройка. В меню Сервис (строка меню Access) следует активизировать опцию Параметры запуска. В появившемся диалоговом окне (см. рис. 4.28) щелкните по