Использование LILO
Д.Колисниченко
Существуют другие загрузчики, например bootlin, bootact, bootstar, но они постепенно вытесняются LILO.
Помимо LILO Linux еще можно загрузить с помощью loadlin, GRUB (загрузчик в Linux Mandrake) или NTLoader.
Подробнее об использовании NTLoader и программы loadlin можно прочитать в моей статье «Многоосность»
LILO состоит из трех частей:
Liloconf создает файл /etc/lilo.conf, который используется программой lilo для записи начального загрузчика.
Обычно LILO помещают в MBR (Master Boot Record). Но иногда LILO устанавливают на первый сектор того раздела, где установлен Linux. Второй способ обычно используется, если нужно обеспечить загрузку Linux:
При загрузке компьютера LILO выдает подсказку
LILO
или
LILO boot:
После чего нужно ввести метку той операционной системы, которую нужно загрузить. Для загрузки Linux обычно следует ввести linux. Для просмотра всех доступных меток, нажмите Tab. Современные версии LILO обычно имеют удобное меню. Выбор меток осуществляется с помощью стрелок.
Иногда на экран только выдается подсказка
LILO
Чтобы выбрать ядро нужно нажать клавишу Shift, после чего появиться подсказка
LILO boot:
и только теперь можно нажать Tab. Если вы введете команду help, то получите список всех команд LILO.
Примечание: поведение LILO зависит от его настройки в файле /etc/lilo.conf.
С помощью LILO можно организовать загрузку других операционных систем (Windows, FreeBSD. ) и загрузку разных версий ядра одной ОС (имеется в виду Linux).
Пример конфигурационного файла /etc/lilo.conf
Операционная система: Linux Mandrake 7.2
LILO version: 21.5
Для того, чтобы изменения вступили в силу (если вы изменили файл конфигурации), нужно выполнить команду lilo
Другие возможности настройки LILO
| disk=параметры | Определяет нестандартные параметры для заданного диска |
| disktab=файл_таблицы | Задает имя таблицы параметров диска. По умолчанию /etc/disktab. Использовать не рекомендуется |
| ignore-table | Игнорирование ошибочных таблиц разделов |
| nowarn | Запрещает сообщения о возможных неприятностях |
| serial=параметры | Разрешает управление с последовательной линии. Загрузчик берет ввод из заданного последовательного порта и из клавиатуры. break по последовательной линии аналогична shift на клавиатуре. Параметры: |
Параметры append, ramdisk, read-only, read-write, root, vga могут быть заданы в разделе глобальный параметров.
Они будут использованы если они не заданы в конфигурационных секциях.
Параметры командной строки
Здесь описаны самые используемые параметры lilo. Для более подробного описания, введите man lilo
Что такое lilo в терминах linux
Часто используемые функции (более подробно см. ниже):
ОПИСАНИЕ
ОПЦИИ
Приведенные выше опции командной строки соответствуют следующим ключевым словам файла конфигурации, которые показаны ниже.
| -b устройство_загрузки | boot=устройство_загрузки |
| -B файл.bmp | bitmap=файл.bmp |
| -c | compact |
| -d dsec | delay=dsec |
| -D метка | default=метка |
| -i загрузчик | install=загрузчик |
| -f файл | disktab=файл |
| -g | geometric |
| -l | linear |
| -L | lba32 |
| -m файл_карты | map=файл_карты |
| -P fix | fix-table |
| -P ignore | ignore-table |
| -s файл | backup=файл |
| -S файл | force-backup=файл |
| -v [N] | verbose=N |
| -w | nowarn |
| -x опция | raid-extra-boot=опция |
ОПЦИИ ЗАГРУЗКИ
lock Блокирует использование командной строки, аналогично директиве ‘lock’, которую можно указать в файле конфигурации ‘lilo.conf.’ mem=###[,K,M] Определяет максимальный объём оперативной памяти в системе. Объём указывается в байтах, килобайтах или мегабайтах. Эта опция не удаляется из командной строки и всегда передаётся в ядро. nobd Не производить чтение данных о параметрах из BIOS. Эта опция зарезервирована для использования с не IBM-совместимыми BIOS-ми, которые «зависают» в начале загрузки после выдачи строк:
vga=[ASK,EXT,EXTENDED,NORMAL] Позволяет переназначить (используемый по умолчанию) видео режим при загрузке ядра.
ОШИБКИ ЗАГРУЗКИ
В течении всей второй стадии загрузки, сообщения об ошибках выводятся на английском языке, с помощью которых более или менее точно можно попытаться найти источник их появления.
НЕСОВМЕСТИМОСТИ
Начиная с версии 22.0, устройства RAID массивов записывают загрузочную запись в таблицу разделов RAID. Во время записи MBR может возникнуть необходимость оставить RAID загружаемым при последующем восстановлении, однако, все предпринятые по умолчанию действия могут быть изменены. В такой ситуации, для создания архива совместимого с предыдущими версиями, используйте опцию `-x mbr-only’.
ОШИБКИ
СМ. ТАКЖЕ
В целом программа lilo сопровождается очень подробной документацией. (lilo 21)
Lilo mini-Howto
Miroslav Skoric
Перевод: Станислав Рогин, SWSoft Pte Ltd.
Эта версия Lilo mini-HOWTO основана на работе Cameron Spitzer ( cls@truffula.sj.ca.us ) и Alessandro Rubini ( rubini@linux.it ).
1. Авторские права
Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.
Этот документ является частью проекта Linux HOWTO.
Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но так или иначе автор текста и автор перевода желали бы знать о таких дистрибутивах.
Все переводы и производные работы, выполненные по документам Linux HOWTO должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO с которым можно связаться по адресу приведенному ниже.
2. Введение
Первый пример: классическая инсталляция «Linux и что-то еще».
Третий пример показывает, как загрузить Linux, чей корневой раздел не доступен BIOS.
Следующий пример используется для больших дисков, с которыми проблемы и у BIOS-а и у DOS-а (этот пример уже немного устарел).
Последний пример показывает, как восстановить поврежденный диск, если повреждение было нанесено путем установки другой операционной системы.
3. Дополнительная информация и стандартная установка
Когда Lilo загружает систему, он использует вызовы BIOS для загрузки ядра Linux с диска (IDE, флоппи или что-либо еще). Таким образом, ядро должно находиться в некотором месте на диске, доступном BIOS.
3.1. Куда мне установить 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, если это понадобится.
3.2. Как я должен настроить мои IDE-диски?
Я лично не использую настройки LBA и LARGE в BIOS-е (но у меня на машине только Linux); это одни из самых ужасных изобретений, вызванное неэффективностью мира PC. Такое решение требует, чтобы ядро находилось на первых 1024 цилиндрах винчестера, но это не проблема, потому что вы разбиваете диск на разделы, и выделяете под корневой раздел небольшое пространство (что вы и должны всегда делать в любом случае).
Если на вашем диске есть другая операционная система, то вам наверно нельзя будет изменить настройки BIOS, иначе эта ОС перестанет работать. Все последние версии Lilo понимают настройки LBA и LARGE.
Заметьте, что ключевое слово » linear » в файле /etc/lilo.conf может помочь решить проблемы геометрии винчестера. Эта команда инструктирует Lilo использовать линейные адреса секторов, вместо троек сектор/головка/цилиндр. Преобразование из линейных в трехмерные адреса во время загрузки немного замедляет этот процесс, но он становится менее уязвим с точки зрения проблем геометрии.
Если у вас более, чем один винчестер, и некоторые из них используются только Linux-ом, и не включаются в процесс загрузки, вы можете сказать BIOS, что их нет. Ваша система будет загружаться быстрее, а Linux автоматически определит их наличие при загрузке. Я часто меняю винчестеры в моих компьютерах, не никогда не трогаю конфигурацию BIOS.
3.3. Что можно делать в момент загрузки?
Когда вы видите приглашение Lilo, вы можете нажать для того, чтобы увидеть список возможных вариантов. Если Lilo не настроен на интерактивный режим, то нажмите и держите или до появления сообщения «LILO».
Если вы выберете загрузку ядра Linux, вы можете добавить аргументы в командной строке после имени системы, которую вы выберете. У ядра достаточно аргументов командной строки. Все они описаны в документе «BootPrompt-HOWTO», автор Paul Gortmaker, я не буду пересказывать его работу здесь. Но некоторые аргументы достаточно важны, и их необходимо здесь описать:
Число: введя ядру в командной строке число, вы заставляете init запуститься на специфическом рабочем уровне (run-level) (по умолчанию обычно это бывают 3 или 2, в соответствии с тем, какой у вас дистрибутив). Прочтите документацию по команде init, изучите файлы /etc/inittab и /etc/rc*.d для дальнейших экспериментов.
3.4. Как мне убрать Lilo?
Если вы установили Lilo в корневой раздел (например, в /dev/hda2 ), ничего особенного не надо делать для деинсталляции Lilo. Просто уберите с диска все Linux-разделы при помощи fdisk. Вы также должны пометить DOS-раздел загружаемым (bootable).
4. Простая конфигурация
Многие установки Lilo используют файл, подобный приведенному ниже:
4.1. Как справиться с большими ядрами
4.2. Другие источники информации
В дополнение к документации по Lilo существует набор мини-HOWTO, которые вам могут пригодиться. Все они имеют название «Linux+ что-то ещеOS», для нескольких операционных систем. В них описывается сосуществование Linux и других операционных систем. Например, «NT OS Loader + Linux mini-HOWTO» (автор Bernd Reichert) описывает, как добавить запись для Linux в существующее меню загрузки NT. Также документ «Multiboot-with-LILO» описывает, как различные виды Windows могут сосуществовать с Linux. Здесь мы будем говорить о том, как добавить запись для Windows NT в существующее меню Lilo.
4.3. Как загрузить Windows NT из меню Lilo
Здесь я предлагаю вам способ, как можно добавить пункты в меню Lilo для того, чтобы загрузить Linux или NT:
Прежде всего я предложил бы установить свежий дистрибутив Windows NT 4.0 на ваш жесткий диск. Я предполагаю, что вы уже сделали резервную копию важных данных, тогда установка NT должна пройти без проблем. Во времы установки NT, инсталлятор не спросит вас, где разместить загрузчик NT. Он будет помещен в MBR (Главная загрузочная запись) на вашем жестком диске. Имеется возможность восстановить предыдущее содержимое MBR (например от предыдущего содержимого Lilo). Я предложил бы вам (до инсталляции NT) загрузить компьютер с дискеты DOS, имеющей программу FDISK. В командной строке a:\ введите: fdisk /mbr и снова перезагрузите компьютер (без дискеты).
После окончания установки Linux, вы должны перезагрузить компьютер и после перезагрузки вы увидите только Lilo, с единственным пунктом «Linux» в меню загрузки (или может быть больше, чем один пункт, в случае, когда у вас многопроцессорная система). Но не паникуйте! Ваш Windows NT находится там, где вы его установили. Вам будет необходимо найти и отредактировать файл /etc/lilo.conf. Сначала, когда вы откроете этот файл, вы увидите только одну (или больше) записей для загрузки Linux. Вы должны точно знать расположение (читай: раздел), где установлен Windows NT, т.о. вы должны добавить соответствующую запись в файл /etc/lilo.conf. После того, как вы это сделаете, перезапустите Lilo, и при следующей перезагрузке вы увидите обе записи ‘linux’ и ‘nt’ в меню Lilo.
Директива » 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
6. Использование Lilo, когда BIOS не видит корневой раздел
У меня два IDE-диска, и один SCSI. SCSI-диск не виден из BIOS. Загрузчик Linux, Lilo, использует вызовы BIOS и может видеть только те диски, которые видит BIOS. Мой глупый AMI BIOS может загрузиться только с «A:» или «C:» Моя корневая файловая система находится на SCSI-диске.
Решение состоит в том, чтобы держать ядро, файл таблиц (map file) и цепочный загрузчик (chain loader) в Linux-разделе на первом IDE-диске. Заметьте, что необязательно в этом случае иметь ядро на корневом разделе.
7. Использование Lilo, когда BIOS не видит загрузить корневой раздел
Какая неудача! Поэтому я снова запустил fdisk в Linux-е снова и удалил раздел 1. Удовлетворенная этим MS-DOS 6.2 создала такой же в точности раздел, который я только что удалил и туда себя установила. MS-DOS 6.2 также записала свой MBR на диск, но он не загружался.
После того, как я это все установил, я выяснил, что раздел, содержащий файлы zImage, boot.b, map, chain.b и файлы сообщений, может иметь файловую систему msdos, если только она не испорчена «Stacker»-ом или «Doublespace»-ом. Поэтому мой раздел DOS на /dev/hda1 мог стать размером 500 Мб.
8. Загрузка с аварийного флоппи-диска
Затем, я установил Windows-95 в моем офисе. Она напрочь затерла мой прекрасный MBR Lilo, но оставила мои разделы с Linux в покое. Ядра долго загружаются с флоппи, поэтому я поработал над настройками, чтобы флоппи мог загружать ядро с IDE-диска.
Я сделал этот флоппи примерно так:
Заметьте, что дискета должна быть подключена к системе во время запуска инсталлятора Lilo, чтобы Lilo мог правильно построить свои таблицы.
И последнее. Мне понадобилась MS-DOS 6.2 в моей офисной системе, но я не хотел трогать первый диск. Я установил SCSI-контроллер и диск, создал там файловую систему msdos при помощи команды mkdosfs, и Windows-95 увидел его как «D:». Но, конечно, MSDOS не мог загрузиться с D:. Это не проблема, когда у вас есть Lilo. Я добавил следующее в файл lilo.conf из Примера 2.
Что такое lilo в терминах linux
LILO (LInux LOader) — это простой загрузчик для Linux и других операционных систем.
Contents
Установка
Установка LILO состоит из двух стадий. Первая стадия — установка самой программы в систему (но не активация LILO), вторая — установка загрузчика в MBR (активация).
USE-флаги
USE flags for sys-boot/lilo LInux LOader, the original Linux bootloader
| device-mapper | Enable support for device-mapper from sys-fs/lvm2 |
| minimal | Do not install the dolilo helper script |
| pxeserial | Avoid character echo on PXE serial console |
| static | !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically |
Emerge
Установка программы разместит её в файловой системе, но не установит в MBR.
Установка LILO в MBR
Конфигурация
Основные настройки
Далее, сообщим LILO, что нужно загружать по умолчанию (если пользователь не выбрал какой-либо элемент загрузочного меню). Используемое здесь имя является значением label из блоков настроек операционных систем, определяемых далее в этом файле.
LILO некоторое время показывает доступные варианты загрузки, а затем загружает выбранную по умолчанию ОС. Время ожидания определяется параметром timeout и измеряется десятыми долями секунды (так, значение 10 — одна секунда):
Настройка блока для Gentoo
Добавление параметров ядра
Определение нескольких блоков
Хорошей идеей будет хранить старые определения на случай, если новое ядро не загружается. Это можно сделать, создав другой блок настроек:
Использование
Обновление LILO в MBR
Многократный запуск команды lilo не нанесет вреда.
Двойная загрузка Gentoo и FreeBSD
Для двойной загрузки Gentoo и FreeBSD отредактируйте /etc/lilo.conf следующим образом:
Убедитесь в том, что вы изменили примерный настроечный файл под ваши нужды.
Исследуем процесс загрузки Linux
(C) В.А.Костромин, 2007
(версия файла от 23.09.2007 г.)
Этап 3: Загрузчик 2 этапа операционной системы
3.4. Загрузчик LILO
LILO может загружать ядро Linux как с дискеты, так и с жесткого диска, а также может загружать другие операционные системы, предоставляя возможность многовариантной загрузки. Может быть задан выбор до 16 разных операционных систем на этапе загрузки. Первичный загрузчик от LILO может быть установлен как в MBR, так и в первый сектор активного раздела.
3.4.1. Устройство LILO
Если первичный загрузчик от LILO установлен в главный загрузочный сектор, он загружается системным BIOS в оперативную память по адресу 0х7C00 и ему передается управление. Затем первичный загрузчик, снова используя системный BIOS, загружает в память вторичный загрузчик по адресу 0x9B000.
3.4.2. Конфигурирование LILO
Листинг 6. Пример файла /etc/lilo.conf
Рассмотрим вначале секцию глобальных настроек. Первая строка в этой секции указывает, где будет установлен LILO. В нашем примере LILO будет установлен в главный загрузочный сектор первого жесткого IDE-диска, обозначаемого как /dev/hda.
Вторая строка (linear) означает, что LILO должен использовать не обычную адресацию диска цилиндр/головка/сектор, а линейную адресацию секторов. Эта опция несовместима с вариантом загрузки системы с дискеты, но необходима для некоторых SCSI-контроллеров, а также в случае расположения ядра выше 1024-го цилиндра.
Третья строка в секции глобальных настроек (compact) означает, что LILO во время загрузки будет пытаться читать соседние сектора. Это может существенно ускорить загрузку с дискеты, но практически не влияет на скорость загруки с жесткого диска.
Четвертая строка (read-only) сообщает LILO, что корневая файловая система должна быть смонтирована в режиме «только для чтения». Стартовые скрипты, запускаемые процессом init, позже перемонтируют корневую файловую систему в режим «чтение-запись» (после того, как эта система будет проверена командой fsck).
Пятая строка требует, чтобы LILO перед загрузкой какой-либо версии ядра, выдал пользователю приглашение. Если эта строка отсутствует, LILO автоматически загрузит ядро, указанное по умолчанию. Если опция prompt задана, но интервал задержки (опция timeout) не указана, то перезагрузка без участия пользователя будет невозможна, поскольку LILO будет бесконечно ждать, пока пользователь не введет что-либо.
Шестая команда в секции глобальных настроек (timeout=100) сообщает LILO длительность интервала, в течение которого LILO должен ждать реакции пользователя, после чего можно (или нужно) загрузить ядро по умолчанию. Единицей измерения времени тут служит одна десятая секунды, так что timeout=100 задает интервал в 10 секунд.
С помощью команды message можно заставить загрузчик выдавать при загрузке произвольное сообщение.
LILO может загружать различные операционные системы, каждая из которых, как правило, размещается в отдельном разделе жесткого диска. Даже если известен полный путь к ядру, которое будет загружаться, LILO должен знать в каком разделе жесткого диска размещается каталог /boot с образами ядра. Этот раздел указывается в строке, обозначенной ключевым словом root. Другими словами, опция root в каждой подсекции сообщает LILO, какой раздел диска монтировать как корневую файловую систему. Таким образом, при обработке секции: LILO будет искать ядро /boot/vmlinuz-2.6.14 на первом разделе второго жесткого диска (slave на первом IDE-контроллере), а при обработке секции
LILO будет искать ядро /boot/vmlinuz-2.6.13 на втором разделе того же диска.
Наконец, ключевое слово label задает просто название подсекции или варианта загрузки. Именно эти названия выдаются после нажатия клавиши при появлении приглашения LILO. Одно из этих названий вы должны ввести в ответ на приглашение, чтобы загрузилось нужное вам ядро. Две разных подсекции не должны иметь одинаковых названий, иначе lilo может заартачиться.
3.4.3. Запуск операционных систем, отличных от Linux
3.4.4. Замечания о безопасности
3.4.5. Установка загрузчика
После этого можно выполнить команду /sbin/lilo уже без параметров, чтобы произвести запись изменений на диск. При этом будет снова зачитан файл настроек /etc/lilo.conf и произойдет запись новой конфигурации загрузчика на жесткий диск. Если сделанные вами изменения не имеют явных погрешностей, вы увидите сообщение, подобное приведенному ниже: Звездочка указывает на ядро, загружаемое по умолчанию.
Одно из ваших ядер расположено далее 1024-го цилиндра. В таком случае вы можете попытаться добавить опцию linear в секцию глобальных настроек файла /etc/lilo.conf.
Отсутствует ядро, указаное в секции image.
Вы выбрали слишком длинное имя для метки. Сократите название секции.
Когда /sbin/lilo перезаписывает загрузочный сектор, старое содержимое этого сектора автоматически сохраняется в файле. По умолчанию это файл /boot/boot.NNNN, где NNNN соответствует номеру устройства, например, 0300 — это /dev/hda, 0800 — это /dev/sda и т. д. Если такой файл уже существует, он не перезаписывается. Но можно задать альтернативный файл для сохранения загрузочного сектора.
Файл /boot/boot.NNNN можно использовать для восстановления старого содержимого загрузочного сектора, если более простой метод его восстановления недоступен. Соответствующие команды имеют вид:
#] dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1
#] dd if=/boot/boot.0800 of=/dev/sda bs=446 count=1
(bs=446 потому что восстанавливаем только программу-загрузчик, и не трогаем таблицу разбиения диска).
Копию загрузочного сектора лучше сохранить на дискете. В случае, если произойдут какие-либо неприятности, вы сможете восстановить старую загрузочную запись MBR, выполнив команду (предполагается, что дискета смонтирована в каталог /mnt):
#] dd if=/mnt/MBR of=/dev/hda bs=446 count=1
Восстановить старый MBR при необходимости можно также командой /sbin/lilo с опцией —u. Только надо иметь в виду, что эта команда отрабатывает корректно при условии, что каталог LILO (а именно, /boot) не изменялся со времени инсталляции.
После переустановки загрузчика надо перезагрузить компьютер, опробовав разные варианты загрузки.
3.4.6. Сообщения об ошибках на этапе загрузки LILO
Когда LILO загружается, он выводит на дисплей слово «LILO». При этом вывод каждой буквы обозначает завершение определенного действия или этапа загрузки LILO. Если загрузка сорвется, то по числу выведенных букв можно судить о причине возникновения проблемы.
3.4.7. Диалог LILO с пользователем
Текстовый интерфейс LILO рассчитан на старые «глупые» (dump) терминалы. Но он обладает и некоторыми преимуществами. Сейчас не помню, где именно я нашел следующий совет (с которым я, тем не менее, склонен согласиться): «Если вы хотите избежать любых осложнений в будущем, используйте текстовый интерфейс LILO. Меню-интерфейс смотрится красиво, но он обладает свойством очистки экрана. При этом исчезает из вида выдаваемая BIOS информация, например, список обнаруженных устройств. А иногда эта информация бывает так необходима! Тем более НИКОГДА не используйте графический интерфейс! Он выглядит привлекательно, но если у вас возникнут проблемы с LILO, вы окажетесь в неприятном положении.»
Чтобы обеспечить загрузку LILO с текстовым интерфейсом, нужно задать в конфигурационном файле строку и переустановить LILO (командой lilo).
Если вы предпочтете интерфейс в виде меню (он появился в LILO начиная с версии 21), то эта строка должна принять вид В настоящее время меню-интерфейс используется в LILO по умолчанию. При этом на экран выдается список вариантов загрузки, каждая строка в котором соответствует одной из подсекций файла /etc/lilo.conf. Ниже списка вариантов выбора загрузки выводится строка ввода, такая же, как и в текстовом режиме, с помощью которой пользователь может задать дополнительные параметы загрузки (см. Рис.2).
![]() |
| Рис.2. Интерфейс LILO в виде меню |
Как происходит загрузка ядра через LILO
Файлы загружаемых ядер хранятся в каталоге /boot. Обычно к имени файла ядра добавляется номер версии. Например, если версия ядра 2.4.18, то файл будет иметь имя /boot/vmlinuz.2.4.18. Впрочем, название файла ядра значения не имеет, важно, чтобы он был доступен на этапе загрузки. Вторичный загрузчик читает файл /boot/map, чтобы определить расположение образа загружаемого ядра.
Файл /boot/map содержит «карту» размещения файла ядра и файла с образом виртуального диска initrd, представляющую собой последовательность физических адресов блоков на диске, в которых находятся соответствующие файлы. В процессе обработки map-файла загрузчик последовательно считывает блоки с диска в том порядке, который задан в map-файле и формирует образ соответствующего файла в памяти.
Если заглянуть внутрь map-файла (например, с помощью встроенного просмотрщика из Midmight Commander), мы увидим, что там хранятся какие-то служебные сообщения и названия всех вариантов загрузки. Возможно, там содержится еще какая-то необходимая загрузчику информация, только составить полный список путем простого просмотра файла, очевидно, невозможно.
Вторичный загрузчик LILO все еще использует вызовы функций BIOS для выполнения поставленных перед ним задач, в частности, для считывания с диска блоков, в которых записано ядро. Причина того, что на этом этапе все еще используется BIOS, заключается в том, что если включить во вторичный загрузчик весь код, необходимый для того, чтобы получить доступ к различной аппаратуре, он (вторичный загрузчик) будет очень большим (по крайней мере по сравнению с его сегодняшним размером). Более того, он должен будет уметь распознавать и получать доступ (или предоставлять доступ) к разным типам устройств, таким как IDE и EIDE, а также SCSI и так далее.
Зависимость от BIOS, очевидно, ограничивает возможности LILO. В частности, вторичный загрузчик LILO долгое время не мог получить доступ к секторам жесткого диска, расположенным далее 1023-го цилиндра. Вообще говоря, это было проблемой для всех операционных систем для PC-совместимых компьютеров, поскольку источником проблемы является BIOS. У этой проблемы есть два решения. Первое решение заключается в том, чтобы создавать разбиение диска таким образом, чтобы расположить вторичный загрузчик ниже 1023-го цилиндра. Это является причиной того, что загрузочные файлы помещаются в особом каталоге /boot, который часто размещается в отдельной файловой системе, которая находится в начале жесткого диска.

