La risposta è semplice. La partizione di sistema EFI (ESP) dovrebbe essere FAT32 (FAT16 o anche FAT12 funzioneranno anche per la maggior parte degli UEFI corretti; sono per lo più mostrati come vfat
in Linux) invece di ext2:
mkfs.fat -F32 /dev/sda2
FWIW, se non installerai grub i386-pc (per l'avvio BIOS/CSM), non hai bisogno della partizione "BIOS boot". È richiesto solo da grub i386-pc
(ma non grub x86_64-efi
o i386-efi
) su GPT.
Non importa se usi l'ESP per /boot
. Se lo fai, dovresti eseguire:
grub2-install --efi-directory /boot
Se lo monti su /boot/efi
invece, dovresti eseguire:
grub2-install --efi-directory /boot/efi
--boot-directory /boot
è implicito (cioè predefinito); Non importa se /boot
è l'ESP, un'altra partizione separata o una directory su /
filesystem.
Potrebbe anche non essere necessario ripetere il chroot per eseguire grub2-install
; Ad esempio, hai montato sda4
, la tua partizione per /
, su /mnt
; E POI, montato sda2
, il tuo ESP, su /mnt/boot/efi
, allora puoi semplicemente eseguire:
grub2-install --boot-directory /mnt/boot --efi-directory /mnt/boot/efi
Sebbene grub2-mkconfig
deve essere eseguito in chroot AFAIK. Ma se hai intenzione di scrivere un semplice e pulito grub.cfg
te stesso invece (che è l'unico modo grazioso per usare grub2), allora questo sarà fuori dalla tua preoccupazione.
Il problema sembrava essere la combinazione e la corrispondenza di BIOS, EFI, MBR e GPT. Ho provato a seguire le guide e usare il GPT, ma c'erano alcune dipendenze che non sono riuscito a risolvere perché sono troppo inesperto. Non mi è nemmeno chiaro se il kernel sia stato compilato con il supporto GPT (tramite l'opzione di configurazione CONFIG_EFI_PARTITION
).
Quando ho abbandonato GPT ed EFI e sono passato a BIOS e MBR puramente, sono stato in grado di avviare la macchina risultante. BIOS e GPT dovrebbero essere una combinazione valida, ma mi chiedo se funzioni nella pratica (vedi, ad esempio, Opzioni Bootloader).
Ecco la configurazione con cui sono stato in grado di eseguire la macchina:
$ 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)
La partizione 1 è /boot
, la partizione 2 è /
e la partizione 3 è swap
.