GRUB Customizer: настройка «второгруба» малой кровью

Алексей Федорчук

Раз уж занялся кастомизацией — сам Заратуштра велел кастомизировать не только дистрибутивы, но и то, от чего зависит их удачный (надеюсь) запуск, то есть начальный загрузчик. Коим вот уже не первый год в большинстве Linux’ов практически безальтернативно выступает GRUB2. Хотя многие майнтайнеры лицемерно делают вид, что продолжают поддерживать Lilo и GRUB Legacy. А отдельные их представители, блюдущие традиции, делают это на самом деле (например, Патрик Фолькердинг для Slackware и Билл Рейнолдс aka Texstar для PCLinuxOS).

Тем не менее, GRUB2 стал объективной реальностью, и настраивать его как-то надо. Настройка GRUB Legacy, тогда ещё просто GRUB’а, сводилась к правке одного текстового файла с прозрачной структурой, и была документирована многократно на всех языках. В том числе и на русском — как ту не вспомнить многочисленные статьи Владимира Попова, собранные в виде цикла при нимальном участии автора этих строк.

Настройка же GRUB2 требует не просто внесения измений в главный конфиг, расположенный там, где его никто не ожидал бы найти, но и закрепления его запуском исполнимого файла, тоже именованного не вполне логично. Кто помнит, как хаяли некогда Lilo за то, что оно после правки конфига требует запуска программы lilo, поймёт, о чём я.

В общем, я до самого крайняка оттягивал знакомство с методами конфигурирования GRUB2, ограничиваясь использованием команды update-grub — той самой, которую надо запускать после любых изменений в конфигурации, в том числе и после установки новых дистрибутивов.

Однако давеча этот крайняк наступил. Во-первых, я окончательно проникся отвращением к виду этого загрузчика по умолчанию в Mint’е (хотя тут можно утешаться тем, что в Ubuntu он выглядит ещё хуже). И ладно бы он только оскорблял моё эстетическое чувство — маленькие буковки менб загрузчика я просто не могу разглядеть. Главное же, в один прекрасный момент, после переноса пары дистрибутивов на другие разделы, в этом самом меню у меня образовалось четыре пункта с именем Slackware. Хотя чистокровной Slackware там не было — два из них соответствовали Slint’у, и два — Salix’у. Но так уж их именами распорядился этот самый update-grub. Правда, вместо одного из Slint’ов незамедлительно была поставлена DragonFlyBSD (о чём — в другой раз, хотя и, надеюсь, скоро), но и три «слаки» — явный перебор. К тому же DragonFly после update-grub в меню автоматически не попала, что прибавило ещё один резон к кастомизации GRUB’а. Правда, не оченьт весомый: поставил загрузочным диск с BSD Loader’ом (подробности об оном — здесь) , из меню которого, через «пункт пятый», выходил на диск с GRUB’ом.

Однако, прежде чем погружаться в пучины документации и сетевых источников (а их по GRUB2 тоже немало, только всё больше какие-то мутные, в полном соответствие с предметом описания), я подумал: если приверженцы GRUB2 такие умные, что же они строем не ходят всяких графических «морд» настроечных не строят? Оказалось — строят, и не одну. В частности, первым делом я наткнулся на GRUB Customizer. А, заглянув в его честное лицо, дальнейшие поиски прекратил. Пока, по крайней мере.

Прежде чем начинать GRUB кастомизировать, его кастомизатор следует установить. Это оказалось проще простого: поскольку он сочинялся разработчиком, Даниэлем Рихтером (Daniel Richter), специально для Ubuntu6 его легко найти на Launchpad’е. Соответственно мне в своём Mint’е оставалось только добавить репозиторий

$ sudo add-apt-repository ppa:danielrichter2007/grub-customizer

обновить кеш

$ sudo apt update

и установить пакет:

$ sudo apt install grub-customizer

После этого Grub Customizer обнаруживается в секции Администрирование главного меню, а таже может быть запущен прямой командой

$ /usr/bin/grub-customizer

с запросом аутентификации. И будет выглядеть примерно так:

grub-custozier_01

Правда, не сразу, а после того, как он просканирует все носители на предмет нахождения ядер Linux’а. То есть, похоже, что он выполняет при своём запуске ту самую команду update-grub, о которой говорилось выше:

grub-customizer_01a

Я не случайно сказал — «нахождения ядер Linux’а». Как можно видеть на скриншоте (точнее, не видеть), ядра свежеустановленной DragonFly он не увидел. Загрузка BSD-систем, не смотря на весь прогресс GRUB’остроения и кастомизации, по прежнему возможна только «цепочечным методом».

Для начала меня интересовал вопрос переименования пунктов меню. Оно делается очень просто — выбором соответствующего пункта из контекстного меню по правому клику:

grub-custozier_02

А далее — просто перенабор имени пункта, как при переименовании файлов в файловых менеджерах типа Nemo:

grub-custozier_03

Назначение остальных пунктов контекстного меню очевидно (из них обращаю внимание на возможность произвольной перетасовки его пунктов). Кроме, разве что, пункта About the entry types. Он вызывает своего рода «терминологическую шпаргалку», с которой следует ознакомиться, прежде чем приступать к действиям более серьёзным, нежели переименование пунктов:

grub-custozier_04

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

grub-custozier_05

Через этот самый пункт Правка -> Создать я и попытался сразу же добавить в меню DragonFly. Он вызывает вот такую панельку:

grub-custozier_06

