erge
@erge
Примус починяю

Как вставить фоновую картинку в GRUB 2 ??

Вопрос конечно не критичный, но все же, интересно...

предыстория
spoiler
перенес на новые диски с 4кб кластерами (поддерживающими логические 512б кластеры) архаичную систему Red Hat 4 ES
Размечал из под RHES, если иначе (например fdisk с SystemRescueCD или Paragon Partition как-то там из под Win7), то даже BIOS отказывался их определять и тупо висло не стартовала, пустые или размеченные из под RHES видит норм.
родной Grub 0.95 ставится, но не грузится корректно, почему-то не находит разделы, считает что раздел FAT ?? и т.п., выдает ошибку, если нажать клавишу, то выводит меню, но в таком виде, буд-то видяха крякнула (артефакты), какие-то проблемы с памятью или со считываеним с диска наверно, хотя не понимаю как связано с выводом меню, если он файл меню прочитал таки.
в-общем поставил Grub 2 c SystemRescueCD, он грузится нормально, но ввиду того что на SystemRescueCD не запускаются grub-mkconfig, выдает ошибку failed to get canonical path of `none' я так ничего и не понял что с ней нужно сделать... а update-grub в принципе почему-то отсустствует. в-общем не нашел методов как автоматом сгенерить меню...
попробовал в консоли Grub выполнить
set root=(hd0,1)
linux	/vmlinuz-2.6.9-5.EL ro root=/dev/sda6 quiet
initrd	/initrd-2.6.9-5.EL.img
boot

система загрузилась! ура!
далее...


накидал grub.сfg "вручную"
spoiler
по образу и подобию grub.cfg от Mint, на котором работаю, выкинув лишнее ))


set default="0"
set timeout=10
set timeout_style=menu
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray

menuentry 'Red Hat Enterprise Linux ES (2.6.9-5.ELsmp)' --class gnu-linux --class gnu --class os {
    insmod ext2
    set root='hd0,msdos1'
    linux	/vmlinuz-2.6.9-5.ELsmp ro root=/dev/sda6 quiet
    initrd	/initrd-2.6.9-5.ELsmp.img
}

menuentry 'Red Hat Enterprise Linux ES-up (2.6.9-5.EL)' --class gnu-linux --class gnu --class os {
    insmod ext2
    set root='hd0,msdos1'
    linux	/vmlinuz-2.6.9-5.EL ro root=/dev/sda6 quiet
    initrd	/initrd-2.6.9-5.EL.img
}


система грузится нормально, все работает!
но вопрос, как вставить фоновую картинку?
в интернетах пишут, типа
GRUB_BACKGROUND="/grub/splash.png"

вставляю в cfg вверху
set root='hd0,msdos1'
GRUB_BACKGROUND="/grub/splash.png"


ничего не происходит... что я делаю не так?
либо посоветуйте какую-то вменяемую доку по Grub, что-то не удалось найти, что видел какое-то мудреное и все завязано на grub-update и пр. чего нет на SystemRescueCD
spoiler
(ну по крайней мере той версии что у меня на флехе)
  • Вопрос задан
  • 847 просмотров
Решения вопроса 2
SagePtr
@SagePtr
Еда - это святое
Вот так можно попробовать:
set root='hd0,msdos1'
insmod png
background_image /grub/splash.png
Ответ написан
erge
@erge Автор вопроса
Примус починяю
фоновая картинка подключается так:
insmod png
background_image /grub/splash.png


предварительно необходимо найти раздел с grub, указать его в root
так же включить графический режим

в итого получается так
### поиск раздела с grub
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  UUID=b5b64681-55f6-4345-8a96-c5704d4549fd
else
  search --no-floppy --fs-uuid --set=root b5b64681-55f6-4345-8a96-c5704d4549fd
fi

### включение графического режима и загрузка фоновой картинки
if loadfont /grub/fonts/unicode.pf2 ; then
   set gfxmode="640x480"
   insmod gfxterm
   insmod vbe
   terminal_output gfxterm
   if terminal_output gfxterm; then true ; else
      terminal gfxterm
   fi
   # фоновая картинка
   insmod png
   background_image -m stretch /grub/splash.png
fi
###


ps: включение графического режима почему то делается через проверку загрузки шрифта

в итого такой
grub.cfg
set default="0"
set timeout=10
set timeout_style=menu
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray

### поиск раздела с grub
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  UUID=b5b64681-55f6-4345-8a96-c5704d4549fd
else
  search --no-floppy --fs-uuid --set=root b5b64681-55f6-4345-8a96-c5704d4549fd
fi

### включение графического режима и загрузка фоновой картинки
if loadfont /grub/fonts/unicode.pf2 ; then
   set gfxmode="640x480"
   insmod gfxterm
   insmod vbe
   terminal_output gfxterm
   if terminal_output gfxterm; then true ; else
      terminal gfxterm
   fi
   # фоновая картинка
   insmod png
   background_image -m stretch /grub/splash.png
fi
###

menuentry 'Red Hat Enterprise Linux ES (2.6.9-5.ELsmp)' --class gnu-linux --class gnu --class os {
    insmod ext2
    set root='hd0,msdos1'
    linux	/vmlinuz-2.6.9-5.ELsmp ro root=/dev/sda6 quiet
    initrd	/initrd-2.6.9-5.ELsmp.img
}

menuentry 'Red Hat Enterprise Linux ES-up (2.6.9-5.EL)' --class gnu-linux --class gnu --class os {
    insmod ext2
    set root='hd0,msdos1'
    linux	/vmlinuz-2.6.9-5.EL ro root=/dev/sda6 quiet
    initrd	/initrd-2.6.9-5.EL.img
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@maniac_by
Ну и проблемы у людей :D
GRUB supports only 256 color JPG/JPEG image formats only. PNG там тоже с ограничениями, но уже не помню точно какое. И да, update-grub - обязателен
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы