Настройка меню загрузчика Grub2
Время прочтения: 10 мин.
655

Содержание

Итак, для тех, кому интересно узнать как происходит настройка меню загрузчика Grub2, поделюсь опытом.

Кто-то, наверное, может усмехнуться, сказать: «Открыл вот Америку»… Или: «Изобрёл велосипед»… Да, не открыл. И не изобрёл. Придумано не мной. Я много статей прочитал про это, и там больше вопросов, чем ответов.

Скажу честно, за основу взял пару готовых тем, и кое-что в них доработал. Перефразируя выражение из известного советского фильма «Операция Ы, и другие приключения Шурика…» 🙂:

Всё уже… «придумано» до нас!
Ах,… до нас!..

И ещё, для информации: это больше подойдёт для тех, у кого на компьютере установлено две и более систем, например Windows 7 + Ubuntu (для Windows 10, 11, 8, 8.1, XP и проч. тоже подойдёт). У кого установлена только одна система, но он хочет полюбоваться красотой, расскажу чуть ниже.

Проверено на системе Ubuntu (XUbuntu) 20.04.3 LTS + Windows 7, Linux Mint 20.2 и Debian 11.

Обсудить на форуме

Файлы и директории новой темы

С чего начать… В первую очередь откроем терминал: Ctrl + Alt + T (Или Супер + T, она же Win + T, кому как больше нравится) — (все дальнейшие операции будем производить в терминале!). Создадим директорию для своих файлов в «родительской директории», к примеру «~/tema_grub/». Или можете назвать её на свой вкус и цвет (после каждой команды нажимаем Enter, соответственно!):

mkdir -p ~/tema_grub

Переходим в эту директорию:

cd ~/tema_grub

У меня есть уже готовая заготовка, скачиваем следующей командой (немножко длинная, но скопировать и вставить в терминал — нет ничего проще) :

wget https://onstartup.ru/example/iwanoff.zip && unzip iwanoff.zip && rm -f iwanoff.zip

Конфигурация theme.txt

Итак, наша тема скачана и распакована. Для контроля проверяем:

ls -l ~/tema_grub/iwanoff

Должен появиться список файлов. Я назвал эту тему условно (ну так, по себе) 🙂 — «iwanoff». Вы можете назвать её, как угодно, заменив в последствии «iwanoff» на своё название.

Главный файл темы загрузчика Grub2 — «theme.txt». Проверяем его. Переходим в папку с проектом:

 cd ~/tema_grub/iwanoff

(я везде указываю абсолютные пути, чтобы не было путаницы), и открываем файл, для просмотра и редактирования. В таких случаях мне больше нравится редактор «gedit». Но, если вы привыкли к другому, то замените «gedit» на свой (здесь и далее):

gedit ~/tema_grub/iwanoff/theme.txt

Если система ругнётся на предыдущую команду, (что, мол, нет такой команды!) то выполните:

Тут потребуется ввести пароль Администратора (Суперпользователя)!

Для Ubuntu и Linux Mint:

sudo apt install gedit

[sudo] пароль для … : (вводим пароль).

Для Debian 11 немного длиннее:

su

Пароль: (вводим пароль)

apt install gedit && exit

а потом снова:

gedit ~/tema_grub/iwanoff/theme.txt

Откроется редактор. Посмотрим на содержимое. Какие-то комментарии я уже поправил для нашего, русского, языка. Всё, что за «#» можете править смело, не сомневаясь.

Цвета, шрифт и фоновое изображение

Итого, что мы видим? Если бегло просмотрим этот документ, то увидим, что он «разбит» на 5 частей. Каждая часть подписана комментарием: «Основные опции», «Главное меню», «Верхний прогресс», «Нижний прогресс» и «Нижнее меню». Вы поймете это, когда увидите меню при загрузке.

Часть первая – «Основные опции»

Настройка меню загрузчика Grub2

Смотрим строки сверху.

4-я строка: title-color: "#b0d0d1" — как понимаете, здесь указан цвет заголовка титула Grub2.

В этой Теме (именно Теме — это не сам загрузчик) я постарался подобрать оптимальные цвета, но можете использовать свои. Как рекомендация, все цвета очень хорошо изложены на Википедии.

Ссылочка: HTML-цвета — Википедия