Если сразу нажать OK — будет создан новый пустой пункт, который затем следует редактировать руками. А когда я из выпдающего меню пробовал выбрать пункт Cainloader

grub-custozier_07

то программа либо слетала, либо зависала, либо выдавала вот такое предупреждение о риске потери данных. А на такой риск, когда дело касается загрузчика, мне идти не хотелось. Тем более что загружать DragonFly именно через GRUB для меня было не критично.

Кстати, вкладка Источник для вновь создаваемого пункта пуста. А для пункта существующего (панелька эта вызывается и через Изменить любого меню) в ней содержиться текст соответствующей секции конфига GRUB’а (напоминаю, что для «второгруба» это /etc/default/grub, а вовсе не /boot/grub/grub.cfg, как могли бы подумать мальчики и девочки, испорченные «первогрубовским» рукоблудием). Разумеется, текст этот можно править руками (если, конечно, знать, как править — но это отдельная песня):

grub-custozier_08

Решив первую задачу и потерпев неудачу со второй, я, прежде чем перейти к настройкам внешнего вида (на одноимённой вкладке), поглядел на вкладку Основные настройки:

grub-custozier_09

Здесь всё понятно без комментариев. Я увеличил вдвое время ожидания загрузки системы (по умолчанию — 10 секунд) и утрал параметры quiet и splash. Потому что если уж наблюдаю процесс загрузки (что бывает крайне редко), то делаю это ради сообщений, а не лицезрения спле-картинки для.

Наконец, наступил момент настройки внешности. Соответствующая вкладка выглядела так:

grub-custozier_10

Я добавил тут фоновую картинку, изменил цвет выделенного пункта меню, а также кегль и шрифтоначертание для элементов последнего, в ходе чего получил такое вот предупреждение:

grub-custozier_11

После чего вернул шрифт обратно. В результате меню GRUB’а при загрузке длолжно было бы выглядеть так:

grub-custozier_12

Затем поглядел на Дополнительные настройки:

grub-custozier_13

И решил в них пока не копаться. А нажал кнопку Сохранить — при этом, видимо, повторяется команда update-grub, так как сохранение происходит довольно долго. После чего решил проверить результат в боевых условиях — то есть пошёл на перезагрузку.

Первая перезагрузка прошла удачно — всё выглядело так, как было задумано. И я, вместо того, чтобы успокоиться на достигнутом, начал дальнейшее совершенствование внешности. Это было ошибкой: внешнось повела себя абсолютно непредсказуемо: то слетала фоновая картинка, то сам собой регенерировал сплэш, то из меню пропадала кириллица, сменясь кракозябрами… В общем, в конце концов мне удалось вернуть всё почти к первонастроенному виду (откатов и даже восстановления умолчальных настроек не предусмотрено), хотя как я это сделал — объяснить не смогу.

В общем, в итоге ответ на вопрос, можно ли пользоваться GRUB Customizer’ом, таков: можно, но осторожно. То есть он вполне годится для перетасовки пунктов меню и их переименования, отключения сплэша, изменения таймаута, причём это действительно достигается малой кровью. И чего по делу часто бывает достаточно. А что касается украшательства — тут уж каждый действует под свою ответственность, я лично от этих действий воздержусь, и другим того же советую. А вот к вопросу загрузки BSD-систем ещё вернусь.

GRUB Customizer: настройка «второгруба» малой кровью: 7 комментариев

  1. Кроме вышеперечисленного у меня кустомизер во второй и последующие разы запускается когда минут пять, а когда и все двадцать. Подобное поведение на нескольких версиях Mint-а.

  2. А я на новом ноуте вообще отказался от загрузчика и гружу ядро прямо из UEFI — минус одна прослойка и пару секунд экономии на загрузке. Правда у меня там только Arch — операционки «на поиграться» ставлю в VirtualBox.

  3. 2 ava1ar для ноута вполне решение — там больше одной ОСи обычно не нужно
    кстати, а не хотите описать, как?
    если своего сайта нет — можно разместить на http://posix.ru/ или ещё где

  4. 2 alv
    Можно и описать. В принципе все есть например на вики Arch Linux-а, но на русском языке информации немного.

  5. Как известно, в «Принципе» всё есть.
    А вот чтобы нормально по русски было описано…

  6. Самая большая пакость с этими гуишными обертками — неумение нормально обрабатывать исключения. Если сохранение новых настроек grub’a затягивается (имхо, 30-40 секунд — максимум), то понятно, что прет ошибка. То ли картинка не соответствует разрешенным свойствам, то ли конвертация шрифта не удалась, то ли еще что. update-grub скорей всего уже намекнул бы, откуда растут ноги, а гуишная морда молчит. Так что если скриптописателям иногда хочется дать по рукам, то гуи-лепилам — уже врезать по интерфейсу, извиняюсь за ГРУБость.
    Мой опыт кастомизации (http://mintmem.com/page/grub_custom) оказался каким-то полу-удачным, на LM 16 Cinnamon всё было хорошо, а вот на LM 17, да еще с новым ядром, дал удивительный результат (http://mintmem.com/page/lm17_vs_kernel_3-15), который я до сих пор не прожевал. Теперь у меня появилась дополнительная мотивация вернуться к grub’у :)

  7. Доброго времени суток,

    Алексей, Благодарю за полезную информацию сделал кастомизацию grub 2.00 лучше и быстрее стал
    загружаться компьютр,изчезли черные экраны которые преобладали ранее.

Добавить комментарий