Вопрос или проблема
Я использую Ubuntu 24.04.1 LTS, версия: 24.04.
Я разместил вопрос здесь:
Grub показывает полосы прокрутки при наличии всего 3-х пунктов
… и рекомендацией для устранения этой проблемы было установить тему, поэтому я пытаюсь установить одну, но она просто не работает, должна выглядеть как-то так, судя по всему:
Это экран, который я фактически получаю (без изменений):
ЧТО Я СДЕЛАЛ:
На https://github.com/AdisonCavani/distro-grub-themes/releases/tag/v3.2
я скачал, создал директорию для тем и извлек ubuntu.tar в нее:
user@PCLinux:/boot/grub/theme/Ubuntu$ ls -l
total 280
-rw-r--r-- 1 user user 34505 Jun 15 2023 background.png
drwxr-xr-x 2 user user 4096 Jun 15 2023 icons
-rw-r--r-- 1 user user 161 Jun 15 2023 select_c.png
-rw-r--r-- 1 user user 219 Jun 15 2023 select_e.png
-rw-r--r-- 1 user user 211 Jun 15 2023 select_w.png
-rw-r--r-- 1 user user 976 Jun 15 2023 terminal_box_c.png
-rw-r--r-- 1 user user 952 Jun 15 2023 terminal_box_e.png
-rw-r--r-- 1 user user 1115 Jun 15 2023 terminal_box_ne.png
-rw-r--r-- 1 user user 963 Jun 15 2023 terminal_box_n.png
-rw-r--r-- 1 user user 1094 Jun 15 2023 terminal_box_nw.png
-rw-r--r-- 1 user user 1102 Jun 15 2023 terminal_box_se.png
-rw-r--r-- 1 user user 963 Jun 15 2023 terminal_box_s.png
-rw-r--r-- 1 user user 1107 Jun 15 2023 terminal_box_sw.png
-rw-r--r-- 1 user user 952 Jun 15 2023 terminal_box_w.png
-rw-r--r-- 1 user user 21895 Jun 15 2023 terminus-12.pf2
-rw-r--r-- 1 user user 23941 Jun 15 2023 terminus-14.pf2
-rw-r--r-- 1 user user 24214 Jun 15 2023 terminus-16.pf2
-rw-r--r-- 1 user user 26835 Jun 15 2023 terminus-18.pf2
-rw-r--r-- 1 user user 852 Jun 15 2023 theme.txt
-rw-r--r-- 1 user user 39720 Jun 15 2023 ubuntu_regular_17.pf2
-rw-r--r-- 1 user user 46560 Jun 15 2023 ubuntu_regular_20.pf2
Это /etc/default/grub, и он был обновлен с помощью:
sudo update-grub
# Если изменить этот файл, выполните 'update-grub' для обновления
# /boot/grub/grub.cfg.
# Для полной документации по опциям в этом файле см.:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=countdown
GRUB_TIMEOUT="-1"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# Раскомментируйте для включения фильтрации BadRAM, измените под ваши нужды
# Это работает с Linux (без патча) и с любым ядром, которое получает
# информацию о карте памяти от GRUB (GNU Mach, ядро FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Раскомментируйте для отключения графического терминала (только grub-pc)
# GRUB_TERMINAL=console
# Разрешение используемое на графическом терминале
# обратите внимание, что вы можете использовать только режимы, которые поддерживает ваша видеокарта через VBE
# вы можете увидеть их в реальном GRUB с командой `vbeinfo'
GRUB_GFXMODE=1920x1080
# Раскомментируйте, если не хотите, чтобы GRUB передавал параметр "root=UUID=xxx" Linux
#GRUB_DISABLE_LINUX_UUID=true
# Раскомментируйте для отключения генерации пунктов меню режима восстановления
#GRUB_DISABLE_RECOVERY="true"
# Раскомментируйте для сигнала на старте grub
#GRUB_INIT_TUNE="480 440 1"
GRUB_THEME=/boot/grub/theme/Ubuntu/theme.txt
Какие-либо идеи, пожалуйста?
Спасибо…
ОБНОВЛЕНИЕ 2
Я переместил тему Ubuntu из /boot/grub/theme/ в каталог /boot/grub/themes/ (похоже, это каталог по умолчанию для тем).
Затем я отредактировал /etc/default/grub и изменил путь к каталогу тем:
GRUB_THEME=/boot/grub/themes/Ubuntu/theme.txt
Затем закомментировал следующее в /boot/grub/grub.cfg
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 0,0,0; then
clear
fi
color_normal=white/black
if [ -e ${prefix}/themes/ubuntustudio/theme.txt ]; then
insmod png
theme=${prefix}/themes/ubuntustudio/theme.txt
fi
### END /etc/grub.d/05_debian_theme ###
… и это работает при перезагрузке!
Однако (конечно) как только я запускаю:
sudo update-grub
Он сбрасывает grub.cfg обратно, как было. Так что, по крайней мере, я знаю проблему.
ОБНОВЛЕНИЕ 3
Хорошо, проблема решена, я перешел в /etc/grub.d. Удалил файл: 05_debian_theme и запустил: sudo update-grub Все исправлено! Большое спасибо
Ответ или решение
Вопрос о том, почему темы GRUB не работают на Ubuntu 24.04.1 LTS, является актуальным и может вызывать замешательство у пользователей, которые стремятся кастомизировать свой загрузчик. Важно разобраться в сути проблемы и последовательно применить решения, чтобы добиться желаемого результата. Давайте рассмотрим пошагово, что нужно учесть.
Анализ ситуации
Вы установили тему для GRUB, скачав её из репозитория GitHub. Распаковали архив, разместив его содержимое в директории /boot/grub/themes/Ubuntu
, и обновили файл конфигурации GRUB (/etc/default/grub
), указав путь до вашей темы. После выполнения команды sudo update-grub
результат не соответствовал ожиданиям.
При исследовании было выяснено, что система перезаписывает изменения в grub.cfg
, поскольку в директории /etc/grub.d
содержатся конфигурационные файлы, влияющие на формирование конечного файла grub.cfg
при каждом обновлении конфига.
Решение проблемы
-
Корректировка путей: Как вы уже обнаружили, необходимо воспользоваться правильным путём к теме, что было исправлено на
/boot/grub/themes/Ubuntu/theme.txt
. -
Модификация поведения на этапе обновления GRUB: Основная проблема заключалась в том, что обновление GRUB всегда возвращает
grub.cfg
к исходному состоянию, используя неуместный файл конфигурации05_debian_theme
. Удалив этот файл, вы избежали конфликтов при применении настроек.
Рекомендации по внедрению
- Резервное копирование: Всегда сохраняйте копии конфигурационных файлов перед внесением значительных изменений.
- Проверка изменений: Выполняйте проверку изменений и тестирование в безопасном окружении, чтобы минимизировать риск нецелевого поведения системы.
- Документация изменений: Ведите журнал изменений, чтобы вы или другие пользователи могли легко отследить, какие исправления были внесены и как они повлияли на систему.
Решение подобных проблем может быть сложной задачей, но последовательный и методичный подход, как показано в вашем случае, приводит к успешному результату. Надеюсь, это разъяснение поможет не только вам, но и другим пользователям, столкнувшимся с аналогичной ситуацией.