J'ai une installation Windows 7 GPT existante, qui dispose déjà d'une partition système EFI.
J'essaie maintenant d'installer un Linux sur un disque dur séparé, qui est également formaté de GPT. Je n'ai trouvé aucun moyen de travail pour obtenir le démarrage à Grub sans partition système EFI, alors ma question est la suivante:
Est-il possible pour Grub2 d'utiliser la même partition système EFI comme Windows? Comment puis-je dire à Grub2 de l'utiliser?
Pour clarifier ma configuration:
gpt /dev/sda:
1 EFI System partition created by windows (100MB)
2 "Microsoft reserved partition" (200MB)
3 Windows root (rest of disk)
gpt /dev/sdb:
# After answering my own question: this partition is not needed
1 boot partition containing grub, kernels etc.(32MB)
2 crypto LVM partition (rest of disk)
Je veux que GRUB2 utilise l'existant /dev/sda1
Partition EFI.
PS: Ma carte mère est capable d'EFI.
Après une journée de recherche, je peux désormais répondre à ma propre question: oui, il est possible, et vous pouvez même utiliser cette partition comme/Boot et stocker vos noyaux/initramfs/etc. là.
CONFIG_EFI_VARS
compilé dans ou comme module efivars
)efibootmgr
Premier monter votre partition EFI à/démarrer
mount /dev/sdX1 /boot
Si vous regardez l'entrée du montage, vous verrez que c'est simplement une partition grasse (32). Sous /boot
Vous devriez trouver un répertoire efi
.
Comme la grub appelle efibootmgr
, vous devez charger evivars
, s'il n'est pas compilé dans le noyau:
modprobe efivars
Maintenant, vous pouvez installer Grub:
# Replace x86_64 with 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 devez maintenant avoir un dossier /boot/efi/grub2
ou /boot/efi/<name_of_your_distro>
. Avec --bootloader-id=insert_name_here
Vous pouvez également spécifier le nom pour le dossier vous-même.
APPELS DE GRUB efibootmgr
automatiquement et crée une entrée de démarrage avec ce nom dans le menu de démarrage EFI (dans mon boîtier, cela signifie qu'il apparaît comme un périphérique amorçable dans le menu EFI, je ne sais pas si ceci est le cas sur chaque Board EFI)
Une configuration supplémentaire ne diffère pas de la configuration de GRUB2 habituelle, grub2-mkconfig
ajoutera les modules appropriés pour l'EFI à votre grub.cfg
.
Comme je lui ai demandé une double démarrage avec Windows, je comprendra la configuration de GRUB pour la chaîne de chargement:
Chainloading Une installation Windows sur EFI est légèrement différente de celle sur un disque MBR. Vous n'aurez pas besoin de ntfs
ou part_mbr
modules, à la place fat
et part_gpt
sont nécessaires.
En outre, la racine de réglage n'est pas requise, ces informations sont stockées par le gestionnaire de démarrage de Windows. Spécifiez plutôt la commande search
. Les paramètres nécessaires pour cela 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, il devrait ressembler à quelque chose comme:
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
Au lieu de dire chainloader
, le nombre de secteurs à lire, vous devez définir le chemin d'accès au chargeur EFI de Windows dans la partition EFI. C'est la même chose 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 d'autres cas, si vous souhaitez démarrer d'EFI, ils valent la peine de lire: