Загрузчики LILO и GRUB

Добрый день, в данной статье пойдет речь о загрузчиках ОС. Очень часто возникает необходимость к ним обратиться: установлено две операциионные системы, не загружается операционная система.

Перед тем, как ядро запустит init, загрузчик операционной системы запускает ядро. Иногда вам нужно дать указания загрузчику, чтобы он загрузил различные ядра или операционные системы, и начал их работу в различных режимах. Это особенно важно при попытке починить систему, в которой есть не исправность, мешающая полной загрузке. Чтобы устранить такую проблему, вам понадобиться однопользовательский режим или альтернативное ядро.

Загрузчик операционной системы загружает образ ядра в память и передает контроль за CPU новому образу, по возможности снабжая его различными параметрами. Эти параметры - это простые текстовые строки вроде -s для загрузки в однопользовательском режиме и root=partition для использования partition как корневой файловой системы вместо заданной по умолчанию. Вы можете установить номер рабочего уровня как параметр, чтобы система загружалась на рабочий уровень отличный от заданного по умолчанию.

Перед тем как указать имя ядра и параметры, вам необходимо получить приглашение к загрузке. К сожалению, существует несколько различных загрузчиков операционных систем, и из-за того, что вы можете управлять поведением загрузчика, версии Linux могут изменять свое содержимое.

Следующие разделы расскажут вам, как получить приглашение к загрузке для того, чтобы ввести имя ядра и параметры. Если вы хотите узнать, как установить загрузчик операционной системы или сменить его конфигурацию, обратитесь к справочным страницам "man".

Загрузчик LILO.

LILO (загрузчик Linux) существует так же долго как и ядро Linux. Приглашение к загрузке LILO обычно заканчивается на boot:. Если вашу систему загружает LILO, то, скорее всего, во время загрузки вы видите причудливые картинки на экране, потому что так определено по умолчанию для многих версий, включая Red Hat Linux. Если вы увидите подобный экран, найдите часть, на которой написано «нажмите Ctrl+X для текстового режима». Если увидите это сообщение, нажмите Ctrl+X, чтобы получить приглашение к загрузке.

Если система по умолчанию в текстовом режиме, просмотрите приглашение, как только оно появится. Если приглашение гласит LILO и больше ничего, нажмите клавишу Shift, чтобы получить оставшуюся часть приглашения. С другой стороны, если вы сразу получите приглашение к загрузке, вам следует быть внимательным, так как, скорее всего, система загрузится, если вы ни чего не напечатаете за определенный промежуток времени.

Загрузчик LILO

Когда вы находитесь в приглашении к загрузке LILO, нажмите клавишу Tab, чтобы вывести список опций ядра и операционной системы. Имя ядра по умолчанию, скорее всего, что-то вроде 'linux'. Чтобы загрузить это ядро без всяких опций, введите 'linux'. Чтобы использовать опции, определите их после имени ядра:


linux option1 option2 ...

Например, для запуска вашей системы в однопользовательском режиме, наберите это:


linux -s

Или, чтобы загрузить linux в однопользовательском режиме с корневой системой как /dev/hda3, вместо обычных настроек по умолчанию, наберите это:


linux root=/dev/hda3 -s

Загрузчик GRUB.

GRUB расшифровывается как Grand Unified Bootloader, система, которая постепенно заменяет LILO. У GRUB есть много сногсшибательных особенностей, но что наиболее важно, так это его способность управлять файловыми системами, так что вы можете читать файлы, не загружая ядра.

Администраторы Wisegiiy Solaris и BSD говорили, что первое время они просто наслаждались этой способностью.

У GRUB есть меню интерфейса, в котором легко ориентироваться, но если вы хотите загрузить систему с другим ядром, изменить разбиение корня, или ввести дополнительные параметры ядра, вам следует попасть в мини-оболочку. Нажмите с в меню, чтобы получить это приглашение:

Загрузчик GRUB
grub>

Скажем, что вы хотите загрузить ядро в /boot/vmlinuz с корнем в /dev/hda3. Кроме того, в вашей системе все перемешано, так что вам нужен однопользовательский режим с опцией ядра -s. Наберите следующее в приглашении GRUB:


root (hd0,2)

kernel /boot/vmlinuz root=/dev/hda3 -s

boot

Строка root (hd0, 2) устанавливает понятие GRUB текущего раздела корня - то есть, файловую систему, где GRUB ожидает найти ядро, hdo - это первый накопитель на жестком диске (то есть первый диск, который найдет GRUB; например, устройство Linux /dev/hda если это ваш первый жесткий диск). Однако, 2 описывает третий раздел (/dev/hda3) из-за того, что нумерация разделов GRUB начинается с 0.

Слово kernel устанавливает образ ядра и его параметры, /boot/vmlinuz относится к файлу образа ядра на (hd0, 2) . К сожалению, GRUB не передает просто так информацию из предыдущей строки root () ядру, так что вам нужно всегда определять root=partition как параметр ядра.

Вы можете совместить строки root и kernel путем предопределения образа ядра с помощью разбиения корневого раздела GRUB. Следовательно, предыдущие две строки могли быть написаны как одна:


kernel (hd0, 2) /boot/vmlinuz root=/dev/hda3 -s

Последняя строка, boot, дает указания GRUB загрузить и выполнить образ ядра.

На определенных системах (особенно тех, что с дисками SCSI и готовыми ядрами), вам может понадобиться исходный диск RAM:


initrd /boot/initrd

В случае, если вы пытаетесь загрузить сегмент с другим загрузчиком (таким как сегмент Windows) собственноручно с GRUB, попробуйте следующий набор команд, где partition использует синтаксис устройства GRUB, о котором было рассказано ранее (например, hd(0, 1)):


rootnoverify partition makeactive chainloader +1 boot

Другие загрузчики операционных систем.

Существует много других способов загрузить ядро, даже из DOS посредством LOADLIN или SYSLINUX, с помощью сети, или даже прямо из PC BIOS с помощью LinuxBIOS! Большинство других загрузчиков операционной системы работают как LILO, хотя некоторые не используют клавишу Tab, чтобы регистрировать опции. Скорее всего, вам нужно уделить внимание диагностике загрузки для получения этой информации. Однако, способ, которым вы задаете параметры обычно тот же самый, что и в LILO и GRUB.