Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] eigene grub.cfg will nicht wie ich will  (Read 8429 times)

Offline hsp

  • User
  • Posts: 632
[DE] eigene grub.cfg will nicht wie ich will
« on: 2021/11/04, 10:34:23 »
Kann mir jemand erklären warum das hier nicht funktioniert in der grub.cfg? Oder kann mir sagen wie es richtig wäre. Also der Rechner soll booten abhängig davon ob diese UUID vorhanden ist oder nicht.

Code: [Select]

loadfont /EFI/boot/fonts/unicode.pf2
set gfxmode=auto
set gfxpayload=keep
terminal_output gfxterm
background_image /EFI/wallpaper/grub-background.png

set timeout=3

if [ search --no-floppy --fs-uuid a4f2c9cd-b66b-4b2d-b658-e056ab4cf46d ]; then
    menuentry 'Linux' {
        search  --no-floppy --fs-uuid --set=root a4f2c9cd-b66b-4b2d-b658-e056ab4cf46d
        echo    'loading Linux...'
        linux   /vmlinuz root=UUID=a4f2c9cd-b66b-4b2d-b658-e056ab4cf46d ro quiet
        echo    'loading initrd.img...'
        initrd  /initrd.img
    }
else
    menuentry "Windows" {
        insmod part_gpt
        insmod part_msdos
        insmod fat
        insmod search_fs_uuid
        set uuid=4028-049D
        search --no-floppy --set=root --fs-uuid $uuid
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }
fi

Offline der_bud

  • User
  • Posts: 1.088
  • member
Re: eigene grub.cfg will nicht wie ich will
« Reply #1 on: 2021/11/04, 20:07:00 »
Ich versteh nicht viel davon, aber kann es sein dass 'search' gar kein true/false Ergebnis liefert auf das then und else anspringen könnten?
Vielleicht kann man das umgehen und umformulieren, indem direkter auf das Vorhandensein des Devices geprüft wird...
Bei mir werden aus 41_custom in grub.cfg zB die Zeilen generiert
Code: [Select]
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi

daraus würde ich schliessen Du könntest ein Konstrukt bauen wie
Code: [Select]
if [ -f  /dev/disk/by-uuid/a4f2c9cd-b66b-4b2d-b658-e056ab4cf46d ]; then boote dies, sonst das
Du lachst? Wieso lachst du? Das ist doch oft so, Leute lachen erst und dann sind sie tot.

Offline hsp

  • User
  • Posts: 632
Re: eigene grub.cfg will nicht wie ich will
« Reply #2 on: 2021/11/04, 20:33:54 »
Danke, aber ich habe das mittlerweile selber gelöst. In dem ganzen da steckt ein Denkfehler. Ich bin immer davon ausgegangen das in der VAR 'root' die uuid steht wenn gefunden. Das ist aber nicht so, das Device wo die uuid gefunden steckt dann in der VAR, z.b. hd1,gpt2 oder hd0,msdos2. So in der Art. Wenn man das weiß klappt das auch wenn man das etwas 'umbastelt.

...