Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 30

Установка Grub Customizer в Linux Mint

Привет, Хабр! Сегодня мы рассмотрим ситуацию, когда при двойной установке Linux & Windows загрузчик GRUB не стартует, давая возможность выбрать ОС, а автоматически загружается Windows. Немного теории: Значит с теорией мы немного разобрались (думаю этого будет достаточно), теперь же рассмотрим, какие бывают подводные камни, при установке Dual Boot Windows и Linux на одном компьютере. 1d7e1735dabf9ff6dea1fbde62790e83.png Эксперимент производился на рабочей станции со следующими характеристиками:Base Board Information

  • Manufacturer: Acer
  • Product Name: Aspire XC600

Memory Device

  • Size: 4096 MB
  • Type: DDR3
  • Speed: 1333 MHz
  • Manufacturer: Kingston
  • Rank: 2

HDD

  • product: ST500DM002-1BD14
  • vendor: Seagate
  • physical id: 0.0.0
  • bus info: scsi@0:0.0.0
  • logical name: /dev/sda
  • size: 465GiB (500GB)
  • capabilities: gpt-1.00 partitioned partitioned:gpt

Доказано, что проблем с установкой Debian 8.6 Jessie совместно с Windows 10 не обнаружено. Debian корректно прописывается в автозагрузке, GRUB запускается без ошибок и две ОС также работают нормально. Но, как показала практика, не со всеми дистрибутивами такое происходит. При установке Ubuntu 16.04.1 вместо Debian на ту же рабочую станцию вылез первый подводный камень — GRUB не стартовал, и Windows 10 автоматом шла на загрузку. Решение проблемы было найдено спустя недели три-четыре (тогда уже надоело считать, сколько времени убито на решение проблемы). Оно оказалось неожиданным, но в тоже время вся система заработала. Значит, если вы столкнулись с такой же проблемой, приведенная ниже инструкция может вам пригодится и сэкономить кучу времени.Важно! До начала выполнения инструкции нужно подготовить LiveCD с дистрибутивом Linux Mint — все операции мы будем выполнять на нем (я выбрал этот дистрибутив из-за того, что на него спокойно можно установить Midnight Commander, что сложно сделать на LiveCD с Ubuntu, так мы получаем больше пространства для маневров). Также стоит заметить, что команда из под консоли update-grub вам не поможет, так как она рассчитана на случай, когда GRUB запускается, но не видит другие ОС кроме Линукса. Также рекомендую создавать резервные копии файлов/каталогов, над которыми вы осуществляете хоть малейшие изменения.

  1. Через терминал, с правами root смонтировать раздел с EFI в папку /mnt. В моем случае, это была команда mount /dev/sda2 /mnt.
  2. Введите команду sudo -s и подтвердите пароль (он пустой по умолчанию) для последующих операций (многие советуют не делать этого, а вводить sudo и команду для выполнения — я поддерживаю это мнение, но инструкция рассчитана на опытных пользователей системы Linux, которые понимаю, что делают все на свой страх и риск).
  3. Запустить Midnight Commander командой mc.
  4. Находим файл /boot/grub/grub.cfg в файловой системе установленного Линукса. Открываем его для редактирования. Внутри него находим слово «Microsoft» в контексте строки, начинающейся с «chainloader» и заменяем это слово (должно быть только одно вхождение и именно в строке с «chainloader», так что не ошибетесь) на название каталога, в который мы переименовали Microsoft (т.е. на Microsoft2 в нашем примере). Сохраняем изменения в файле.

Также, в этом файле вы можете поменять названия в списке, который выводит GRUB. Например, вместо openSUSE Leap 42.2 27.01 в части кода:

menuentry 'openSUSE Leap 42.2 27.01'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' { load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt6' if [ x$feature_platform_search_hint = xy ]; then   search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6  996b3ed5-150f-4de3-a40c-6d385e27d6de else   search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de fi echo'Загружается Linux 4.4.36-8-default …' linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro  resume=/dev/sda7 splash=silent quiet showopts echo'Загружается начальный виртуальный диск …' initrdefi /boot/initrd-4.4.36-8-default }

Написать openSUSE The best choice!:):

menuentry 'openSUSE The best choice!:)'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' { load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt6' if [ x$feature_platform_search_hint = xy ]; then   search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6  996b3ed5-150f-4de3-a40c-6d385e27d6de else   search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de fi echo'Загружается Linux 4.4.36-8-default …' linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro  resume=/dev/sda7 splash=silent quiet showopts echo'Загружается начальный виртуальный диск …' initrdefi /boot/initrd-4.4.36-8-default }

Хоть мелочь, а приятно! Остальное в коде советую не трогать. Если трудно разобраться с управлением Midnight Commander (в этом нет ничего страшного, у меня тоже в первый раз были проблемы с этой программой), все операции можно выполнить в файловом менеджере Nautilus (или в другом, не суть важно), но изначально запустив его под правами пользователя root. После этого идем на перезагрузку и радуемся результату. Но, как оказывается, такая проблема есть и у дистрибутива OpenSUSE Leap 42.2. Как показала практика, если на компьютере установлен дистрибутив OpenSUSE с Windows 10, то приведенная выше инструкция не поможет. Точнее, она поможет, но только ее нужно дополнить. После выполнения основной части выполняем следующие шаги:

  1. После выполнения всех операций заходим в папку /EFI/opensuse/x86_64-efi/ (название итоговой папки x86_64-efi может быть другим в зависимости от архитектуры ПК)
  2. Копируем файл grub.efi (если у вас включена опция Secure Boot, там будет еще файл shim.efi, тогда советую скопировать их вместе)
  3. Заходим в папку /EFI/Boot и удаляем все файлы, которые там есть (при обновлении загрузчика они снова появятся, но в этом нет ничего страшного)

