На днях, на домашнем компьютере я начисто переустанавливал linux. Он установлен у меня по-соседству с Windows, которую я тоже периодически использую. Поэтому при загрузке меня всегда встречает меню GRUB c выбором ОС. Поведение этого меню по умолчанию, меня не слишком устраивает, поэтому мне пришлось полазать по  конфигам, дабы его изменить. А заодно решил и набросать заметку по настройке GRUB.

На всякий случай, напомню читателям что такое GRUB.
GRUB (GRand Unified Bootloader — Основной Унифицированный Загрузчик) — это программа  находящаяся в первых секторах жесткого диска и первой загружающаяся, после того как BIOS проведет первичный тест работоспособности системы. Она позволяет пользователю выбрать ОС, версию ядра и, при необходимости, передать ему параметры загрузки. GRUB также может передавать управление  другому загрузчику. Например, чтобы загрузить Windows, которая использует свой загрузчик NTLDR.

Основные настройки загрузчика хранятся в /boot/grub/grub.cfg. Но изменять его  дело не благодарное, так как после каждого обновления, этот файл создается заново. Генерируется grub.cfg из файла /etc/default/grub и файлов содержащихся в папке /etc/grub.d. Чтобы настроить меню выбора ОС при загрузке, нам нужен /etc/default/grub. Он выглядит как обычный файл настроек типа КЛЮЧ=ЗНАЧЕНИЕ. Вот описание основных из них:

GRUB_DEFAULT — определяет номер пункта меню загрузчика, который выбирается по умолчанию. Нумерация пунктов начинается с 0. Также вместо номера можно указать значение “saved”. Тогда будет выбираться пункт, использованный при прошлой загрузке. Если это значение не будет работать, то нужно добавить в этот же файл строку GRUB_SAVEDEFAULT=true Еще можно указать точное название пункта меню (его можно скопировать в /boot/grub/grub.cfg)

GRUB_TIMEOUT — время, в течении которого отображается меню,. Указывается в секундах. Если установить значение “-1”. То меню будет отображаться пока пользователь сам не выберет какой-либо пункт.

GRUB_HIDDEN_TIMEOUT — может пригодиться если установлена только одна ОС и меню загрузчика по умолчанию не отображается. Если закомментирован, то позволяет приостановить  загрузку ОС, на указанное количество секунд, в течении которых можно нажать клавишу Esc и вызвать меню загрузчика. Например чтобы выбрать с какой версией ядра загружаться.

GRUB_HIDDEN_TIMEOUT_QUIET — включает/выключает отображение таймера в меню.

После настройки этих параметров, чтобы пересобрать файл grub.cfg и применить изменения нужно выполнить следующую команду:

sudo update-grub

Также для настройки меню GRUB существует программка с графическим интерфейсом Grub Customizer. Установить её в Ubuntu и производных дистрибутивах можно набором команд:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

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