Linux mini-HOWTO

       

Использование Lilo, когда BIOS не видит загрузить корневой раздел


У меня на работе в системе установлен IDE-диск размером 1Гб. BIOS может видеть только первые 504 Мб этого диска. (Здесь Мб означает 2**10 байт, а не 10**6.) Поэтому у меня MS-DOS на 350 Мб разделе /dev/hda1 и мой корневой раздел Linux размером 120 Мб - /dev/hda2.

MS-DOS не смог установиться правильно, когда диск был чистый. У Novell DOS 7 была та же проблема. К счастью для меня, "Аксессуары от IBM" были неполными - забыли положить дискету с программой "OnTrack" в коробку с винчестером. Винчестер должен был поставляться с продуктом под названием "OnTrack Disk Manager." Если у вас только MSDOS, я думаю, вам он понадобится.

Поэтому я создал таблицу разделов при помощи команды fdisk в Linux-е. MSDOS-6.2 отказался от инсталляции в /dev/hda1. Он сказал что-то типа "Эта версия MS-DOS только для новых установок, а на вашем компьютере уже есть MS-DOS, поэтому получите версию обновления (upgrade release) от вашего дилера." А на самом деле диск был новый.

Какая неудача! Поэтому я снова запустил fdisk в Linux-е снова и удалил раздел 1. Удовлетворенная этим MS-DOS 6.2 создала такой же в точности раздел, который я только что удалил и туда себя установила. MS-DOS 6.2 также записала свой MBR на диск, но он не загружался.

К счастью, у меня было ядро Slackware на флоппи (созданное программой установки дистрибутива Slackware), поэтому я загрузил Linux и перезаписал Lilo поверх сломанного MBR MS-DOS-а. И все заработало. Вот файл /etc/lilo.conf, который я использовал:

boot = /dev/hda map = /lilo-map delay = 100 ramdisk = 0 # Отключить электронный диск (ramdisk) в ядре Slackware timeout = 100 prompt disk = /dev/hda # BIOS видит только первые 500 Мб. bios = 0x80 # выбрать первый IDE. sectors = 63 # возьмите количество секторов из руководства по диску. heads = 16 cylinders = 2100 image = /vmlinuz append = "hd=2100,16,63" root = /dev/hda2 label = linux read-only vga = extended other = /dev/hda1 label = msdos table = /dev/hda loader = /boot/chain.b

После того, как я это все установил, я выяснил, что раздел, содержащий файлы zImage, boot.b, map, chain.b и файлы сообщений, может иметь файловую систему msdos, если только она не испорчена "Stacker"-ом или "Doublespace"-ом. Поэтому мой раздел DOS на /dev/hda1 мог стать размером 500 Мб.

Я также выяснил, что система "OnTrack" записала бы таблицу разделов немного в другое место, чем обычно, и, возможно, для совместимости изменила IDE-драйвер Linux-а. Но установка этого "OnTrack" сделала бы невозможной загрузку со стандартного ядра, входящего в поставку Slackware. Кстати, потом IBM прислал мне дискету с "OnTrack". Я позвонил в службу поддержки OnTrack. Они сказали мне, что Linux - плохая система, потому что не использует BIOS. Я выкинул их дискету.



Содержание раздела