Гид по технологиям

Редактирование меню загрузки GRUB 2 на Linux

• 3 min read • Linux • Обновлено 23 Nov 2025
Редактирование меню загрузки GRUB 2 на Linux
Редактирование меню загрузки GRUB 2 на Linux

Обзор GRUB 2

GRUB 2 — гибкий загрузчик, который понимает файловые системы и форматы исполняемых образов ядра. Это значит, что вы указываете путь к файлу ядра, диск и раздел, и GRUB загрузит систему без привязки к физическому смещению ядра на диске.

Файл конфигурации теперь называется grub.cfg (в отличие от старых menu.lst или grub.conf) и генерируется автоматически. Команда, которая создаёт файл конфигурации в большинстве дистрибутивов Debian/Ubuntu, —

grub-mkconfig

(в системах на базе GRUB2 иногда используется grub2-mkconfig, см. раздел совместимости).

Важно: не редактируйте напрямую /boot/grub/grub.cfg. Изменения нужно вносить в шаблоны и параметры, откуда файл генерируется.

Скриншот содержимого конфигурационного файла GRUB

Где редактировать

Главные места, которые нужно знать:

  • /etc/default/grub — общие параметры меню загрузки и поведения GRUB.
  • /etc/grub.d/ — набор скриптов, которые генерируют grub.cfg. Порядок выполнения определяется именами файлов (например, 30_os-prober, 40_custom).

Откройте файл настроек (как пример для GUI-редактора):

gksu gedit /etc/default/grub

Или используйте любимый консольный редактор:

sudo nano /etc/default/grub

Основные переменные в /etc/default/grub

Пример блока, который вы увидите:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=-1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

Краткие пояснения (простым языком):

  • GRUB_DEFAULT — пункт по умолчанию. Может быть числом (счёт с нуля), названием пункта или строкой saved.
  • GRUB_HIDDEN_TIMEOUT — если задан, GRUB попробует загрузить пункт по умолчанию через N секунд, если клавиша не нажата. 0 — загрузка без показа меню, -1 — ждать бесконечно.
  • GRUB_HIDDEN_TIMEOUT_QUIET — true скрывает обратный отсчёт (покажет пустой экран), false показывает таймер.
  • GRUB_TIMEOUT — сколько секунд показывать меню перед автозапуском. 0 — сразу загрузить; -1 — ждать выбора.
  • GRUB_DISTRIBUTOR — определяет текст дистрибутива в меню (получается через lsb_release).
  • GRUB_CMDLINE_LINUX_DEFAULT — параметры ядра, применяемые для нормальной загрузки. Уберите quiet, чтобы видеть текстовый вывод, уберите splash, чтобы отключить изображение-заставку.

Примечание: в кодовой строке выше используется обратная кавычка \lsb_release…`` — это конструкция shell, она оставлена исходной как пример.

Установка пользовательского splash-изображения

Добавьте файл изображения в /boot/grub/:

sudo cp splash1.jpg /boot/grub/

Форматы: GRUB поддерживает PNG и JPG; для лучшей совместимости используйте PNG с разрешением, близким к разрешению экрана.

Пример изображения splash, помещённого в /boot/grub

Добавление собственного пункта меню

Для своих пунктов используйте файл /etc/grub.d/40_custom. Имя файла определяет порядок — скрипты запускаются по возрастанию имени.

Откройте для редактирования:

gksu gedit /etc/grub.d/40_custom

Пример простого собственного пункта (скопируйте и адаптируйте под вашу систему):

menuentry 'My custom Linux' {
    set root='hd0,msdos1'
    linux /vmlinuz-5.4.0-42-generic root=/dev/sda1 ro quiet splash
    initrd /initrd.img-5.4.0-42-generic
}

После добавления убедитесь, что файл исполняемый:

sudo chmod +x /etc/grub.d/40_custom

Редактирование файла 40_custom в текстовом редакторе

Применение изменений

После редактирования /etc/default/grub или скриптов в /etc/grub.d/ нужно перегенерировать grub.cfg:

sudo update-grub

На некоторых системах (например, Fedora) команда отличается — см. раздел совместимости ниже.

Перезагрузите систему и проверьте меню.

Отладка и ситуация, когда изменения не применяются

Когда правки не видны в меню, проверьте:

  • Вы действительно редактировали правильный файл (/etc/default/grub, а не /boot/grub/grub.cfg).
  • Не забыли запустить update-grub или эквивалентную команду.
  • Файлы в /etc/grub.d/ имеют корректные права (исполняемые там, где нужно).
  • На системах с UEFI конфигурация может храниться в других путях (см. раздел совместимости).

