Это старая версия документа.


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, они не имеют ничего общего и являются совершенно разными программами.

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

  • Умеет по цепочке передать управление другому загрузчику, допустим NTLDR для загрузки Windows. После настройки GRUB, пользователь, при включении компьютера, видит список операционных систем, которые установлены на его компьютер, и которые можно загрузить, нажав Enter. GRUB позволяет установить несколько ОС на один компьютер в разные разделы, загружать разные ядра, передавать параметры ядру.
  • GRUB — самый популярный загрузчик в мире Linux, так как является загрузчиком по-умолчанию в большинстве известных дистрибутивов. Ранее самым популярным был Lilo.

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

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

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

GRUB Legacy поддерживает множество файловых систем: BSD FFS, DOS FAT16 и FAT32, Minix, ext2, ext3, ext4 (через патч), ReiserFS, JFS, XFS, VSTa.

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

Настройки

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

sudo apt-get install startupmanager

Система → Администрирование → StartUp-Manager

FIXME - таки надо чуть поподробней расписать

/boot/grub/menu.lst файл конфигурации GRUB Legacy в Ubuntu.

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

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

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

# Блок, вроде такого, отвечает за загрузку Windows:
# название пункта меню
title Microsoft Windows XP
# определение раздела с ОС
rootnoverify (hd0,0)
# придание разделу статуса активного
makeactive
# передача загрузки [[http://ru.wikipedia.org/wiki/NTLDR| NTLDR]]
chainloader +1

# Linux загружается примерно так:
# название пункта меню
title Ubuntu 7.10 kernel 2.6.22
# определение раздела с ОС
root (hd0,1)
# передача загрузки ядру, возможно, вместе с дополнительными параметрами
kernel /vmlinuz root=/dev/hda2 

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

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

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

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

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

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

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

Конфигурирование GRUB вручную

sudo gedit /boot/grub/menu.lst

Вместо gedit используйте ваш любимый текстовый редактор. Доступны следующие настройки:

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

default 0

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

default saved

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

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

timeout 10

Скрыть меню

hiddenmenu

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

Пароль

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

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

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

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

Windows
title Windows
rootnoverify (hd0,1)
makeactive
chainloader +1
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
Нумерация разделов

(hdx,y) – обозначение раздела жесткого диска. x – номер физического диска, y – номер раздела, оба нумеруются с нуля.

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

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

Ссылки