GRUB
GRUB (англ. GRand Unified Bootloader) — загрузчик операционных систем, разрабатываемый в рамках проекта GNU. Используется по умолчанию в дистрибутивах семейства ALT.
Задача загрузчика — загрузить ядро операционной системы и передать ему управление. Кроме того, GRUB позволяет иметь на одном компьютере несколько установленных ядер и/или операционных систем и выбирать нужную при включении через загрузочное меню.
GRUB поддерживает множество аппаратных платформ и режимов загрузки (Legacy BIOS и UEFI), работает с различными файловыми системами, умеет загружаться с томов LVM и шифрованных разделов LUKS, а также совместим с технологиями UEFI Secure Boot и TPM 2.0.
/boot/efi, grub-efi) сохранилась старая аббревиатура. В статье термины используются взаимозаменяемо.
UEFI системы
Установка
Alterator (установщик системы)
При стандартной установке системы с установочного образа один из шагов — «Установка загрузчика». В режиме UEFI доступны следующие варианты:
Все они различаются работой с NVRAM — энергонезависимой памятью прошивки UEFI, в которой хранятся загрузочные записи: какие загрузчики установлены на компьютере и в каком порядке прошивка пытается их запустить.
- EFI (рекомендуемый) — Классический и основной способ установки загрузчика для EFI-систем.
- EFI (сначала очистить NVRAM) — Перед установкой удаляются старые загрузочные записи. Рекомендуется, если ранее были установлены другие системы, а теперь только ALT.
- EFI (запретить запись в NVRAM) — Установка происходит как обычно, но загрузочная запись UEFI не создаётся. Подходит, когда система устанавливается на одном компьютере, а использоваться будет на другом.
- EFI (для съёмных устройств) — Предназначено для съёмных устройств (например, при установке на внешний диск) и для систем, в которых отсутствует NVRAM. Используйте этот вариант, если при установке рекомендуемым способом возникают ошибки, связанные с NVRAM.
BIOS системы
Установка
При стандартной установке системы с установочного образа один из шагов — «Установка загрузчика». В режиме Legacy BIOS загрузчик необходимо устанавливать на диск целиком, а не на отдельный раздел:
После включения компьютера прошивка в режиме Legacy BIOS считывает MBR (Master Boot Record) — самый первый сектор загрузочного диска — и передаёт управление расположенному в нём коду. Именно поэтому в списке устройств нужно выбрать сам диск vda, а не раздел vda1. При установке на диск GRUB записывает первичный код в MBR, а основную часть загрузчика (core.img) размещает в области между MBR и первым разделом, что и обеспечивает корректную загрузку.
Имя диска может отличаться в зависимости от типа накопителя и его подключения — чаще всего это будет что-то вроде sda (для SATA/SCSI-дисков) или nvme0n1 (для NVMe-накопителей). Здесь vda используется как пример имени диска в виртуальной машине.
Настройка GRUB
Настройка GRUB выполняется через файл /etc/sysconfig/grub2. Чтобы применить изменения, после редактирования файла необходимо выполнить команду update-grub.
Добавление и изменение параметров ядра
- GRUB_CMDLINE_LINUX — аргументы командной строки, добавляемые ко всем записям меню ядра Linux.
- GRUB_CMDLINE_LINUX_DEFAULT — аргументы командной строки, добавляемые только к обычным записям меню, после аргументов из GRUB_CMDLINE_LINUX.
- GRUB_CMDLINE_LINUX_RECOVERY — аргументы командной строки, добавляемые только к записям меню восстановления, перед аргументами из GRUB_CMDLINE_LINUX.
- GRUB_CMDLINE_LINUX_DEFAULT — параметры для обычных загрузочных записей;
- GRUB_CMDLINE_LINUX — параметры для записей восстановления.
Подробнее: #53710.
Тайм-аут отображения меню
Тайм-аут определяет время ожидания после которого авотматически будет выбрана загрузочная запись по умолчанию. Нажатие любой клавиши прерывает тайм-аут.
Тайм-аут настраивается двумя параметрами файла конфигурации:
- GRUB_TIMEOUT — время ожидания в секундах. Значение по умолчанию — 5. 0 — немедленная загрузка без отображения меню; -1 — ожидание без ограничения по времени.
- GRUB_TIMEOUT_STYLE — стиль поведения меню во время ожидания; принимает одно из значений: menu, countdown или hidden.
Стиль (GRUB_TIMEOUT_STYLE) задаёт, отображается ли меню во время отсчёта тайм-аута:
- menu (значение по умолчанию) — меню показывается сразу, отсчёт идёт на экране меню. Нажатие любой клавиши прерывает отсчёт.
- countdown — меню скрыто, на экране отображается обратный отсчёт оставшегося времени.
- hidden — меню скрыто, на экране ничего не отображается.
В режимах countdown и hidden меню не отображается, а отсчёт идёт до загрузки записи по умолчанию. Чтобы прервать его и открыть меню, нажмите ESC или F4 либо удерживайте Shift.
Бесшовная загрузка (flicker-free boot)
Чтобы при обычной загрузке меню не отображалось и не нарушало плавность вывода (например, не прерывало логотип производителя), используют стиль hidden.
GRUB_TIMEOUT=5 GRUB_TIMEOUT_STYLE=hidden
Смотрите также
- GNU GRUB Manual http://www.gnu.org/software/grub/manual/grub.html (англ.)
- Статья о GRUB на Arch Wiki
- Статья о GRUB на Arch Wiki (англ.)
- Статья о GRUB на Debian Wiki (англ.)
- Статья о GRUB на Gentoo Wiki
- Статья о GRUB на Gentoo Wiki (англ.)
- Статья о GRUB на openSUSE Wiki (англ.)
- mkimage-profiles поддерживает GRUB для сборки образов (см. feature.in/grub, feature.in/bootloader)