Discussion:
EFI grub
(zu alt für eine Antwort)
Ulli Horlacher
2024-10-17 10:03:41 UTC
Permalink
Ich hab leider meine EFI grub Installation kaputt gemacht und finde den
Fehler nicht.

Ich hab ein laufendes System (Mint 21.3 =~ Ubuntu 22) als Virtualbox VM,
das sowohl im BIOS als auch im UEFI Modus bootet.

Sieht so aus:

***@mux22:~# parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 256MB 255MB fat32 boot, esp
2 256MB 260MB 4194kB bios_grub
3 260MB 32.2GB 32.0GB btrfs


Model: Kingston DataTraveler 3.0 (scsi)
Disk /dev/sdb: 61.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 4194kB 8389kB 4194kB BIOS GRUB bios_grub
2 8389kB 1074MB 1065MB fat32 EFI System Partition boot, esp
3 1074MB 61.9GB 60.8GB btrfs Linux


***@mux22:~# lshd -H
Device Size Type Label Mountpoint
sda 30G ATA:GPT "VBOX_HARDDISK"
sda1 243M vfat /boot/efi
sda2 4M BIOS boot
sda3 29.8G btrfs /
sdb 57.7G USB3:GPT "Kingston_DataTraveler_3.0"
sdb1 4M BIOS boot
sdb2 1016M vfat "EFI"
sdb3 56.7G btrfs "M22"


***@mux22:~# l -R /boot/efi
dRWX - ????-??-?? ??:?? /boot/efi
dRWX - 2022-11-14 14:08 /boot/efi/EFI
dRWX - 2022-10-11 17:33 /boot/efi/EFI/BOOT
-RWX 966,664 2024-09-03 11:08 /boot/efi/EFI/BOOT/BOOTX64.EFI
-RWX 88,344 2024-09-03 11:08 /boot/efi/EFI/BOOT/fbx64.efi
-RWX 856,280 2024-09-03 11:08 /boot/efi/EFI/BOOT/mmx64.efi
dRWX - 2022-11-14 14:08 /boot/efi/EFI/mint
-RWX 108 2024-09-03 11:08 /boot/efi/EFI/mint/BOOTX64.CSV
-RWX 128 2024-09-03 11:08 /boot/efi/EFI/mint/grub.cfg
-RWX 2,656,136 2024-09-03 11:08 /boot/efi/EFI/mint/grubx64.efi
-RWX 856,280 2024-09-03 11:08 /boot/efi/EFI/mint/mmx64.efi
-RWX 966,664 2024-09-03 11:08 /boot/efi/EFI/mint/shimx64.efi
dRWX - 2022-10-11 17:33 /boot/efi/EFI/ubuntu
-RWX 108 2022-10-11 17:33 /boot/efi/EFI/ubuntu/BOOTX64.CSV
-RWX 128 2022-10-11 17:33 /boot/efi/EFI/ubuntu/grub.cfg
-RWX 1,742,728 2022-10-11 17:33 /boot/efi/EFI/ubuntu/grubx64.efi
-RWX 856,232 2022-10-11 17:33 /boot/efi/EFI/ubuntu/mmx64.efi
-RWX 955,656 2022-10-11 17:33 /boot/efi/EFI/ubuntu/shimx64.efi


Dieses funktionierende System hab ich auf USB Stick (sdb) kopiert. Leider
bootet ein Test-PC (reale Hardware) damit nur noch im BIOS (CSM) Modus.
Wenn ich EFI auswaehle (Boot-Menue nach dem Einschalten), bleibt es beim
"grub> " Prompt stehen, es erscheint also nicht mehr das grub Boot-Menue
wo man Kernel und Partition auswaehlen kann.


Installiert hab ich den Grub auf USB-Stick so:

# chroot /mnt/linuxclone/sdb3 grub-install --recheck --removable --target=x86_64-efi /dev/sdb
Installing for x86_64-efi platform.
Installation finished. No error reported.

# chroot /mnt/linuxclone/sdb3 /usr/sbin/update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/50_linuxmint.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.8.0-47-generic
Found initrd image: /boot/initrd.img-6.8.0-47-generic
Found linux image: /boot/vmlinuz-6.8.0-45-generic
Found initrd image: /boot/initrd.img-6.8.0-45-generic
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Adding boot menu entry for UEFI Firmware Settings ...
done



Es sind dann auch alle EFI Files da:

***@mux22:/usb/KDT64_2# df -TH .
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb2 vfat 1.1G 14M 1.1G 2% /usb/KDT64_2

***@mux22:/usb/KDT64_2# l -R
dRWX - 2022-11-14 14:08 EFI
dRWX - 2022-10-11 17:33 EFI/BOOT
-RWX 966,664 2024-09-03 11:08 EFI/BOOT/BOOTX64.EFI
-RWX 88,344 2024-09-03 11:08 EFI/BOOT/fbx64.efi
-RWX 856,280 2024-09-03 11:08 EFI/BOOT/mmx64.efi
dRWX - 2022-11-14 14:08 EFI/mint
-RWX 108 2024-09-03 11:08 EFI/mint/BOOTX64.CSV
-RWX 128 2024-09-03 11:08 EFI/mint/grub.cfg
-RWX 2,656,136 2024-09-03 11:08 EFI/mint/grubx64.efi
-RWX 856,280 2024-09-03 11:08 EFI/mint/mmx64.efi
-RWX 966,664 2024-09-03 11:08 EFI/mint/shimx64.efi
dRWX - 2022-10-11 17:33 EFI/ubuntu
-RWX 108 2022-10-11 17:33 EFI/ubuntu/BOOTX64.CSV
-RWX 128 2022-10-11 17:33 EFI/ubuntu/grub.cfg
-RWX 1,742,728 2022-10-11 17:33 EFI/ubuntu/grubx64.efi
-RWX 856,232 2022-10-11 17:33 EFI/ubuntu/mmx64.efi
-RWX 955,656 2022-10-11 17:33 EFI/ubuntu/shimx64.efi


Ideen, was da schief ging bzw wie ich da zum debugging vorgehen soll?

Das Ganze (Dual-Boot BIOS/UEFI) hatte schon mal funktioniert, aber dann
hab ich wohl was zerkonfiguriert.
--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: ***@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: https://www.tik.uni-stuttgart.de/
Sieghard Schicktanz
2024-10-17 19:32:03 UTC
Permalink
Hallo Ulli,
Post by Ulli Horlacher
Ich hab leider meine EFI grub Installation kaputt gemacht und finde den
Fehler nicht.
Naja, am Ende schaut das aber schon bisserl anders aus...
Post by Ulli Horlacher
Ich hab ein laufendes System (Mint 21.3 =~ Ubuntu 22) als Virtualbox VM,
das sowohl im BIOS als auch im UEFI Modus bootet.
Das tut es doch immer noch? Weil...
...
Post by Ulli Horlacher
Dieses funktionierende System hab ich auf USB Stick (sdb) kopiert. Leider
bootet ein Test-PC (reale Hardware) damit nur noch im BIOS (CSM) Modus.
Also _der USB-Stick_ bootet nur im BIOS-Modus, die Kopie also.
Post by Ulli Horlacher
Wenn ich EFI auswaehle (Boot-Menue nach dem Einschalten), bleibt es beim
"grub> " Prompt stehen, es erscheint also nicht mehr das grub Boot-Menue
wo man Kernel und Partition auswaehlen kann.
D.h. der Stick wird durchaus richtig angesprochen, erst der grub findet
seine Daten nicht mehr, in dem Fall das Modul "normal". Offensichtlich
versucht er, seine Moduln grade _nicht_ auf dem Stick zu finden, oder
zumindest nicht an einer Stelle, die er ansprechen kann.
(Ja, von dem "Not-Prompt"aus ist es recht mühsam, weiterzumachen. Da kennt
er nur den Befehl "insmod", und man muß alle Zugriffsinformationen raten...)
Post by Ulli Horlacher
# chroot /mnt/linuxclone/sdb3 grub-install --recheck --removable
--target=x86_64-efi /dev/sdb Installing for x86_64-efi platform.
Installation finished. No error reported.
Das schaut "irgendwie" danach aus, daß da _grundsätzlich_ die "sdb" im
System erwartet wird, und wenn _dort_ die Daten vom grub, d.h. seine Modul-
und sonstigen Verzeichnisse und seine Konfiguration liegen, und die beim
Boot vom Stick nicht ansprechbar sind, kann, muß das die Folge sein.
Gibt grub-install vielleicht schon mit "--verbose" Hinweise darauf, was da
schief laufen könnte?
...
Post by Ulli Horlacher
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb2 vfat 1.1G 14M 1.1G 2% /usb/KDT64_2
Hmm. Ist der Stick denn für sich allein _auch_ /dev/sdb? Normalerweise,
wenn "relativ allein" benutzt, würde ich dafür /dev/sda erwarten.
Post by Ulli Horlacher
dRWX - 2022-11-14 14:08 EFI
...
D.h. die grub-Daten liegen auf dem Stick, der für einen Start ("Boot") von
einer anderen Platte installiert ist?
Post by Ulli Horlacher
Ideen, was da schief ging bzw wie ich da zum debugging vorgehen soll?
Tja, probier' halt mal, den grub so auf dem Stick zu installieren, daß er
_den_ auch als Boot-Platte ansieht.
Als andere Möglichkeit könnte es aber auch sein, daß der neu installierte
grub auf dem Stick einfach kein Modul für den USB-Zugriff (mehr) hat. Das
könntest Du mit dem "--modules="-Schalter bei der Installation angeben.
Vielleicht geht's ja dann?
Oder das (EFI-) BIOS der Maschine, mit der Du testest, ist einfach so
eingestellt, daß es das Booten von "fremden" Datenträgern im EFI-Modus
nicht zuläßt - das wäre auch noch eine Möglichkeit.
Und was auch noch auffällt: Die Reihenfolge der Partitionen auf dem Stick
ist gegen Deine Systemplatte verdreht. Das sollte eigentlich mittels der
Kennung richtig angesprochen werden, aber "BIOS_GRUB" dürfte wohl auch FAT
sein, und vielleicht geht da was schief? (Für den grub wäre dann "seine"
Partition "(hd0,2)" auf dem Stick, aber "(hd0,1)" im Installationssystem.)

Naja, ein paar Ideen "ins Blaue", vielleicht hilft's Dir ja was.
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------
Ulli Horlacher
2024-10-23 14:45:01 UTC
Permalink
Post by Ulli Horlacher
Ich hab leider meine EFI grub Installation kaputt gemacht und finde den
Fehler nicht.
Ich hab ein laufendes System (Mint 21.3 =~ Ubuntu 22) als Virtualbox VM,
das sowohl im BIOS als auch im UEFI Modus bootet.
Dieses funktionierende System hab ich auf USB Stick (sdb) kopiert. Leider
bootet ein Test-PC (reale Hardware) damit nur noch im BIOS (CSM) Modus.
Wenn ich EFI auswaehle (Boot-Menue nach dem Einschalten), bleibt es beim
"grub> " Prompt stehen, es erscheint also nicht mehr das grub Boot-Menue
wo man Kernel und Partition auswaehlen kann.
# chroot /mnt/linuxclone/sdb3 grub-install --recheck --removable --target=x86_64-efi /dev/sdb
Installing for x86_64-efi platform.
Installation finished. No error reported.
Das haette laut diversen Anleitungen funktionieren sollen, tat aber nicht.

Nach vielen Stunden try-and-error hab ich nun eine funktionierende Loesung
gefunden:

Ich hab als erstes ein Mint 22 frisch installiert mit UEFI.
Das hat in /boot/efi/ angelegt:

966,664 2024-10-23 12:37 EFI/BOOT/BOOTX64.EFI
88,344 2024-10-23 12:37 EFI/BOOT/fbx64.efi
856,280 2024-10-23 12:37 EFI/BOOT/mmx64.efi
108 2024-10-23 12:37 EFI/ubuntu/BOOTX64.CSV
126 2024-10-23 12:37 EFI/ubuntu/grub.cfg
2,656,136 2024-10-23 12:37 EFI/ubuntu/grubx64.efi
856,280 2024-10-23 12:37 EFI/ubuntu/mmx64.efi
966,664 2024-10-23 12:37 EFI/ubuntu/shimx64.efi

Diese Dateien hab ich dann auf meinen USB-Stick kopiert. der nicht mehr
mit UEFI booten wollte.

EFI/ubuntu/grub.cfg enthaelt:

search.fs_uuid 8880e2e8-3640-4818-b978-083165ddcec2 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg


Die UUID musste ich ersetzen durch die vom USB / filesystem (blkid zeigt
die an). Das "hd0,gpt2" ist optional und kann weg.

Damit bootet nun mein USB-Stick wieder auf diversen PCs und Notebooks im
UEFI Modus.

AECHZ.
UEFI ist derselbe Scheiss wie systemd: kompliziert, haklig und
intransparent :-}
--
Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: ***@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: https://www.tik.uni-stuttgart.de/
Lesen Sie weiter auf narkive:
Loading...