LinuxForum.Fans
Тема

GRUB 2: Обои и цвета меню

Автор: SamuelLinux 8 сообщений 3897 просмотров
#143277

Здравствуйте.

Настраиваю фоновое изображение и цвета меню GRUB'а, изменяя конфигурационный файл /etc/default/grub, следующим образом:

text

GRUB_GFXMODE=1280x1024x32
WALLPAPER="/usr/share/images/desktop-base/custom_image.png"
COLOR_NORMAL="black/white"
COLOR_HIGHLIGHT="white/black"

Обновляю настройки GRUB'а:

[console]
# update-grub
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/defalut_image.png
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
done
[/console]

После перезагрузки в GRUB'е изменяется только разрешение, фон и цвета меню остаются прежними.

Почему GRUB не принимает моих настроек фона и цветов меню?

Спасибо.

Debian GNU/Linux 6.0.1;
GRUB 1.98.

#143279

вы уверены что фоновая картинка должна находиться в /usr?
попробуйте создать еще одну папку в /boot например /boot/images
и туда кидайте..
смысл в том, что груб на этом этапе не видит разделов..

#143291
SamuelLinux написал:
Почему GRUB не принимает моих настроек фона и цветов меню?

сиё науке неизвестно. у меня тоже не принимал. удалил grub2, установил grub_legacy

сантехник написал:
вы уверены что фоновая картинка должна находиться в /usr?

абсолютно уверен. там и должна находиться

сантехник написал:
попробуйте создать еще одну папку в /boot например /boot/images

создавали, не помогло...

#143308

Там вроде как груб ограничения ставит на расширения файлов-картинок, и на их цветовую гамму.. Конвертировать надо. Кадрировать. Еще нужно упаковать..
Тоже делали?
У меня на дебиане получалось

#143317

После продолжительных экспериментов удалось установить способы, с помощью которых можно изменить фон в GRUB'е:

I. Просто переместить файл с изображением в директорию /boot/grub.

II. В файле /etc/default/grub определить константу GRUB_BACKGROUND и передать ей путь к файлу с картинкой.

III. В директории /usr/share/images/desktop-base переопределить символьную ссылку desktop-grub.png, которая изначально указывает на файл с фоном по умолчанию, и указать ей файл с желаемым изображением.

IV. Вписать в файл /etc/grub.d/05_debian_theme определение константы WALLPAPER.

Например:

text

# Set the background
WALLPAPER="/usr/share/images/desktop-base/custom_image.png"

Константу следует вписывать в конец файла непосредственно перед вызовом функций set_background_image, чтобы обойти начальную проверку, осуществляемую программой в блоках if.

В файл можно добавить также константы COLOR_NORMAL и COLOR_HIGHLIGHT. Они определяют цвета меню GRUB'а. COLOR_NORMAL определяет цвет невыделенного пункта, а COLOR_HIGHLIGHT — вделенного. В качестве значений они принимают строку с именами цветов для знака и фона, которые разделяются слешем.

Вот пример:

text

# Set the colors
COLOR_NORMAL="white/black"
COLOR_HIGHLIGHT="white/dark-gray"

Вот перечень поддерживаемых цветов:

black (прозрачный, если задан для фона);
white;
dark-gray;
light-gray;
brown;
yellow;
red;
light-red;
blue;
light-blue;
green;
light-green;
cyan;
light-cyan;
magenta;
light-magenta.

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

Во всех случаях необходимо использовать изображения *.jpg, *.png или *.tga, имеющие разрешения, поддерживаемые GRUB'ом. Список этоих разрешений можно получить в консоли GRUB'а, набрав команду vbeinfo. Вход в консоль осуществляется по нажатию клавиши c в меню загрузчика.

Кроме того, можно проверить, будет ли корректно отображаться фоновая картинка, набрав в консоли GRUB'а команду background_image <путь_к_изображению>. Если фон изменится на желаемый, значит изображение подходит.

Следует также не забывать обновлять настройки GRUB'а командой update-grub.

Несмотря на то, что мне всё-таки удалось изменить фоновое изображение и цвета меню, вопрос остается в силе: не ясно, почему константы WALLPAPER, COLOR_NORMAL и COLOR_HIGHLIGHT, установленные в файле /etc/default/grub не работают?

#377787

Вот так ставится картинка в фон =).

[console]insmod vbe #переводим видеокарту в нужный режим
loadfont /grub/fonts/unicode.pf2 # если не поставить шрифт, то не сработает
set gfxmode=auto #еще один режим выставляем (можно вручную, а можно оставить авто). это глубина цвета и разрешение экрана
insmod gfxterm # подключаем модуль изменения параметров видео
terminal_output gfxterm # загружаем еще один модуль. без него не будет работать.
insmod png # если изображение png то грузим этот модуль, если jpg то модуль jpeg
background_image /bg.png # ну и собственно сам фон.[/console]

Это все хорошо, но как же Grub найдет картинку? Откуда он знает на каком разделе искать?

[console]insmod part_msdos
insmod lvm
insmod ext2
search --no-floppy --fs-uuid --set 0c5db988-f250-436e-853b-0e77f6607826
[/console]
В моем случае определение рутового для загрузчика раздела выглядит вот так. Это лучше в самом начале конфига вписать.

#377791
"сантехник" написал:
Там вроде как груб ограничения ставит на расширения файлов-картинок, и на их цветовую гамму.

Первый - возможно, а второй практически всеядный. У меня принимал и JPG, и PNG, причём с нормальным для моего мониора разрешением 1920*1080.

Войдите или зарегистрируйтесь, чтобы ответить.