GNU GRUB Legacy (GRand Unified Bootloader) — это первая версия программы-загрузчика операционных систем GRUB. В Ubuntu до версии 9.04 использовалась по умолчанию именно эта первая версия GRUB, которая теперь называется GRUB Legacy. В более поздних версиях используется GRUB 2, который теперь подразумевается под просто GRUB.

Не перепутайте GRUB версии 1, известный теперь как GRUB Legacy и использовавшийся в Ubuntu до версии 9.04 включительно, и GRUB версии 2, который подразумевается сейчас под словом GRUB и используется в Ubuntu начиная с версии 9.10. Несмотря на то, что это фактически две версии одного приложения с названием GRUB, они не имеют ничего общего и являются совершенно разными программами.

Основные сведения

GRUB Legacy — самый популярный загрузчик в мире Linux, так как является загрузчиком по-умолчанию в большинстве известных дистрибутивов. Ранее самым популярным был Lilo.

GRUB Legacy может загрузить практически любую ОС, имеющуюся на вашем компьютере, а также в сети и, при некоторых ухищрениях, на CD/DVD (даже если этого не поддерживает BIOS вашего комьютера в виду его почтенного возраста). Умеет по цепочке передать управление другому загрузчику, допустим NTLDR для загрузки Windows. После настройки GRUB, пользователь, при включении компьютера, видит список операционных систем, которые установлены на его компьютер, и которые можно загрузить, нажав Enter. GRUB позволяет установить несколько ОС на один компьютер в разные разделы, загружать разные ядра, передавать параметры ядру.

Основные возможности GRUB Legacy

  • Загрузка Linux, OpenSolaris, *BSD ядер;
  • Передача управления другим загрузчикам, возможность загрузки Windows-систем;
  • Защита паролем пунктов меню;
  • Поддержка BOOTP и TFTP для сетевой загрузки;
  • Интерактивная командная строка загрузки;
  • Поддержка файловых систем: BSD FFS, DOS FAT16 и FAT32, Minix, ext2, ext3, ext4 (через патч), ReiserFS, JFS, XFS, VSTa, и чтение файлов конфигурации, ядер, initrd и других файлов прямо с файловой системы.

На данный момент разработка GRUB Legacy (GRUB первой версии) остановлена в пользу развития более совершенного и мощного загрузчика GRUB2, который является загрузчиком по умолчанию в версиях Ubuntu начиная с 9.10 «Karmic Koala».

Настройки

Настройка вручную

В Ubuntu GRUB Legacy имеет свой файл конфигурации: /boot/grub/menu.lst Для его редактирования наберите

sudo gedit /boot/grub/menu.lst

Вместо gedit используйте ваш любимый текстовый редактор. В файле помимо опций, описываются пункты загрузочного меню. Каждый пункт начинается ключевым словом title, текст содержащийся после него на той же строке и является названием пункта меню. На следующих строках следует описание действий, выполняемых загрузчиком при выборе соответствующего пункта.

Основные опции:

Пункт по умолчанию

Определяет какой блок title будет загружаться по истечению времени timeout если не нажимать никаких клавиш. Блоки title нумеруются по порядку начиная с нуля.

default 0

Вы можете использовать по умолчанию последний выбранный вариант:

default saved

Но при этом среди директив загрузки системы должно быть savedefault.

Таймаут выбора

Время для выбора режима загрузки (в секундах). Если пользователь ничего не трогает, по истечении тайм-аута выбирается метка, указанная в поле default.

timeout 10

Скрыть меню

Меню будет показано только по нажатию Esc.

hiddenmenu

Пароль

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

password topsecret
password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/ 

Записи для различных ОС

В конце конфигурационного файла указывается несколько секций операционных систем. Каждая из них начинается с директивы title, после которой указан текст для меню.

Windows
title Windows
rootnoverify (hd0,1)
makeactive
chainloader +1</code>

где:

title Windows

название пункта меню

rootnoverify (hd0,1)

определение раздела с ОС

makeactive

придание разделу статуса активного

chainloader +1

передача загрузки NTLDR

Linux
title Ubuntu Intrepid
root (hd0,2)
kernel /boot/vmlinuz-2.6.27-14-generic root=UUID=4a13e968-c692-465f-bf7a-d1cc1939879c ro quiet splash
initrd /boot/initrd.img-2.6.27-14-generic
boot

где:

title Ubuntu Intrepid

название пункта меню

root (hd0,2)

определение раздела с ОС

kernel /boot/vmlinuz-2.6.27-14-generic root=UUID=4a13e968-c692-465f-bf7a-d1cc1939879c ro quiet splash

передача загрузки ядру, возможно, вместе с дополнительными параметрами

Нумерация разделов

Жёсткие диски и разделы на них GRUB именует по-своему, в виде (hdномер_диска,номер_раздела), причём нумеровать начинает с нуля. Тут важно знать вот что: (hdX,Y) — означает Y+1-ый раздел на X+1-ом диске. То есть (hd1,0) — это первый раздел второго диска в вашем компьютере (в нотации GRUB (да и Linux) диски и разделы нумеруются с нуля, только и всего). Тем, кто привык к буквенным обозначениям в Windows, без них будет тяжеловато, но дистанцироваться от них следует хотя бы потому, что они непостоянны и могут изменяться (в результате чего, возникают известные проблемы). Диски нумеруются в соответствии с подключением, разделы — в соответствии с порядком следования на диске. Как правило, (hd0,0) — это первый раздел master-диска подключенного к основному (primary) IDE-контроллеру либо к нулевому SATA порту. При помощи команды map можно осуществить «замену» дисков. Т.е. если у Вас есть два жестких диска и операционная система, такая как Windows, которая не хочет грузиться с второго жесткого диска, вы можете подменить hd0 на hd1 и hd1 на hd0. Другими словами, вы можете виртуально поменять местами два жестких диска и загрузить выбранную операционную систему. Приведенные опции загрузят ОС из первого раздела второго диска:

map (hd0) (hd1)
map (hd1) (hd0)
root (hd0,0)
makeaktive
chainloader +1

Команды map «меняют местами» диски даже в представлении GRUB: второй диск становится после их выполнения hd0, a нe hd1.

Командный режим

Есть у GRUB и командный режим (попасть в него можно, остановив загрузку клавишей Esc и нажав C). Набрав в командном режиме help, вы получите список всех доступных команд.

help имя_команды

поможет получить краткую справку по соответствующей команде GRUB.

Если загрузиться вдруг не получается, то вы всегда можете перевести GRUB в режим редактирвоания нажатием клавиши E, после этого вы вручную сможете отредактировать параметры загрузки.

GUI для настройки GRUB

Кроме того, для конфигурирования GRUB есть как минимум две GUI-утилиты для редактирвоания файла menu.lst. Из исходников (не бойтесь, в данном случае это действительно просто) можно установить GRUBed, а в репозитариях есть StartUp-Manager.

Дополнительно

C помощью GRUB и Gfxboot можно организовать и графическое загрузочное меню. Сделать это не сложно, к тому же существует много готовых тем.

Похожие программы

LILO (LInux LOader) - программа, предназначенная для загрузки Linux и других операционных систем.
Das U-Boot (Universal bootloader) — компьютерный загрузчик операционных систем, ориентированный на встроенные устройства архитектур MIPS, PowerPC, ARM и множества других.

Ссылки