У меня два IDE-диска, и один SCSI. SCSI-диск не виден из BIOS. Загрузчик Linux, Lilo, использует вызовы BIOS и может видеть только те диски, которые видит BIOS. Мой глупый AMI BIOS может загрузиться только с "A:" или "C:" Моя корневая файловая система находится на SCSI-диске.
Решение состоит в том, чтобы держать ядро, файл таблиц (map file) и цепочный загрузчик (chain loader) в Linux-разделе на первом IDE-диске. Заметьте, что необязательно в этом случае иметь ядро на корневом разделе.
Второй раздел на моем первом IDE-диске (/dev/hda2, Linux-раздел для загрузки системы) подключен к /u2. Вот файл /etc/lilo.conf, который я использовал.
# Установка Lilo на MBR # первого IDE-диска. # boot = /dev/hda # /sbin/lilo (установщик) копирует загрузочную запись Lilo # из следующего файла в месторасположение MBR. install = /u2/etc/lilo/boot.b # # Я написал сложное загрузочное меню. Lilo найдет его здесь. message = /u2/etc/lilo/message # Установщик создаст следующий файл. Он подскажет # загрузчику, где находятся блоки ядра. map = /u2/etc/lilo/map compact prompt # Ожидать 10 секунд, затем загрузить ядро версии 1.2.1 по умолчанию. timeout = 100 # Ядро можно скопировать туда, где его увидит BIOS командой: # cp -p /usr/src/linux/arch/i386/boot/zImage /u2/z1.2.1 image = /u2/z1.2.1 label = 1.2.1 # Lilo указывает ядру - подключить первый раздел на SCSI # в качестве корневого. Для этого BIOS не обязательно должен его видеть. root = /dev/sda1 # Этот раздел будет проверен и переподключен (remount) в скрипте /etc/rc.d/rc.S read-only # Я оставил старое ядро Slackware на случай, если я соберу нерабочее ядро # Кстати, мне это пригодилось image = /u2/z1.0.9 label = 1.0.9 root = /dev/sda1 read-only # Мой раздел с DR-DOS 6. other = /dev/hda1 loader=/u2/etc/lilo/chain.b label = dos alias = m |