Дополнительная информация и стандартная установка

Когда Lilo загружает систему, он использует вызовы BIOS для загрузки ядра Linux с диска (IDE, флоппи или что-либо еще). Таким образом, ядро должно находиться в некотором месте на диске, доступном BIOS.

Во время загрузки ядра Lilo не имеет возможности читать данные файловой системы, поэтому все, что вы напишете в файле /etc/lilo.conf преобразовывается во время инсталляции (в момент исполнения команды /sbin/lilo). Время инсталляции - это то время, когда программа строит таблицы, содержащие список секторов, в которых находятся файлы для загрузки операционной системы. Как следствие этого, все эти файлы должны находиться на разделе, доступном BIOS (обычно все эти файлы находятся в каталоге /boot, то есть только корневая файловая система вашего Linux-а должна быть доступна BIOS). Вы должны переинсталлировать загрузчик (то есть запускать /sbin/lilo) каждый раз, когда изменяете настройку Lilo. Когда вы пересобираете ядро и перезаписываете старый образ ядра, вы должны переустанавливать Lilo.

Куда мне установить Lilo?

Директива boot= в файле /etc/lilo.conf указывает Lilo, где должен находиться его главный загрузчик (primary boot loader). В общем случае, вы можете выбрать либо главный загрузочный сектор (master boot record) (/dev/hda) или загрузочный сектор корневого раздела вашего Linux-а (это обычно /dev/hda1 или /dev/hda2).

Если у вас есть другая операционная система на вашем жестком диске, вам лучше установить Lilo в загрузочный сектор вашей корневой файловой системы вместо MBR. В этом случае вы должны пометить ваш корневой раздел, как "загружаемый" ("bootable"), используя команду "a" в программе fdisk или команду "b" в программе cfdisk. Если вы не измените свой MBR, вам будет проще убрать свой Linux и Lilo, если это понадобится.

Конечно всегда можно избежать "правил" подобных вышеупомянутому. Вы можете установить Lilo в MBR, даже если у вас установлена другая система. Например, если вы установили Windows NT 4.0, как первую операционную систему на вашей машине, тогда загрузчик NT будет записан в MBR, т.о. ваш NT должен был загружаться без проблем. После установки Linux и выбора - установить Lilo в MBR, Lilo перепишет загрузчик NT. В следующий раз при загрузке машины вы не сможете загрузить NT. Но нет никаких проблем. Вы просто должны отредактировать ваш /etc/lilo.conf и добавить новую запись для NT. В следующий раз, перезагрузив систему, вы увидите в Lilo запись для меню.

Как я должен настроить мои IDE-диски?

Я лично не использую настройки LBA и LARGE в BIOS-е (но у меня на машине только Linux); это одни из самых ужасных изобретений, вызванное неэффективностью мира PC. Такое решение требует, чтобы ядро находилось на первых 1024 цилиндрах винчестера, но это не проблема, потому что вы разбиваете диск на разделы, и выделяете под корневой раздел небольшое пространство (что вы и должны всегда делать в любом случае).

Если на вашем диске есть другая операционная система, то вам наверно нельзя будет изменить настройки BIOS, иначе эта ОС перестанет работать. Все последние версии Lilo понимают настройки LBA и LARGE.

Заметьте, что ключевое слово "linear" в файле /etc/lilo.conf может помочь решить проблемы геометрии винчестера. Эта команда инструктирует Lilo использовать линейные адреса секторов, вместо троек сектор/головка/цилиндр. Преобразование из линейных в трехмерные адреса во время загрузки немного замедляет этот процесс, но он становится менее уязвим с точки зрения проблем геометрии.

Если у вас более, чем один винчестер, и некоторые из них используются только Linux-ом, и не включаются в процесс загрузки, вы можете сказать BIOS, что их нет. Ваша система будет загружаться быстрее, а Linux автоматически определит их наличие при загрузке. Я часто меняю винчестеры в моих компьютерах, не никогда не трогаю конфигурацию BIOS.

Что можно делать в момент загрузки?

Когда вы видите приглашение Lilo, вы можете нажать <Tab> для того, чтобы увидеть список возможных вариантов. Если Lilo не настроен на интерактивный режим, то нажмите и держите <Alt> или <Shift> до появления сообщения "LILO".

Если вы выберете загрузку ядра Linux, вы можете добавить аргументы в командной строке после имени системы, которую вы выберете. У ядра достаточно аргументов командной строки. Все они описаны в документе "BootPrompt-HOWTO", автор Paul Gortmaker, я не буду пересказывать его работу здесь. Но некоторые аргументы достаточно важны, и их необходимо здесь описать:

Как мне убрать Lilo?

Когда Lilo перезаписывает загрузочный сектор, он оставляет резервную копию в файле /boot/boot.xxyy, где xxyy - главное и зависимое число устройства (major and minor numbers), в шестнадцатеричном виде. Вы можете увидеть главное и зависимое число вашего диска или раздела, набрав команду "ls -l /dev/device". Например, первый сектор устройства /dev/hda (главное число - 3, зависимое - 0) будет записано в файл /boot/boot.0300, установка Lilo на /dev/fd0 создает файл /boot/boot.0200 и установка на устройство /dev/sdb3 (главное число - 8, зависимое - 19) создаст файл /boot/boot.0813. Заметьте, что Lilo не создаст резервную копию, если файл уже существует, поэтому вам не надо беспокоиться о сохранности этой копии при переустановке Lilo (например, после сборки нового ядра). Резервные копии в каталоге /boot/ всегда отражают общую ситуацию до установки Lilo.

Если вам надо деинсталлировать Lilo (например, в очень неудачном случае - деинсталляции Linux), вам достаточно восстановить исходный загрузочный сектор. Если Lilo установлен в /dev/hda, просто наберите "dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1" (Я лично делаю "cat /boot/boot.0300 > /dev/hda", но это не совсем безопасно, так как это восстановит и стандартную таблицу разделов, которую вы могли изменить со времени сохранения загрузочного сектора). Эта команда значительно проще, чем "fdisk /mbr" из DOS-а: она позволяет вам начисто удалить Linux с диска без загрузки чего-либо, кроме Linux-а. После удаления Lilo не забудьте запустить команду fdisk Linux-а для удаления всех Linux-разделов (fdisk в DOS-е не удаляет не-DOS разделы) (Примечание переводчика: Это не верно для так называемого DOS 7.0, встроенного в Windows 95/98).

Если вы установили Lilo в корневой раздел (например, в /dev/hda2), ничего особенного не надо делать для деинсталляции Lilo. Просто уберите с диска все Linux-разделы при помощи fdisk. Вы также должны пометить DOS-раздел загружаемым (bootable).