Lilo позволяет установить ядро на одно устройство и заставить BIOS читать его с другого устройства. Например, я часто устанавливаю Linux на диск, подключенный к hdc (главный диск на вторичном IDE-контроллере) и загрузиться с него, как с системы на другом компьютере. Я скопировал инсталляционный диск на маленький раздел, поэтому могу запустить команду chroot на виртуальной консоли для установки Lilo на hdc, пока я занимаюсь чем-то другим.
Файл lilo.conf, который я использую для инсталляции Lilo выглядит примерно так:
# Этот файл должен использоваться для системы, видящей этот диск как /dev/hdc boot = /dev/hdc # перезаписать MBR на hdc disk = /dev/hdc # Указать, как hdc будет выглядеть в системе: bios = 0x80 # BIOS увидит его, как первый диск delay = 0 vga = 0 image = /boot/vmlinux # это уже на /dev/hdc1 root = /dev/hda1 # но во время загрузки это будет hda1 label = Linux read-only |
Этот конфигурационный файл должен читаться Lilo, запускаемым с /dev/hdc1. Таблицы Lilo, которые будут записаны в загрузочный сектор (/dev/hdc), должны описывать файлы в каталоге /boot (который в свою очередь находится на hdc); эти файлы будут доступны при доступе к hda, когда диск будет загружен в виде отдельной системы.
Я назвал этот файл /mnt/etc/lilo.conf.hdc (/mnt - это место, куда был подключен диск hdc во время инсталляции). Я устанавливаю Lilo командой "cd /mnt; chroot . sbin/lilo -C /etc/lilo.conf.hdc". Читайте документацию по chroot, если эта команда вам не понятна.
Директива "bios=" в файле lilo.conf нужна для того, чтобы указать Lilo, что думает о ваших устройствах Lilo. Вызовы BIOS определяют флоппи-диски и жесткие диски номерами: 0x00 и 0x01 означают флоппи-дисководы, 0x80 и более означают винчестеры (старые версии BIOS могли работать только с двумя дисками). Поэтому "bios = 0x80" в предыдущем примере означает "использовать 0x80 в вызовах BIOS при доступе к /dev/hdc".
Эта директива Lilo может быть применима и в другой ситуации: когда, например, ваш BIOS имеет возможность загружаться со SCSI-дисков вместо IDE. Когда есть и IDE-, и SCSI-устройства, Lilo не может определить, к которому будет относиться цифра 0x80, потому что пользователь выбирает порядок в конфигурационных меню BIOS, и они не доступны во время работы Linux.
По умолчанию Lilo считает, что IDE-диски идут первыми, поэтому, в противном случае, в файле /etc/lilo.conf должно находиться примерно следующее:
disk = /dev/sda bios = 0x80