P.S. Если же у вас все хорошо, GRUB с OpenSUSE запускается, но не видит Windows, радуйтесь — проблема решается всего одной командной: grub2-mkconfig -o /boot/grub2/grub.cfg, а если у вас стоит Ubuntu, нужно выполнить просто update-grub. Для тех же, кого заинтересовала данная тема, рекомендую прочитать статью: «Начальный загрузчик GRUB 2 — полное руководство».

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

Тем не менее, 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-300x250.png

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

grub-customizer_01a-300x200.png

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

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

grub-custozier_02.png

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

grub-custozier_03-300x250.png

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

grub-custozier_04-300x268.png

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

grub-custozier_05.png

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

grub-custozier_06-300x209.png

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

grub-custozier_07-300x258.png

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

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

grub-custozier_08-300x240.png

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

grub-custozier_09-300x256.png

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

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

grub-custozier_10-300x250.png

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

grub-custozier_11-300x268.png

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

grub-custozier_12-300x200.png

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

grub-custozier_13-300x198.png

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

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

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

После включения питания первым начинает работу загрузчик — специальная программа, определяющая наличие операционных систем на диске и управляющая их запуском. Большинство дистрибутивов Linux, в том числе и Mint, укомплектованы загрузчиком Grub.

Установка Grub Customizer в Linux Mint

Установить Grub Customizer стандартными средствами — с помощью менеджера приложений mintinstall — не получится, поскольку эта программа отсутствует в официальных репозиториях. Придётся использовать личный репозиторий разработчика, но для этого надо добавить его в список источников, к которым операционной системе разрешён доступ. Сделать это можно двумя способами. Через терминал или графический интерфейс.

Добавление PPA через эмулятор терминала

Для добавления репозитория выполните в терминале команду:

Ustanovka-Grub-Customizer-v-Linux-Mint-1-1024x576.png

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

Ustanovka-Grub-Customizer-v-Linux-Mint-2-1024x576.png

Добавление PPA с помощью графического интерфейса

Чтобы найти вкладку для настройки репозиториев, в Linux Mint пройдите по такому пути: Меню Система Источники приложений. В открывшемся окне выберите пункт PPA-репозитории и нажмите на кнопку Добавить.

Откроется ещё одно окно, на этот раз с полем для ввода имени или адреса репозитория. Напечатайте там ppa:danielrichter2007/grub-customizer и нажмите ОК.

Ustanovka-Grub-Customizer-v-Linux-Mint-3-1024x576.png

Если указанный репозиторий будет найден, система попросит подтвердить его добавление. В противном случае проверьте написание имени (адреса).

Ustanovka-Grub-Customizer-v-Linux-Mint-4-1024x576.png

Спустя минуту или две будут добавлены два новых источника приложений. Когда это произойдёт, система предложит обновить список пакетов в кэше APT.

Ustanovka-Grub-Customizer-v-Linux-Mint-5-1024x576.png

Нажмите ОК в верхнем правом углу, чтобы началось обновление. Если этого не сделать, система не будет использовать новый репозиторий, соответственно, не получится установить Grub Customizer.

Ustanovka-Grub-Customizer-v-Linux-Mint-6-1024x576.png

Установка и запуск программы

Когда репозиторий добавлен, может быть выполнена установке Grub Customizer Linux Mint 19 с помощью команды:

Ustanovka-Grub-Customizer-v-Linux-Mint-7-1024x576.png

Ещё через пару минут всё будет готово. Для запуска программы есть два способа: через терминал либо через Меню Система. Grub Customizer загружается не сразу, ему нужно время, чтобы считать информацию о системах, установленных на компьютере.

Ustanovka-Grub-Customizer-v-Linux-Mint-8-1024x576.png

Когда на экране появится что-то вроде того, что вы видите на скриншоте, можно приступать к изменению настроек. О том как выполняется настройка Grub Customizer читайте в отдельной статье.

Как удалить Grub Customizer

Если программа вам больше не нужен, вы можете удалить Grub Customizer через терминал с помощью команды:

Ustanovka-Grub-Customizer-v-Linux-Mint-9-1024x576.png

Чтобы не засорять систему, можно удалить и репозиторий. В терминале используйте для этого команды:

Также это можно сделать с помощью графического интерфейса ОС — в настройках источников приложений. Отметьте галочкой ненужный репозиторий и нажмите кнопку Удалить, после чего подтвердите своё действие. Не забудьте обновить список пакетов, нажав ОК в верхнем правом углу.

Ustanovka-Grub-Customizer-v-Linux-Mint-10-1024x576.png

Выводы

Grub Customizer — находка для тех, кто не умеет работать с файлами конфигурации. С его помощью можно за считанные минуты настроить внешний вид и параметры загрузчика. С установкой и удалением программы не должно возникнуть сложностей, если следовать инструкциям из этой статьи, но если вопросы все же появятся, не стесняйтесь задавать их в комментариях.

Используемые источники:

  • https://habr.com/post/321374/
  • https://www.alv.me/grub-customizer-nastrojka-vtorogruba-maloj-krov/
  • https://losst.ru/ustanovka-grub-customizer-v-linux-mint

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации