Загрузчик grub lilo linux

Загрузчики 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 в однопользовательском режиме с корневой системой как /dev/hda3, вместо обычных настроек по умолчанию, наберите это:

Загрузчик GRUB.

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

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

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

Загрузчик GRUB

grub>

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

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

Строка 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:

Читайте также:  What is default browser in linux

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

rootnoverify partition makeactive chainloader +1 boot

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

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

Источник

9.1.1. Начальная загрузка: LILO и GRUB

Как известно, первая программа, которая выполняется после включения компьютера, — это BIOS. Она находит загрузочное устройство, считывает в память его первый (нулевой) сектор и передает на него управление. В этом секторе находится MBR (Master Boot Record) — главная загрузочная запись размером в 512 байт, в которой помещаются:

? таблица разделов диска (Partition Table) размером в 64 байта, описывающая четыре первичных раздела: номера их первого и последнего цилиндров, тип файловой системы и признак активности раздела;

? «волшебное число» (0xAA55), предназначенное для проверки, служит ли данный сектор загрузочным.

Формат MBR стандартен для всех операционных систем, а содержание области, отведенной под первичный загрузчик, может различаться. Этот загрузчик очень мал, поэтому перед ним стоит всего одна задача: найти на диске и считать в память код загрузчика следующего этапа, разворачивающего уже саму операционную систему, и передать ему управление.

В ОС Windows 9x первичный загрузчик передает управление на Boot Record — первый сектор того первичного раздела, который отмечен как активный (bootable — такой может быть только один). В более сложных системах из MBR запускается диспетчер загрузки (NTLoader для Windows NT, LILO и GRUB — для Linux), позволяющий выбрать вариант загрузки и даже загружаемую ОС. Такую гибкость диспетчеру обеспечивает возможность не ограничиваться тем объемом данных, который помещается в MBR, а читать необходимые данные из файлов на диске. Достигается эта гибкость ценой зависимости от файловой системы: существуют файловые системы (например, XFS и ReiserFS с включенным режимом оптимизации дискового пространства), с которыми ОС Linux может работать, но загружаться с них не может. Отдельный раздел /boot, о котором говорилось в п.1.2.2 в связи с «барьером 1024 цилиндра», необходим еще и поэтому: на нем должна быть создана файловая система ext2fs или ext3fs, а для всех остальных разделов файловые системы можно выбирать произвольно.

Читайте также:  Линукс минт менеджер пакетов

Стандартный загрузчик Linux — LILO (LInux LOader) — состоит из двух частей: первичного загрузчика LI и вторичного LO. LI располагается в MBR и только и умеет, что загружать LO, а тот уже передает управление ядру или вызывает другой первичный загрузчик (например, Windows 9x). LO находится в файле на диске (по умолчанию /boot/boot.b). О файловых системах LI не знает, поэтому карта размещения этого файла хранится в нем в виде «цилиндр/головка/сектор». Помещает ее туда утилита /sbin/lilo, которую нужно запускать после любого изменения LO или его конфигурационного файла /etc/lilo.conf.

У вторичного загрузчика LO есть собственная карта размещения файлов (по умолчанию /boot/map). По ней он ищет загружаемое ядро и образ виртуального диска, поэтому после любого изменения ядра или загружаемых модулей тоже обязательно запускать утилиту lilo.

Что такое виртуальный диск? Представьте себе загрузку Linux со SCSI-диска или другого устройства, драйвер которого не вкомпилирован в ядро, а подгружается в виде модуля. LILO сможет найти и прочитать с него файл образа ядра. Теперь ядру предстоит смонтировать корневую файловую систему. Чтобы сделать это, нужно подключить драйвер SCSI, а чтобы найти драйвер в /lib/modules, нужно смонтировать корневую файловую систему.

Похожая проблема возникает при первоначальной установке ОС Linux: для работы инсталлятора нужна файловая система со стандартными утилитами, а на диске ее еще нет. Обе проблемы решаются в Linux с помощью технологии initrd (INITial Ram Disk): вместе с ядром LILO загружает в память образ стартового диска, и ядро монтирует его как обычную файловую систему. В этой файловой системе находятся модули, необходимые для работы с нестандартными внешними устройствами и сетью, и утилиты для их подгрузки. Подключив модули, ядро отсоединяет виртуальный диск и монтирует настоящую корневую файловую систему.

Файл образа виртуального диска обычно называется /boot/initrd-. Если нестандартных устройств у вас нет или их драйверы встроены в ядро, то этот файл для загрузки не нужен.

Поведение LILO зависит от настроек в его конфигурационном файле /etc/lilo.conf. Ниже приведен пример такого файла. Символ #, как обычно, служит для комментариев.

Листинг 9.1. Примерный файл /etc/lilo.conf

# использовать MBR первого жесткого диска первого

Источник

Оцените статью
Adblock
detector