How-To среда: Настройка загрузчика Grub
29.11.2007

Fedora, как и большинство современных linux-дистрибутивов, использует Grub как загрузчик для 32- и 64-битных x86 систем. Конфигурационный файл Grub лежит здесь: /boot/grub/grub.conf.

Выглядит он обычно так:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,1)
# kernel /vmlinuz-version ro root=/dev/main/root
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,1)/grub/splash.xpm.gz
hiddenmenu

title Fedora (2.6.23.1-49.fc8)

root (hd0,1)
kernel /vmlinuz-2.6.23.1-49.fc8 ro root=/dev/main/root rhgb quiet
initrd /initrd-2.6.23.1-49.fc8.img

title Fedora (2.6.23.1-42.fc8)

root (hd0,1)
kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/main/root rhgb quiet
initrd /initrd-2.6.23.1-42.fc8.img

title WindowsXP

rootnoverify (hd0,0)
chainloader +1

Этот файл содержит глобальные опции (выделены зеленым), опции, относящиеся к Fedora (выделены синим), и опции, относящиеся к Windows (выделены красным).

Глобальные опции:

  • default — система, загружаемая по-умолчанию, без нажатия каких-либо клавиш. Значение — порядковый номер системы, начинается с 0;
  • timeout — время в секундах, по прошествии которого загружается система по-умолчанию, если не было нажато никаких клавиш. Для того, чтобы загрузчик ждал бесконечно долго, удалите эту опцию. Чтобы загружать систему по-умолчанию буз задержек, установите опцию в 0;
  • hiddenmenu — прятать меню выбора системы, пока пользователь не нажмет на кнопку. Чтобы меню отображалось всегда, удалите опцию;
  • splashimage — выбрать картинку, которая будет показываться как фон в Grub.

Среди опций, относящихся к Fedora (как и к любому другому linux-дистрибутиву), есть title, содержащий имя системы, а также следующие опции:

  • root — загрузочный раздел; внимание: тут указывается не root-раздел, а раздел, содержащий загрузочные файлы;
  • kernel — ядро и опции ядра;
  • initrd — файл, который содержит сжатый образ файловой системы, который загружается в память и используется в процессе всей загрузки.

Grub загрузит ядро и initrd с раздела, указанного в опции root, и выполнит ядро. Другая операционная система, такая, как Windows, загружается по-другому: Grub передает управление ее загрузчику, используя следующий опции:

  • rootnoverify — как опция root для linux, эта опция указывает раздел, содержащий загрузчик;
  • chainloader — указывает Grub-у выполнять код загрузчика, лежащего на втором (+1) секторе выбранного раздела.

На протяжении всего файла разделы описываются как (hdX,N), где X — порядковый номер диска, как он настроен в BIOS, нумерация с 0. N — номер раздела, также нумерация с 0. Если в системе всего один жесткий диск, раздел /dev/sda2 (/dev/hda2 для Fedora 6 и более ранних) будет правильно обозначаться в Grub как (hd0,1).

Если вы используете Xen, раздел Fedora может выглядеть так:

title Fedora (2.6.21-2950.fc8xen)
root (hd0,1)
kernel /xen.gz-2.6.21-2950.fc8
module /vmlinuz-2.6.21-2950.fc8xen ro root=/dev/main/root rhgb quiet
module /initrd-2.6.21-2950.fc8xen.img

Здесь kernel — это ядро в специальном виде для Xen,а initrd и vmlinuz загружаются как модули. Любые параметры ядра можно указывать после /vmlinux-* (как root=/dev/main/root).

Так как grub.conf — это обычный текстовый файл, его можно редактировать любым редактором текстовых файлов на Ваш выбор, например с помощью vi, gedit, или kate. Однако, если Вы допустите ошибку при редактировании, Вы уже не сможете загрузить систему из меню Grub. Чтобы снизить риск возникновения такого случая, можно скопировать раздел перед редактированием и назвать его по другому, например, Fedora-save. Тогда Вы всегда сможете загрузиться в систему, выбрав Fedora-save из меню Grub.