Загрузчик GRUB

Загрузчик GRUB

GRUB и другие загрузчики

Как уже было отмечено, 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, Reiserfs, XFS и др., что позволяет ему проделывать трюки, описанные выше.

Конфигурационный файл GRUB

Конфигурационный файл GRUB называется /boot/grub/grub.conf. В ранних версиях этот файл назывался menu.1st, теперь же menu.1st — это ссылка на файл grub.conf. Хотя в некоторых дистрибутивах, например, в Ubuntu, данный файл до сих пор называется menu.1st, впрочем, это к Fedora не относится.

Пример файла конфигурации grub.conf представлен в листинге 1.

    Листинг 1. Пример файла конфигурации 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.6.22-1.2798.fc8 ro root=LABEL=/ rhgb quiet

    initrd /boot/initrd-2.6.22-1.2798.fcS.img

    savedefault

    title Windows HT/200Q/XP (loader)

    root (hd0,0)

    makeactive

    chainloader +1

Параметр timeout задает тайм-аут в секундах перед загрузкой операционной системы по умолчанию. Параметр default задает номер операционной системы, загружаемой по умолчанию. Нумерация операционных систем начинается с 0.

Описание каждой операционной системы начинается параметром title. Параметры, заданные до первого параметра title, считаются глобальными и распространяются на все операционные системы. Параметры, заданные после параметра title, относятся к текущей операционной системе (пока не будет встречен следующий параметр title).

Параметр root задает идентификатор устройства (раздела жесткого диска), на который установлена система. Идентификаторы в GRUB немного отличаются от общепринятых в Linux. Мы привыкли, что разделы жесткого диска именуются так: /dev/hdXn, где х — буква, а n — цифра (или /dev/sdXn в случае с SCSI/SATA-диском). В GRUB формат другой:

(hdHoмep, Номер)

Первый номер — это номер жесткого диска, второй — номер раздела. Предположим, что у нас есть устройство /dev/hda5. В GRUB его ID будет выглядеть так:

(hd0,4)

    Вот последовательность действий по преобразованию имен /dev/hdXn в имена GRUB.
  • 1. Удалить /dev/(останется hdXn).
  • 2. Букву X заменить на соответствующий ей номер, при условии, что нумерация начинается с 0, т.е. а = 0, b = 1, с = 2, d = 3.
  • 3. Номер n уменьшить на 1.
Параметр kernel указывает требуемое для загрузки операционной системы ядро и параметры этого ядра. В данном случае ядро называется /boot/vmlinuz-2.6.22-1.2798.fc8, и ему будут переданы следующие параметры:

rо root=LABEL=/ rhgb quiet

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

Параметр initrd задает RAM-диск. Он тоже нужен только для Linux.

Параметр savedefault нужен далеко не всегда. Операционная система по умолчанию задается параметром default. Обычно указывается номер операционной системы, но если вместо номера ОС указать значение saved, то по умолчанию будет загружена ОС, отмеченная параметром savedefault.

Для загрузки Linux достаточно всего трех параметров: root, kernel и initrd. Теперь рассмотрим загрузку Windows. Как обычно, с помощью root нужно указать раздел, на котором установлена Windows. Параметры kernel и initrd в этом случае не нужны, поскольку нет ни Linux-ядра, ни RAM-диска.

    Зато нужны следующие параметры:
  • makeactive
  • chainloader +1
Первый параметр делает раздел, с которого загружается Windows, активным. Для Windows 2000, ХР и Vista это уже не актуально, зато актуально для старых версий Windows (98, ME), которые не могли загрузиться, если раздел, на который они установлены, не являлся активным.

Параметр chainloader нужен для всех ОС, поддерживающих цепочечную загрузку. В данном случае такой ОС является Windows, поэтому нужно не забыть указать chainloader +1, иначе Windows вы не запустите.



В таблице приведены некоторые полезные глобальные параметры GRUB.

Параметр Описание
hiddenmenu Скрывает загрузочное меню. Для его открытия нужно нажать клавишу Esc. После тайм-аута будет, как обычно, загружена ОС по умолчанию. Параметр удобно использовать, если список загружаемых ОС большой, но обычно используется ОС по умолчанию, поэтому нет особой необходимости при каждой загрузке выбирать другую ОС
password пароль Позволяет установить пароль. Если параметр password является глобальным (указан до первого параметра title), то при редактировании параметров ядра всех ОС будет запрошен пароль; также пароль будет запрошен при попытке загрузить ОС, отмеченные параметром lock.

Если же параметр password относится только к одной ОС (указан после параметра title), тогда паролем будет защищена только выбранная ОС. Подробно о защите паролем мы поговорим чуть позже
groot=ID Позволяет указать загрузочное устройство по умолчанию, например groot=(hd0,4)
memtest86=true Если параметр memtest86=true, тогда GRUB создаст загрузочную опцию для вызова программы memtest86 (ее заранее нужно установить). Данная программа используется для проверки оперативной памяти. Если компьютер самопроизвольно перезагружается или часто зависает — это повод проверить оперативную память
splashimage=картинка Позволяет установить фоновую картинку меню загрузчика

Обои для GRUB

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

    Вот требования к картинке:
  • количество цветов — 16;
  • разрешение (размеры) — 640×480;
  • формат — ХРМ.
Конвертировать картинку в нужный формат можно с помощью программы GIMP. Если вам нравится работать в командной строке, тогда вы можете воспользоваться командой:

convert исходная_картинка -colors 16 -resize 640×480 image.xpm

Примечание. Программа convert входит в состав пакета ImageMagic.

    Затем файл image.xpm нужно скопировать в /boot/grub и сжать с помощью программы gz:
  • # ср image.xpm /boot/grub
  • # gzip image.xpm
Затем нужно открыть файл grub.conf и добавить параметр:

splashimage=(ID)/boot/grub/image.xpm.gz

ID — это идентификатор вашего раздела, например hd0,5.

Установка пароля GRUB

Теперь поговорим об установке пароля GRUB.

    Пароль можно установить так (в файле /boot/brub/grub.conf):
  • password my_pass
  • title Linux
В этом случае мы установили пароль my_pass. Если кто-то попытается отредактировать параметры ядра (чтобы, например, взломать ваш пароль root), то GRUB запросит у него пароль. Но любой желающий сможет загрузить любую операционную систему с параметрами по умолчанию.

Если вы хотите, чтобы GRUB запрашивал пароль при загрузке операционной системы, нужно «закрыть» ее параметром lock.

    Сейчас мы «закроем» Windows:
  • title Windows NT/2000/XP (loader)
  • root (hd0,0)
  • makeactive
  • chainloader +1
  • lock
Вроде бы все теперь хорошо. Но не совсем. Ваш пароль виден невооруженным взглядом. Это означает, что, если кто-то подключит ваш жесткий диск к другому компьютеру и просмотрит ваш файл grub.conf, то он узнает ваш пароль. Ну, или загрузится с LiveCD, подмонтирует корневую файловую систему и откроет файл grub.conf — способ значения не имеет, важен результат.

Чтобы такого не произошло, нужно зашифровать ваш пароль. Для этого введите команду grub:

# grub

Вы увидите приглашение:

grub>

Введите команду md5crypt. Затем нужно ввести ваш пароль. В ответ вы получите код, например, $l$gLhU0/$aW78kHKlQfV3P2b2znUoe/. Запишите код на бумажке и введите команду quit для выхода из оболочки GRUB.

После этого откройте файл grub.conf и измените параметр password так:

password —md5 ваш_код

Например:

password —md5 $l$gLhU0/$aW78kHKlQfV3P2b2znUoe/

Вот теперь ваш GRUB защищен.





Вы так же можете ознакомиться с другими статьями главы Приложение:
  • Контроль учетных записей в Windows 7
  • Как установить Linux на ноутбук
  • Файл подкачки в Linux
  • Как увеличить файл подкачки в Windows 7
  • Дефрагментация файла подкачки
  • Очистка файла подкачки Windows 7
  • Настройки кэша в Windows 7
  • Программы для дефрагментации диска Windows 7
Удачи Вам! До скорых встреч на страницах сайта RusOpen.com

Опубликовано: 18.04.2015