Смотрим далее строки:
title-text: "..." — это заголовок Grub2. В кавычках можете указать себя любимого 🙂

desktop-image: — это фон загрузчика. Пока указан мой. Для эксперимента оставьте, а потом можете указать любую картинку в формате «*.png» или «*.jpg/*.jpeg». Название файла только пропишите здесь своё.

Кстати, рекомендации по картинкам:

где-то советуют взять с разрешением вдвое больше разрешения экрана, где-то — вровень с экраном. Скажу так — не меньше экранного разрешения, это точно. Больше — можно, меньше — нельзя. У меня, например, снята на обычный телефон, но в HDR качестве.

Так же можно воспользоваться обоями рабочего стола или найти в поисковике фразу «Обои для рабочего стола», взять любую понравившуюся картинку со своим разрешением, скачать, и установить на фон.

Далее:
desktop-color: — это цвет подложки. Шесть нолей («#000000») обозначают «чёрный», но! для подложки — он же «бесцветный» (можно заменить на «black»)! Его рекомендую не править!

terminal-font: "Terminus Regular 16" — это шрифт терминала. Цифра «16» обозначает его величину. Если размер шрифта покажется вам слишком слишком мелким или большим,  то в эту Тему предустановлено 4 варианта размера: 12, 14, 16, 18. Вам нужно будет только изменить цифру 16 на ту, которая больше подойдёт.

terminal-box: — это значки для установленных у вас систем. Они выбираются автоматически.

Далее пошли проценты. Это границы отступов от краёв экрана: левый отступ, верхний отступ, высота и ширина. Сейчас они установлены на максимальное использование экрана. Их лучше оставить по умолчанию.

Часть вторая – «Главное меню»

Настройка меню загрузчика Grub2

В этой части стоит отметить несколько моментов. Строки с процентами мы опять пропустим — скажу только, что это размеры Главного меню (слева и ширина, сверху и высота).

item_font = "Ubuntu Regular 20" — это шрифт и размер элементов «Меню». Здесь предусмотренно два варианта: 17 и 20 (сейчас по умолчанию «20»).

Кстати, появилось ещё несколько шрифтов с разной величиной (больше или меньше, как под экран будет лучше)… Градация от 14-ти до 26-ти.

item_color =
selected_item_color = — цвет элементов меню (текста и фона). Также можете поменять на свои.

icon_width =
icon_height = — размер значков установленных систем. Можно сделать чуть больше или меньше.

Части «Верхний прогресс», «Нижний прогресс» и «Нижнее меню» пока пропустим.

В общем-то, для начала, с редактированием всё. Закрываем окно «gedit» «крестиком». Но эту команду (gedit ~/tema_grub/iwanoff/theme.txt) запомните, если потом захотите редактировать цвета, надписи или фон (что самое главное) — она вам понадобится.

Установка заргузчика в систему

Теперь, как это всё установить в загрузчик. Как известно, в Linux-системах он находится в «/boot/grub/». Соответственно, темы для Grub расположены в «/boot/grub/themes/».

Для того, чтобы перенести их, нам потребуются права «root» (администратора). Для начала убедимся, что директории, куда будем загружать Тему, не существует:

(для Debian)

su

и потом для всех вместе (Debian, Ubuntu и Linux Mint):

sudo ls -l /boot/grub/themes/iwanoff

Если вы получили сообщение:
«Нет такого файла или каталога» — значит всё нормально, можем приступать к созданию директории:

sudo mkdir -p /boot/grub/themes/iwanoff

Следующий этап: копируем нашу тему во вновь созданную директорию:

sudo cp -r * /boot/grub/themes/iwanoff

Убеждаемся, что файлы созданы (снова повторяем команду):

sudo ls -l /boot/grub/themes/iwanoff

Получаем список файлов. Скопировано корректно.

Обсудить на форуме

Настройка загрузчика

Приступаем к настройке Grub. Для того, чтобы в последующем больше не приходилось перенастраивать файл «grub.cfg», создаём среду для автоматической его регенерации.

Для этого настраиваем конфигурационный файл по умолчанию — «/etc/default/grub». Тем, кто его уже менял, достаточно добавить строчку в самый низ файла:

GRUB_THEME="/boot/grub/themes/iwanoff/theme.txt" и всё. Переходить к финальным итогам (внизу).

Для тех, кто его «трогает» в первый раз — более подробно. Есть два варианта загрузки: первый — это каждый раз загружать одну и ту же систему, а второй — это загружать систему, которая использовалась в последний раз.

То есть, если у вас «завис» компьютер (не важно, в Windows, Ubuntu, Debian, Linux Mint, или другой системе), то можете нажать кнопку перезагрузки и спокойно пойти попить чайку, кофейку (или ещё чего-то).

Компьютер перегрузится, и снова зайдёт в ту же систему, в которой вы в последний раз работали. Для этого создадим новый файл. Но!.. Для начала сохраним резервную копию текущей конфигурации.

Основной файл настроек

На тот случай, если вам не понравится новое меню — вернётесь к стандартной загрузке. Делаем это следующим образом (резервируем):

sudo mv /etc/default/grub /etc/default/grub.bak

Копия уже есть. Создаём новый файл:

sudo gedit /etc/default/grub

В открытом окне редактора вставляем текст:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="saved"
# GRUB_TIMEOUT_STYLE="hidden"
GRUB_TIMEOUT="60"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL="console"

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE="640x480"

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID="true"

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"


GRUB_SAVEDEFAULT="true"
GRUB_THEME="/boot/grub/themes/iwanoff/theme.txt"

Нажимаем кнопку «Сохранить»…
И, закрываем редактор.

Коротенько поясню: данная конфигурация позволит вам загружаться с последней использованной системы. Это, по сути, замена «Grub-Customizer», который в последнее время так разрекламировали на всю сеть… И без него можем справиться… 🙂

Собственно говоря — и ВСЁ! Настройка закончена!
Да! Внимание! Если у вас открыты какие-то приложения — закройте их, вдруг там есть какая-то важная и не сохранённая информация…

Финальный этап: (я писал об этом выше, для тех, кому только надо добавить в файл «grub» строку: "GRUB_THEME="/boot/grub/themes/iwanoff/theme.txt").

Обновляем загрузчик, перегружаемся… И… Наслаждаемся новым меню!
Для этого вводим команду:

sudo update-grub && sudo reboot

Это займёт около минуты. В процессе вы можете наблюдать за обновлением информации:
«Found….», «Найдена тема……», «Найден образ……», «Найден Windows… XX на sda…»…

Так вот может выглядеть меню загрузки Grub2. Не верите? Проверьте!
Так вот может выглядеть меню загрузки Grub2. Не верите? Проверьте!

Заранее слышу вопрос: «А почему так долго не загружается? Аж 60 секунд?!»
А это для того, чтобы вы успели всё внимательно рассмотреть 🙂 . Можете просто нажать Enter

Ну а когда всё внимательно рассмотрели, и компьютер загрузился (не важно, в первый раз, или вы раз 10 перезагрузились), чуть-чуть подредактируем grub (открываем терминал, вводим):

(для Debian):

su

далее для всех систем Linux:

sudo gedit /etc/default/grub

находим строчку:

GRUB_TIMEOUT="60" - это 60 секунд,

меняем на значение, которое больше устроит (0 — совсем без задержки — это для тех, у кого только одна система, 1, 2, 3, 5, 10, 15, 30 и т.д., сколько хотите…), закрываем редактор, и опять:

sudo update-grub && sudo reboot

За сим всё! Надеюсь, вам всё понравилось! 😉

Верните всё как было!

P.S.:
Да, если вас что-то не устроило, и вы хотите повернуть всё вспять (вернуть, как было), сделайте следующее (в терминале):

(для Debian):

su

для всех (в т.ч., и Debian):

sudo rm -f /etc/default/grub && sudo mv /etc/default/grub.bak /etc/default/grub
sudo rm -R /boot/grub/themes/iwanoff
sudo update-grub && sudo reboot

И снова всё как было, вернётесь к прежней загрузке…… 🙁 🙂

Если у вас появятся вопросы — пишите, постараюсь на них разумно ответить!

А если требуется восстановить загрузку, то почитайте статью: grub rescue – что делать?

P.P.S.:

В следующей статье постараюсь описать, как создать Tему в графической оболочке, и рассказать, что такое файловый менеджер «Krusader». Очень полезная вещь!

Спасибо за внимание!

© Iwanoffъъ
http://iwanoff.ru

Обсудить на форуме