Image de fond manual grub.cfg

J'essaye d'installer manuellement une image d'arrière-plan pour grub sur un lecteur flash bootable. Puisque le lecteur ne démarre que l'OS et que je n'ai pas d'OS installé, je ne peux pas tirer parti des scripts tels que update-grub pour moi et les posts concernant l'édition de / etc / default / grub ne s'appliquent pas à ma situation. J'ai vu comment mettre une image de fond sur GRUB? mais cela ne s'applique pas pour les raisons que j'ai mentionnées. J'ai réussi à get toutes mes ISO pour démarrer correctement, mais je suis coincé sur l'application de l'image d'arrière-plan. Voici la section pertinente de mon grub.cfg le rest est toutes les inputs de menu qui fonctionnent correctement (retombant en mode text).

 set timeout=10 set default=0 set root=(hd0,msdos1) ### BEGIN background setup ### function load_video { if [ x$feature_all_video_module = xy ]; then insmod all_video else insmod efi_gop insmod efi_uga insmod ieee1275_fb insmod vbe insmod vga insmod video_bochs insmod video_cirrus fi } load_video insmod gfxterm insmod part_msdos insmod png GRUB_TERMINAL=gfxterm GRUB_GFXMODE=auto GRUB_BACKGROUND="splash.png" ### END background setup ### 

L'image d'arrière-plan est un file PNG 640×480 (que j'ai mis à l'échelle avec gimp) Utilisation de GRUB 2.02 Beta2

D'autres searchs indiquent que cette partie:

 GRUB_TERMINAL=gfxterm GRUB_GFXMODE=auto GRUB_BACKGROUND="splash.png" 

utilise des variables qui sont utilisées par les scripts de mise à jour et qui appartiennent à / etc / default / grub et qui n'apparaissent pas de cette façon dans grub.cfg, donc je suis certain que ces lignes sont au less fausses.

EDIT: J'ai fait quelques ajustements mais toujours pas de joie. Voici une pastebin de la section pertinente (j'ai exclu les inputs de menu non pertinentes car elles fonctionnent bien en mode text et ne sont pas le problème)

Vous devez append la ligne suivante à votre file grub.cfg avant les menus. Comme il est fait sur mesure et que vous n'utiliserez pas update-grub vous ne devriez pas avoir de problème:

  background_image /boot/Your_image.png 

Maintenant, si vous voulez avoir un fond différent pour vos dissortingbutions, il vous suffit d'append la ligne dans le menu. Par exemple, c'est la partie où mes menus démarrent, comme vous pouvez le voir, j'ai un arrière-plan par défaut avant les menus, de sorte que quand grub démarre, il y a un arrière-plan, après quoi chaque menu / sous-menu a son propre backgroun:

 background_image /boot/SolusOS-splash.png set color_normal=white/black set color_highlight=black/white submenu "Debian 8.1 -->"{ submenu "Debian 8.1 i386 -->"{ background_image /boot/DebianLava-splash.png set iso=/boot/ISOs/debian-live-8.1.0-i386-gnome-desktop.iso .... 

EDIT: Voici mes inputs de path de search (l'UUID est l'identifiant de mon usb). Je ne sais pas si cela pourrait être votre problème:

 set boot_uuid=D042-8A53 set root_uuid=D042-8A53 search --fs-uuid $root_uuid --set=root search --fs-uuid $boot_uuid --set=grub_boot if [ $boot_uuid == $root_uuid ] then set grub_boot=($grub_boot)/boot else set grub_boot=($grub_boot) fi 

Comme mes compétences de encoding n'étaient clairement pas à la hauteur de cette tâche, j'ai développé une méthode pour résoudre ce problème en installant provisoirement un système Lubuntu en direct sur le lecteur flash et en utilisant Daniel Richter le plus excellent customisateur de grub pour me donner un sharepoint départ. J'ai systématiquement passé en revue le code en commentant les lignes et les sections que je pensais être inutiles à mes fins, en testant les changements au fur et à mesure. Un exemple avec des commentaires (sans les inputs de menu) peut être trouvé ici pour ceux qui pourraient être intéressés par le process. Vous findez ci-dessous la section de code testée (utilisée pour le démarrage hérité ) après la modification, après avoir supprimé la majorité des commentaires et des sections inutiles. Il semble que la majorité de mes problèmes étaient liés à une manipulation incorrecte de linux_gfx_mode , terminal_output et background_image (et définition de la racine). Comme je l'ai supposé dans mon édition, les variables sont exprimées différemment dans le file grub.cfg qu'elles ne le sont dans les scripts grub. Je ne doute pas que cela pourrait être amélioré et comme je découvre des simplifications, je vais les éditer.

  set have_grubenv=true load_env set timeout=10 #added set default=2 #added menuentry_id_option="" export menuentry_id_option function load_video { if [ x$feature_all_video_module = xy ]; then insmod all_video else insmod efi_gop insmod efi_uga insmod ieee1275_fb insmod vbe insmod vga insmod video_bochs insmod video_cirrus fi } #if [ x$feature_default_font_path = xy ] ; then #font=unicode #else ##Scrapped if-then-else above required? - NO? insmod part_msdos insmod ext2 search --no-floppy --set=root --label freedom font=/boot/grub/fonts/unicode.pf2 fi if loadfont $font ; then set gfxmode=auto load_video insmod gfxterm set locale_dir=/boot/grub/locale set lang=en_US insmod gettext fi terminal_output gfxterm insmod part_msdos insmod ext2 search --set=root --label freedom ### Begin Background setup ### insmod png set menu_color_normal=yellow/black set menu_color_highlight=black/light-gray if background_image /boot/grub/splash.png; then true else set menu_color_normal=green/black set menu_color_highlight=black/light-gray fi ### END Background setup ### ### BEGIN setup graphics ### function gfxmode { set gfxpayload="${1}" if [ "${1}" = "keep" ]; then set vt_handoff=vt.handoff=7 else set vt_handoff= fi } if [ "${recordfail}" != 1 ]; then if [ -e ${prefix}/gfxblacklist.txt ]; then if hwmatch ${prefix}/gfxblacklist.txt 3; then if [ ${match} = 0 ]; then set linux_gfx_mode=keep else set linux_gfx_mode=text fi else set linux_gfx_mode=text fi else set linux_gfx_mode=keep fi else set linux_gfx_mode=text fi export linux_gfx_mode ### End setup graphics ### 

Sources:

https://answers.launchpad.net/~danielrichter2007

https://ubuntuforums.org/showthread.php?t=1195275

https://www.gnu.org/software/grub/manual/grub.html