Примечание. Загрузчик LILO не обязательно устанавливать в главную загрузочную запись диска, он может располагаться в загрузочной записи первичного активного Linux-раздела или даже логического раздела в расширенном разделе. В таком случае в MBR должно быть нечто, способное его загрузить, например, стандартный загрузчик MS-DOS или Windows. Но необходимости применения такого варианта я не вижу (раз уж вы используете LILO в качестве основного загрузчика), поэтому здесь его рассматривать не будем.
4. На следующем шаге нужно заставить LILO загружать ОС по выбору. LILO конфигурируется с помощью файла /etc/lilo.conf и команды /sbin/lilo. Эта команда устанавливает (или переустанавливает) LILO.
Рассмотрим небольшой пример файла конфигурации LILO. Для примера будем считать, что устройство /dev/hda1 является разделом с DOS/Windows, а раздел /dev/hda2 содержит Linux. В таком случае файл /etc/lilo.conf может иметь примерно такой вид:
boot = /dev/hda2
compact
delay = 50
# message = /boot/bootmesg.txt
root = current
image = /boot/vmlinuz-2.2.11-4bc
label = linux read-only
other = /dev/hda1
table = /dev/hda
label = dos
Дадим некоторые пояснения к этому примеру.
Строка boot указывает загрузочное устройство.
Строка compact включает режим сжатия map-файла, содержащего характеристики загрузочных ядер; это ускоряет начальную загрузку.
С помощью команды message можно заставить загрузчик выдавать при загрузке произвольное сообщение.
Начиная со строки image, идут секции конфигурационного файла, соответствующие разным операционным системам, которые должны загружаться по выбору пользователя. В каждой такой секции имеется строка label. В этой строке записывается имя, которое вводится в ответ на приглашение LILO или является командой меню и служит для выбора пользователем загружаемой ОС. Если имя не введено по истечении времени, заданного строкой delay (задается в десятых долях секунды), будет загружена ОС, выбираемая по умолчанию. В данном случае по умолчанию будет загружаться Linux, поскольку соответствующая ей секция стоит первой в файле. Можно указать загружаемую по умолчанию систему с помощью строки вида default=dos (т. е., используя метку из соответствующей строки label).
Строка table=‹device› содержит указание на устройство, на котором находится таблица разбиения диска. LILO не передает информацию о разбиении загружаемой операционной системе, если эта переменная не задана. (Некоторые операционные системы имеют другие средства для определения того, из какого раздела они загружены.) Не забывайте, что необходимо выполнить команду /sbin/lilo, если вы изменили ссылку на таблицу разбиения, задаваемую переменной table.
Если вы задали строку (лучше сказать, секцию) other = /dev/hda1 в файле /etc/lilo.conf, то в корневом каталоге диска /dev/hda1 (диска C: в терминологии Microsoft) должен находиться вторичный загрузчик. У меня, например, на одном из компьютеров с многовариантной загрузкой там находится NT Loader (поскольку Windows NT была установлена до Linux), и LILO успешно загружает Windows NT. Только надо установить в файле boot.ini задержку времени равной нулю, чтобы не получать собственного меню загрузки NT Loader. Впрочем, если вы хотите по каким-то причинам видеть это меню, то значение timeout в файле boot.ini надо задать отличным от нуля (задается в секундах). Это может понадобиться, например, для обеспечения возможности загружать Windows 98 как еще один вариант ОС.
Если вы хотите грузить Windows непосредственно из LILO, то добавьте в /etc/lilo.conf еще одну секцию:
other = /boot/bootsect.dos
label = win,
где файл bootsect.dos берется из корневого каталога того диска, на котором стоит NT Loader.
5. После того, как вы откорректировали файл /etc/lilo.conf, необходимо выполнить команду /sbin/lilo, чтобы изменения вступили в силу. Эта команда (которая в руководстве называется map-installer) устанавливает вторичный загрузчик системы, который будет активизирован во время следующей загрузки машины. Прежде, чем запускать /sbin/lilo для модификации загрузочных процедур, выполните эту команду с параметром -t. При этом будет выполнена вся процедура инсталляции загрузчика, кроме изменения map-файла, записи модифицированного загрузочного сектора и изменения таблицы разбиения диска, то есть выполнен тест нового варианта. Если добавить еще опцию -v, вы получите более подробную информацию о том, что будет делать команда /sbin/lilo.
Когда /sbin/lilo перезаписывает загрузочный сектор, старое содержимое этого сектора автоматически сохраняется в файле. По умолчанию это файл /boot/boot.NNNN, где NNNN соответствует номеру устройства, например, 0300 - это /dev/hda, 0800 - это /dev/sda и т. д. Если такой файл уже существует, он не перезаписывается. Но можно задать альтернативный файл для сохранения загрузочного сектора.