Похожая проблема возникает при первоначальной установке ОС Linux: для работы инсталлятора нужна файловая система со стандартными утилитами, а на диске ее еще нет. Обе проблемы решаются в Linux с помощью технологии initrd (
Файл образа виртуального диска обычно называется /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 не установлен, добиться приглашения
# можно, удерживая
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 # где находится таблица разделов