GRUB2 — описание, установка и настройка

05. 04. 2015

GRUB2 -мультисистемный, кроссплатформенный загрузчик ядра операционной системы. Основном применяется для загрузки ядер Linux. Позволяет иметь несколько установленных операционных систем на одной машине и при включении компьютера выбирать загрузку нужной ОС.

GRUB2 это новая ветка и кардинально отличается от GRUB Legacy, создан на основе PUPA и имеет модульную структуру. Поддерживает множество файловых систем, работает с BIOS и EFI.

Установка GRUB2:

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

GRUB2Для BIOS:

# grub-install /dev/sda

/dev/sda - это устройство, а не раздел.

Для EFI:

grub-install

Также существует ряд опций, для каждого случая, версий GRUB2 и дистрибутива онимогут отличиться, описывать нет смысла. Переустановка ничем не отличается от установки и выполняется командой grub-install.

После установки загрузчик готов к работе в консольном режиме, для исправления этого нужно генерировать конфигурационный файл, об этом ниже.

Настройка:

по умолчанию конфигурационный файл находится тут - /boot/grub/grub.cfg. Если файл был генерированный при помощи grub-mkconfig, то он непригоден к редактированию и при следующем обновлении он будет перезаписан . А если вы, все-таки, решили сконфигурировать файл загрузчика сами, тогда удалите сгенерированную версию и создайте новую, сами или на основе примеров.

Автоматическая конфигурация:

Начнем с самого простого, автоматическая генерация выполнятся командой:

# grub-mkconfig

Эта команда генерирует файл grub.cfg. Чтобы автоматически обнаружить посторонние ОС необходим пакет os-prober. В основном настройка конфигуратора grub-mkconfig выполняется в файле /etc/default/grub, а также в файлах каталога /etc/grub.d/. Добавить свои пункты меню можно в файле /etc/grub.d/40_custom или /boot/grub/custom.cfg. Чтобы изменения вступили в силу необходимо выполнить команду:

# grub-mkconfig -o /boot/grub/grub.cfg

Команда создаст файл /boot/grub/grub.cfg и проверит конфигурационные файлы на наличие ошибок. Конфигурационный файл /etc/default/grub содержит параметры по умолчанию, каждый параметр имеет комментарий (краткое описание) на английском языке. Далее описание некоторых параметров из конфигурационного файла:

  • GRUB_DEFAULT — Выбор загрузки пункта меню по умолчанию. Может быть выбран по номеру или названию.
  • GRUB_TIMEOUT — Указывает на время задержки перед загрузкой пункта по умолчанию.
  • GRUB_HIDDEN_TIMEOUT — Время ожидания перед показом списка загрузки пунктов меню.
  • GRUB_DISABLE_OS_PROBER — Убирает проверку на наличие установленных ОС.
  • GRUB_GFXMODE - Отвечает за разрешение экрана. Командой vbeinfo можно посмотреть список доступных параметров разрешения в командной строке GRUB2.
  • GRUB_BACKGROUND — Путь к фоновой картинке.
  • GRUB_THEME — Путь к темам.

Ручная конфигурация:

Язык скрипта конфигурации GRUB2 упрощённый UNIX-шелл. Скрипт может быть как простым так и очень сложным, сложность скрипта ничем не ограничена. Скрипт генерируемый grub-mkconfig пригоден для загрузки в большинстве случаев, но он громоздок.

Ручная конфигурация GRUB2 открывает доступ ко всем возможностям, а за счет упрощения и удаления лишнего кода можно добиться большей стабильности, надежности и скорости работы.

Более подробно о конфигурации GRUB2 с примерами кода конфигурации и другой информацией можно прочитать на GNU GRUB2 manual.