[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 не принимает моих настроек фона и цветов меню?
вы уверены что фоновая картинка должна находиться в /usr?
попробуйте создать еще одну папку в /boot например /boot/images
и туда кидайте..
смысл в том, что груб на этом этапе не видит разделов..
Там вроде как груб ограничения ставит на расширения файлов-картинок, и на их цветовую гамму.. Конвертировать надо. Кадрировать. Еще нужно упаковать..
Тоже делали?
У меня на дебиане получалось
После продолжительных экспериментов удалось установить способы, с помощью которых можно изменить фон в 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 не работают?
[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]
В моем случае определение рутового для загрузчика раздела выглядит вот так. Это лучше в самом начале конфига вписать.