Dopo una giornata di ricerche, ora posso rispondere alla mia domanda: sì, è possibile, e puoi anche usare quella partizione come / boot e archiviare i tuoi kernel / initramfs / etc. Là.
Requisiti:
- Grub> = 2.00 (1.98 e 1.99 non funzionano)
- Grub deve essere installato da un kernel Linux, che supporta le variabili EFI (
CONFIG_EFI_VARS
compilato o come modulo efivars
)
- Per creare la voce di avvio EFI è necessario
efibootmgr
Impostare:
Innanzitutto montare la partizione EFI su / boot
mount /dev/sdX1 /boot
Se guardi la voce mount, vedrai che è semplicemente una partizione FAT (32). Sotto /boot
dovresti trovare una directory efi
.
Come chiamerà grub efibootmgr
, dovresti caricare evivars
, se non è compilato nel kernel:
modprobe efivars
Ora puoi installare grub:
# Replace x86_64 by i386 for 32 bit installations
grub2-install --target=x86_64-efi
Grub installa i suoi file come al solito /boot/grub2
. Se tutto ha funzionato correttamente, ora dovresti avere anche una cartella /boot/efi/grub2
o /boot/efi/your_distros_name
. Con --bootloader-id=isert_name_here
te puoi anche specificare tu stesso il nome della cartella.
Grub chiama efibootmgr
automaticamente e crea una voce di avvio con quel nome nel menu di avvio EFI (nel mio caso, ciò significa che si presenta come un dispositivo avviabile nel menu EFI, non sono sicuro che questo sia il caso su ogni scheda EFI)
Un'ulteriore installazione non differisce dalla solita installazione di grub2, grub2-mkconfig
aggiungerà i moduli appropriati per EFI al tuo grub.cfg
.
Caricamento a catena di Windows:
Come ho chiesto un doppio avvio con Windows, includerò la configurazione di grub per il suo caricamento a catena:
Il caricamento a catena di un'installazione di Windows su EFI è leggermente diverso da quello su un disco MBR. Non avrai bisogno dei moduli ntfs
o part_mbr
, invece fat
e part_gpt
sono necessari.
Inoltre, non è richiesta l'impostazione di root, queste informazioni vengono archiviate dal proprio boot manager di Windows. Invece specifica il search
comando. I parametri necessari per questo possono essere determinati da
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Questo ti darà i parametri per la ricerca specificando la posizione della partizione EFI, dovrebbe assomigliare a:
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
Invece di indicare chainloader
il numero di settori da leggere, sarà necessario impostare il percorso del caricatore EFI di Windows nella partizione EFI. Questo è lo stesso per tutte le installazioni di Windows EFI. La voce risultante dovrebbe apparire così:
menuentry "Microsoft Windows x86_64 UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root <insert ouput from grub-probe here>
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
Fonti: riguardano alcuni altri casi, se si desidera avviare da EFI, vale la pena leggere:
mount /dev/sdXX /boot/efi
, poi seguito questo e corsebcdedit /set {bootmgr} path \EFI\fedora\shim.efi
da Windows a bootstrap EFI.