Содержание
Итак, для тех, кому интересно узнать как происходит настройка меню загрузчика 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 частей. Каждая часть подписана комментарием: «Основные опции», «Главное меню», «Верхний прогресс», «Нижний прогресс» и «Нижнее меню». Вы поймете это, когда увидите меню при загрузке.
Часть первая – «Основные опции»
Смотрим строки сверху.
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:
— это значки для установленных у вас систем. Они выбираются автоматически.
Далее пошли проценты. Это границы отступов от краёв экрана: левый отступ, верхний отступ, высота и ширина. Сейчас они установлены на максимальное использование экрана. Их лучше оставить по умолчанию.
Часть вторая – «Главное меню»
В этой части стоит отметить несколько моментов. Строки с процентами мы опять пропустим — скажу только, что это размеры Главного меню (слева и ширина, сверху и высота).
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…»…
Заранее слышу вопрос: «А почему так долго не загружается? Аж 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ъъ
https://radioold.101.ru/
Здравствуйте ! На hdd установлено windows 7, Linux mint 21.2,
Lubuntu 18.5.
Я новичок в линуксах. Я устанавливал Grub Customizer и настраивал его. И по вашей инструкции сделал настройку через терминал... ничего не изменилось. Я не знаю почему...
Здравствуйте, Николай!
Тут у Вас несколько запутанная ситуация.
Во-первых — Grub Customizer. Я его, честно говоря, недолюбливаю. Изначально я тоже пытался настроить «Меню» через него. Но, он только «ломает» и запутывает загрузчик. Для начала рекомендую сделать в нём все отмены. Там должна быть такая возможность.
Во-вторых — у Вас установлены две системы Linux. И тут надо смотреть в порядке установки этих ОС — какая была установлена раньше, а какая позже. Как правило, более поздняя установленная «перехватывает» загрузчик. Вы пробовали изменить «Меню» из под обеих систем, или только из какой-то одной?
Попробуйте загрузиться из другой ОС Linux, и произвести все те же самые операции. Загрузке компьютера в целом это никак не навредит.
Здравствуйте, уважаемый Роман ! Благодарю Вас за быстрый ответ и понимание ! Я переустановил Linux mint и решил установить 20.3, а другой линукс не стал ставить, и у меня всё получилось, по вашим пошаговым рекомендациям. Установилась и работает тема и загрузчик. Благодарю !
Николай, я рад, что у Вас всё получилось! ?
Ваш комментарий очень полезный! Я не стал описывать этот момент в основной статье, чтобы не «загружать» пользователей лишней информацией. Но — это, действительно, так: если на компьютере установлены более одной ОС из категории Linux (Linux Mint, Debian, Ubuntu, XUbuntu, LUbuntu, KUbuntu и прочих подобных) — то преобразить «Меню» начальной загрузки можно только из последней по времени установленной Операционной Системы. И не важно, какого года она «Выпуска». Каждая последующая установленная ОС «перетягивает» загрузчик на себя.
Если более точнее — то сам загрузчик остаётся на одном и том же месте — на нулевой дорожке жёсткого диска. Изменяется только расположение директории «/boot» каждой из установленных ОС. Поэтому и все действия, рассказанные в этой статье, надо выполнять из под «крайней установленной ОС». ?
Это будет полезно для всех, кто захочет внести «разнообразие» к начальной загрузке! ?
* Примечание к статье:
«Проверено, так же, на Ubuntu от 12.04 LTS до 24.04 LTS, а так же Linux Mint до 21.3. На Debian последних версиях пока не проверял, но со 100%-й уверенностью скажу, что тоже будет «работать», ибо Ядро (Kernel) у этих ОС совершенно одинаковое».