Виктор Костромин - Linux для пользователя
• LI - первичный загрузчик сумел загрузить вторичный загрузчик, но не сумел запустить его на выполнение. Это может быть вызвано ошибкой в задании геометрии диска или тем, файл /boot/boot.b был перемещен без перезапуска /sbin/lilo.
• LIL - вторичный загрузчик запустился, но не смог загрузить таблицу дескрипторов из map-файла. Причина обычно состоит в наличии дефектов на диске или неправильно заданной геометрией диска.
• LIL? - вторичный загрузчик был загружен по неправильному адресу. Обычно вызвано ошибкой в задании геометрии диска или тем, что файл /boot/boot.b был перемещен без перезапуска /sbin/lilo.
• LIL- - таблица дескрипторов разрушена. Обычно вызвано ошибкой в задании геометрии диска или тем, файл /boot/boot.b был перемещен без перезапуска /sbin/lilo.
• LILO - все части LILO успешно загружены.
2.7.2. Установка других операционных систем после Linux
При инсталляции MS-DOS и Windows 95/98 ее стандартный загрузчик независимо от вашего желания записывается в Master Boot Record (MBR), а признак активности в таблице разделов ставится на раздел MS-DOS (Windows 95/98). А стандартный загрузчик MS-DOS и Windows 95/98 умеет только передавать управление на первый сектор активного раздела. Поэтому, если вы вначале установите Linux, а потом будете ставить Windows 95/98 или MS-DOS, то Linux перестанет загружаться. Говорят, что Windows NT и 2000 загрузчик из MBR не трогают (но сам я этот факт не проверял). Восстановить загрузку LILO можно либо путем перезапуска /sbin/lilo (если LILO установлен в MBR), либо сделав активным раздел LILO (если он установлен в первичный раздел).
С проблемами, возникающими при установке после Linux другой ОС, обычно можно справиться, загрузившись в Linux с помощью загрузочной дискеты, откорректировав конфигурационный файл LILO (добавив вызов новой ОС) и запустив /sbin/lilo.
2.7.3. Перенос каталога /boot в DOS-раздел
Последние версии ядра Linux поддерживают возможность размещения файлов, необходимых на этапе загрузки, в файловой системе MS-DOS (или UMSDOS). Поскольку в большинстве случаев разделы DOS занимают как раз те области диска, где связанные с BIOS ограничения не действуют, это позволяет решить многие проблемы больших дисков, возникающие в тех случаях, когда раздел, отведенный для Linux, не может быть использован для размещения в нем каталога /boot.
Для того, чтобы реализовать такой вариант загрузки, DOS-раздел монтируется в режиме чтение/запись, создается каталог (например, /dos/linux), в который перемещаются все файлы из каталога /boot и образы ядер Linux, каталог /boot заменяется символической ссылкой на каталог /dos/linux, новое местоположение каталога /boot указывается в файле /etc/lilo.conf, и, наконец, запускается /sbin/lilo.
2.8. Загрузка Linux из MS-DOS с помощью loadlin.exe
Не только загрузочные файлы и образы ядра могут располагаться в DOS-разделе, но и вообще вся загрузка Linux может быть организована из DOS. Для этого используется специальная программа loadlin.exe, разработанная Хансом Лерменом (Hans Lermen, [email protected]). Эта программа используется в таких дистрибутивах, как Red Hat, для организации процедур установки Linux с CD-ROM. Поэтому она имеется на дистрибутивном диске, а, следовательно, всегда имеется в вашем распоряжении.
Loadlin.exe предоставляет вам самый безопасный способ загрузки Linux с жесткого диска, если вы имеете на нем загрузочный (активный) DOS- или Windows-раздел. Этот вариант организации загрузки Linux можно особенно порекомендовать начинающим пользователям Linux. Большинство новичков, устанавливающих Linux, слишком нетерпеливы для того, чтобы читать очень хорошее, но очень длинное описание загрузчика LILO, прилагаемое к этой программе (да еще по-английски!). Поэтому они часто используют его некорректно, в результате чего теряют возможность вообще загрузить какую-нибудь операционную систему (я тоже попадал в такую ситуацию). Для таких пользователей гораздо удобнее начать освоение Linux, используя для загрузки loadlin.exe.
Программа loadlin.exe не требует какой-либо установки, надо только разместить саму программу и образы ядра на одном из дисков, доступных в DOS. С помощью этой программы можно загрузить Linux с CD или сетевого диска, не используя загрузочной дискеты. Это делает loadlin.exe великолепным инструментом на те случаи, когда необходимо загрузить Linux после какого-то сбоя в работе загрузчика LILO.
Версия 1.6 loadlin.exe работает практически при любых конфигурациях DOS и имеет очень мало ограничений. Она может использовать расширенную память и может загружать большие ядра (bzImages) и образы виртуальных дисков (initrd) непосредственно в верхние области ОП.
Применение loadlin.exe не означает, что Linux работает под DOS, так как эта программа обеспечивает "логическую перезагрузку" вашего компьютера, после чего DOS полностью заменяется на Linux. Если вы хотите вернуться в DOS, вы должны перезагрузить компьютер, например, с помощью команды reboot.
Итак, что же необходимо для того, чтобы воспользоваться программой loadlin.exe.
• На вашем компьютере (конечно, с процессором 386 или выше) должна быть установлена DOS или WINDOWS 95.
• Нужно иметь сжатые образы ядра (zImage, bzImage). Примечание. zImage - это старый бинарный формат ядра, bzImage - это более новый формат (номер версии ядра больше 1.3.73), который может иметь размер до 1 Мбайта, следовательно, разархивированное ядро может иметь размер до 2 Мбайт. Далее будем говорить только о файлах zImage, хотя вы можете всюду заменить zImage на bzImage.
• Саму программу loadlin.exe, которую вы можете найти на дистрибутивном диске как в разархивированном виде, так и в пакете LODLIN16.TGZ, который содержит, кроме того, руководство по ее использованию DOCMANUAL.TXT, пример файла задания параметров DOCTEST.PAR, и руководство по заданию параметров DOCPARAMS.DOC (не забывайте, что все это файлы DОS).
Если вы запустите команду loadlin без параметров:
C:LOADLIN› loadlin
то получите подсказку по использованию программы. Удобнее может оказаться запустить ту же программу с параметром more (в стиле Linux):
C:LOADLIN› loadlin | more
Теперь мы можем рассмотреть последовательность действий по установке Linux в том варианте, когда загружаться она будет с помощью loadlin.exe.
1. Выделите раздел для Linux (как это сделать - см. разд. 2.5).
2. Установите Linux в выделенный раздел. При этом LILO установите в первый сектор Linux-раздела, чтобы не перезаписать MBR и не потерять возможность загружаться в Windows.
3. После завершения процедур установки загрузите Linux (если не получается по-другому, то используйте загрузочную дискету). Смонтируйте DOS-раздел (будем считать, что в Linux DOS-раздел именуется как /dev/hda1, а Linux-раздел - как /dev/hda3):
[root]# mount -t vfat /dev/hda1 /mnt/C
Создайте каталог /mnt/C/loadlin и разархивируйте в него содержимое файла LODLIN16.TGZ с дистрибутивного CD-диска Linux. Кроме того, поместите туда же файл с образом ядра из каталога /boot. Найти нужный файл образа ядра можно с помощью файла /etc/lilo.conf: найдите в нем строку "image=…" и вы увидите нужное имя справа от знака равенства. У меня, например, полное имя этого файла - vmlinuz-2.2.16-3bc, но я при копировании в каталог /mnt/C/loadlin переименовал его в vmlinuz; это имя и буду использовать далее в примерах.
4. Теперь перезагрузите компьютер в DOS. Если у вас есть возможность загрузить непосредственно DOS, то делайте это сразу, а если нет, то загружайте Windows, при появлении сообщения "Загрузка Windows 95" нажимайте клавишу ‹F8› и выбирайте вариант Command prompt only. Если вы не успели нажать на клавишу ‹F8›, то можно дождаться завершения загрузки Windows 95, после чего воспользоваться кнопкой Пуск, выбрать команду Завершение работы и далее - команду Перезагрузить компьютер в режиме эмуляции DOS.
После выхода в режим DOS перейдите в каталог C:LOADLIN (CD LOADLIN) и выполните команду
C:LOADLIN› LOADLIN vmlinuz /dev/hda3 ro vga=ask
или, если вы хотите загрузить ядро с установкой RAM-диска:
C:LOADLIN› LOADLIN vmlinuz /dev/ram rw initrd=diskimage
Можно также записать все аргументы команды loadlin.exe в файл (например, с именем params) и вызвать ту же команду следующим образом:
C:LOADLIN› LOADLIN @params
Такая возможность особенно полезна для тех случаев, когда вы задаете много аргументов командной строки, и ее длина становится больше 127 символов. Полное описание всех возможных аргументов (параметров) команды loadlin.exe вы сможете найти в файле PARAMS.DOC или в Интернете на сайтах http://sunsite.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html и http://rsphy1.anu.edu/~gpg109/BootPrompt-HOWTO.html.
Теперь вы можете пользоваться этим способом загрузки Linux. Единственное, что остается, это избавиться от необходимости каждый раз при загрузке вводить команду loadlin со всеми параметрами. Для облегчения можно прописать вызов loadlin в файл autoexec.bat или создать командный файл (например, linux.bat), с помощью которого просто запускать Linux, предварительно загрузившись в режиме DOS. Я думаю, что приведенных выше данных вполне достаточно для создания необходимого bat-файла. Если же у вас что-то не получится, загляните в статью А. Московских [П4.13], где этот вопрос рассмотрен более подробно. Там, в частности, отмечается, что если на машине установлены Windows 95 и Linux, то нельзя пытаться загружать Linux из графической оболочки и требуется отключить некоторые опции в скрытом файле C:MSDOS.SYS (это простой текстовый файл), а именно, добавить в него две строки: