Как уже было отмечено, GRUB (Grand Unified Bootloader) - это один из возможных загрузчиков Linux. Раньше загрузчиком де-факто был LILO (Linux Loader), но потом появился GRUB, и LILO сдал свои позиции. Конечно, LILO уступил свое место под солнцем не сразу, а за несколько лет. Но даже и сейчас встречаются дистрибутивы, которые используют LILO. Иногда встречаются дистрибутивы, которые используют собственный загрузчики вместо GRUB, например, ASP Linux использует собственный загрузчик - ASP Loader, нота при установке операционной системы у пользователя есть возможность выбрать другой загрузчик - GRUB или LILO.
Чем же GRUB лучше, чем LILO? Во-первых, GRUB не нужно каждый раз переустанавливать после изменения конфигурационного файла. Если вы не знакомы с LILO, то знайте: после редактирования конфигурационного файла lilo.conf нужно было в обязательном порядке переустановить загрузчик. GRUB не нужно переустанавливать после изменения его конфигурационного файла. Во-вторых, GRUB более гибкий. По сути, GRUB - это командная оболочка, позволяющая без загрузки операционной системы выполнять простейшие операции над файлами. Например, с помощью команды cat можно просмотреть любой файл на жестком диске:
grub› cat
Например,
grub› cat (hd0,4)/etc/inittab
Это очень полезно, если система не загружается, а у вас есть подозрения, что дело в одном из конфигурационных файлов. В-третьих, GRUB поддерживает много разных файловых систем - FAT32, ext3, Reiserfc, XFS и др., что и позволяет ему проделывать трюки, описанные выше.
7.3.2. Конфигурационный файл GRUB
Конфигурационный файл GRUB называется /boot/grub/grub.conf. В ранних версиях этот файл назывался menu.lst, а теперь menu.lst - это ссылка на файл grub.conf, хотя в некоторых дистрибутивах, например, в Ubuntu, данный файл до сих пор называется menu.lst. Впрочем, к Fedora это отношении не имеет.
Пример файла конфигурации grub.conf представлен в листинге7.2.
Листинг 7.3. Пример файла конфигурации grub.conf
# тайм-аут: ждать 5 секунд, а потом загрузить операционную систему по умолчанию
timeout 5
# номер ОС по умолчанию - это Fedora
default 0
# графическая тема
color black/yellow yellow/black
title Fedora (on /dev/hda5)
root (hd0,4)
kernel /boot/vmlinuz-2
initrd /boot/initrd-2.6.22-1.2798.fc8.img
savedefault
title Windows NT/2000/XP (loader)
root (hd0,0)
makeactive chainloader +1
Параметр timeout задает тайм-аут в секундах перед загрузкой операционной системы по умолчанию. Параметр default задает номер операционной системы, загружаемой по умолчанию. Нумерация операционных систем начинается с 0.
Описание каждой операционной системы начинается с параметра title. Параметры, заданные до первою параметра title, считаются
Параметр root задает идентификатор устройства (раздела жесткого диска), в котором установлена система. Идентификаторы в GRUB немного отличаются от общепринятых в Linux. Мы привыкли, что разделы жесткого диска именуются так: /dev/hdX
(hd
Первый номер - это номер жесткого диска, второй - номер раздела. Предположим, что у нас есть устройство /dev/hda5. В GRUВ его ID будет выглядеть так: (hd0, 4).
Вот последовательность действий по преобразованию имен /dev/hdX
• удалить /dev/ (останется hdX
• букву X заменить на соответствующий ей номер, при условии, что нумерация начинается с 0, т.е. а = 0, b = 1, с = 2, d = 3 и т.д.;
• номер
Параметр kernel указывает требуемое для загрузки операционной системы ядро и параметры этого ядра. В данном случае ядро называется /boot/vmlinuz-2.6.22-1.2798.fc8, и ему будут переданы cледующие параметры ro root-LABEL-/ rhgb quiet. Понятно, что параметр kernel не нужно указывать для операционных систем, отличных от Linux.
Параметр initrd задает RAM-диск. Он тоже нужен только для Linux.
Параметр savedefault нужен далеко не всегда. Операционная система по умолчанию задается параметром default. Обычно указывается номер операционной системы, но если вместо номера ОС указать значение saved, то по умолчанию будет загружена ОС, отмеченная параметром savedefault.
Для загрузки Linuх достаточно всего трех параметров: root, kernel и initrd. Теперь рассмотрим загрузку Windows. Как обычно, с помощью root нужно указать раздел жесткого диска, в который установлена Windows. Параметры kernel и initrd в этом случае не нужны, поскольку нет ни Linux-ядра, ни RAM-диска. Зато нужны следующие параметры:
makeactive
chainloader +1
Первый параметр делает раздел, из которого загружается Windows, активным. Для Windows 2000, XP и Vista это уже не актуально, зато актуально для старых версий Windows (98, ME), которые не могли загрузиться, если раздел жесткого диска, в который они установлены, не являлся активным.
Параметр chainloader нужен для всех ОС, поддерживающих цепочечную загрузку. В данном случае такой ОС является Windows, поэтому нужно не забыть указать chainloader +1, иначе Windows вы не запустите.
7.3.3. Некоторые полезные глобальные параметры
В табл. 7.1 приведены некоторые полезные глобальные параметры программы GRUB.
Таблица 7.1. Полезные глобальные параметры GRUB
Параметр |
---|