Типичные ошибки и их решения:

  • Неправильный путь к ядру или initrd в 40_custom — приведёт к ошибке загрузки. Проверьте имена файлов в /boot/.
  • Неверный синтаксис в 40_custom — update-grub может проигнорировать или сломать генерацию. Внимательно следите за фигурными скобками и кавычками.

Альтернативные подходы

  • Использование grub2-mkconfig -o /boot/grub2/grub.cfg на дистрибутивах, где так называется утилита.
  • Ручное редактирование /boot/grub/grub.cfg допустимо только в экстренных ситуациях; лучше изменить скрипты и регенерировать.
  • Для массового развёртывания конфигураций используйте конфигурационные менеджеры (Ansible, Puppet) — шаблонизация /etc/grub.d/ и /etc/default/grub позволит воспроизводить настройки.

Безопасность и откат

  • Всегда делайте резервную копию: sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak и sudo cp /etc/default/grub /etc/default/grub.bak.
  • Если после обновления GRUB система не загружается, загрузитесь с live-USB, смонтируйте раздел и восстановите резервную копию файлов или используйте chroot для восстановления.

Краткий плейбук при неудачной загрузке:

  1. Загрузитесь с live-USB.
  2. Смонтируйте ваш корневой раздел и /boot (если отдельный).
  3. Восстановите /boot/grub/grub.cfg из .bak или пересоберите update-grub в chroot.
  4. Восстановите загрузчик (grub-install) по необходимости.

Критерии приёмки

  • Пункт меню появляется и загружает систему в рабочее состояние.
  • Splash-изображение отображается при загрузке (если включено).
  • При восстановлении из резервной копии система возвращается к прежнему состоянию.

Рольовые чек-листы

Администратор:

  • Сделать резервные копии /etc/default/grub и /boot/grub/grub.cfg.
  • Проверить правильность путей к ядру и initrd.
  • Выполнить update-grub и перезагрузку.

Разработчик/тестер:

  • Проверить, что параметры ядра (GRUB_CMDLINE_LINUX_DEFAULT) дают нужный вывод/режим.
  • Тестировать варианты с и без quiet/splash.

Домашний пользователь:

  • Скопировать splash в /boot/grub/ и установить GRUB_CMDLINE_LINUX_DEFAULT по вкусу.
  • Не менять сложные скрипты в /etc/grub.d/ без понимания.

Шпаргалка команд

  • Редактировать настройки: sudo nano /etc/default/grub
  • Добавить свой пункт: sudo nano /etc/grub.d/40_custom
  • Сделать исполняемым: sudo chmod +x /etc/grub.d/40_custom
  • Обновить конфигурацию: sudo update-grub
  • Копировать splash: sudo cp splash1.jpg /boot/grub/
  • Восстановить назад конфигурацию: sudo cp /boot/grub/grub.cfg.bak /boot/grub/grub.cfg

Совместимость и миграция

  • Debian/Ubuntu: update-grub (обёртка над grub-mkconfig) и путь /boot/grub/grub.cfg.
  • RHEL/Fedora: используйте grub2-mkconfig -o /boot/grub2/grub.cfg и, в случае EFI, /boot/efi/EFI/fedora/grub.cfg (зависит от дистрибутива).
  • UEFI vs BIOS: на UEFI система может хранить файлы загрузчика в ESP (раздел EFI), обратите внимание сохраняете ли вы файлы в правильном месте.

Когда изменения не помогут (контрпримеры)

  • Если проблема заключается в повреждённом ядре или initrd — изменение меню не исправит сам образ. Нужно восстановить/переустановить пакеты ядра.
  • Если устройство имеет аппаратную проблему с диском, загрузчик может не увидеть файлы — в этом случае нужно диагностировать диск.

Глоссарий (в одну строку)

  • GRUB: загрузчик (Grand Unified Bootloader) для Linux.
  • splash: графическая заставка при загрузке.
  • initrd/initramfs: временная файловая система для инициализации перед монтированием корня.
  • UEFI: современный интерфейс прошивки, заменяющий BIOS.

Краткое резюме

  • Правьте /etc/default/grub и /etc/grub.d/ — не /boot/grub/grub.cfg.
  • После правок выполняйте sudo update-grub (или эквивалент для вашего дистрибутива).
  • Всегда делайте резервную копию и тестируйте изменения перед массовым применением.

Ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро