Die Antwort ist einfach. Die EFI-Systempartition (ESP) sollte FAT32 sein (FAT16 oder sogar FAT12 reicht auch für die meisten geeigneten UEFI; sie werden meistens als vfat
angezeigt unter Linux) statt ext2:
mkfs.fat -F32 /dev/sda2
FWIW, wenn Sie grub i386-pc (für BIOS/CSM-Boot) nicht installieren, brauchen Sie die "BIOS-Boot"-Partition nicht. Es wird nur von grub i386-pc
benötigt (aber nicht grub x86_64-efi
oder i386-efi
) auf GPT.
Dabei spielt es keine Rolle, ob Sie den ESP für /boot
verwenden . Wenn Sie dies tun, sollten Sie Folgendes ausführen:
grub2-install --efi-directory /boot
Wenn Sie es auf /boot/efi
montieren Stattdessen sollten Sie Folgendes ausführen:
grub2-install --efi-directory /boot/efi
--boot-directory /boot
ist impliziert (d. h. Standard); Dabei spielt es keine Rolle, ob /boot
ist die ESP, eine weitere separate Partition oder ein Verzeichnis auf /
Dateisystem.
Möglicherweise müssen Sie nicht einmal erneut chrooten, um grub2-install
auszuführen; Sie haben beispielsweise sda4
gemountet , Ihre Partition für /
, auf /mnt
; UND DANN sda2
gemountet , Ihr ESP, auf /mnt/boot/efi
, dann können Sie einfach ausführen:
grub2-install --boot-directory /mnt/boot --efi-directory /mnt/boot/efi
Obwohl grub2-mkconfig
muss in chroot AFAIK ausgeführt werden. Aber wenn Sie vorhaben, einen einfachen und sauberen grub.cfg
zu schreiben Sie selbst (das ist die einzig elegante Art, grub2 zu verwenden), dann geht Sie das nichts an.
Das Problem schien das Mischen und Anpassen von BIOS, EFI, MBR und GPT zu sein. Ich habe versucht, den Anleitungen zu folgen und die GPT zu verwenden, aber es gab einige Abhängigkeiten, die ich nicht lösen konnte, weil ich zu unerfahren bin. Es ist mir nicht einmal klar, dass der Kernel mit GPT-Unterstützung gebaut wurde (über die Konfigurationsoption CONFIG_EFI_PARTITION
).
Als ich GPT und EFI fallen ließ und zu reinem BIOS und MBR wechselte, konnte ich die resultierende Maschine booten. BIOS und GPT sollen eine gültige Kombination sein, aber ich frage mich, ob es in der Praxis funktioniert (siehe zum Beispiel Bootloader-Optionen).
Hier ist die Konfiguration, mit der ich die Maschine ausführen konnte:
$ parted
GNU Parted 3.2
Using /dev/sda
(parted) print
Model: ATA VMware Virtual I (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 135MB 134MB primary ext2 boot
2 135MB 19.5GB 19.3GB primary ext4
3 19.5GB 21.5GB 2012MB primary linux-swap(v1)
Partition 1 ist /boot
, Partition 2 ist /
, und Partition 3 ist swap
.