Après une journée de recherche, je peux maintenant répondre à ma propre question: oui c'est possible, et vous pouvez même utiliser cette partition comme / boot et stocker vos noyaux / initramfs / etc. Là.
Exigences:
- Grub> = 2,00 (1,98 et 1,99 ne fonctionnent pas)
- Grub doit être installé à partir d'un noyau Linux prenant en charge les variables EFI (
CONFIG_EFI_VARS
compilé dans ou en tant que module efivars
)
- Pour créer l'entrée de démarrage EFI, vous aurez besoin
efibootmgr
Installer:
Montez d'abord votre partition EFI sur / boot
mount /dev/sdX1 /boot
Si vous regardez l'entrée de montage, vous verrez qu'il s'agit simplement d'une partition FAT (32). Sous /boot
vous devriez trouver un répertoire efi
.
Comme l'appel de grub efibootmgr
, vous devez charger evivars
, s'il n'est pas compilé dans le noyau:
modprobe efivars
Vous pouvez maintenant installer grub:
# Replace x86_64 by i386 for 32 bit installations
grub2-install --target=x86_64-efi
Grub installe ses fichiers comme d'habitude /boot/grub2
. Si tout fonctionnait correctement, vous devriez maintenant avoir également un dossier /boot/efi/grub2
ou /boot/efi/your_distros_name
. Avec, --bootloader-id=isert_name_here
vous pouvez également spécifier vous-même le nom du dossier.
Grub appelle efibootmgr
automatiquement et crée une entrée de démarrage avec ce nom dans le menu de démarrage EFI (dans mon cas, cela signifie qu'il apparaît comme un périphérique de démarrage dans le menu EFI, je ne sais pas si c'est le cas sur chaque carte EFI)
La configuration supplémentaire ne diffère pas de la configuration grub2 habituelle, grub2-mkconfig
ajoutera les modules appropriés pour EFI à votre grub.cfg
.
Fenêtres de chargement de chaîne:
Comme j'ai demandé un double démarrage avec Windows, je vais inclure la configuration grub pour le charger en chaîne:
Le chargement en chaîne d'une installation Windows sur EFI est légèrement différent de celui sur un disque MBR. À la place, vous n'aurez pas besoin des modules ntfs
ou et vous en aurez besoin.part_mbr
fat
part_gpt
De plus, la définition de root n'est pas requise, ces informations sont stockées par le propre gestionnaire de démarrage de Windows. Spécifiez plutôt la search
commande. Les paramètres nécessaires peuvent être déterminés par
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Cela vous donnera les paramètres de recherche spécifiant l'emplacement de la partition EFI, cela devrait ressembler à:
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
Au lieu d'indiquer chainloader
le nombre de secteurs à lire, vous devrez définir le chemin d'accès au chargeur EFI de Windows dans la partition EFI. Il en va de même pour toutes les installations Windows EFI. L'entrée résultante devrait ressembler à ceci:
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
}
Sources: Celles - ci couvrent quelques cas supplémentaires, si vous souhaitez démarrer à partir d'EFI, elles valent la peine d'être lues:
mount /dev/sdXX /boot/efi
, puis j'ai suivi cela et j'ai courubcdedit /set {bootmgr} path \EFI\fedora\shim.efi
de Windows au bootstrap EFI.