J'ai besoin d'une machine Gentoo 13 pour tester certains logiciels sur la plate-forme. Je ne suis pas gentoo régulier, alors je souffre de leurs procédures d'installation. Je suis à Configuration du chargeur de démarrage | Installation de Grub2 et a échoué avec:
# grub2-install --target=x86_64-efi --efi-directory=/boot
Installing for x86_64-efi platform.
grub2-install: error: /boot doesn't look like an EFI partition.
Je suis retourné à Préparation des disques | Par défaut: Utilisation saisie pour partitionner le disque , et il semble que j'ai des éléments de configuration comme indiqué:
(chroot) Gentoo-2012 / # parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit mb
(parted) print
Model: ATA VMware Virtual I (scsi)
Disk /dev/sda: 21475MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1.05MB 3.15MB 2.10MB grub bios_grub
2 3.15MB 131MB 128MB ext2 boot boot, esp
3 131MB 2572MB 2441MB linux-swap(v1) swap msftdata
4 2572MB 21474MB 18902MB ext4 rootfs msftdata
Les résultats ci-dessus proviennent du même chapitre du manuel, des sections appliquant un système de fichiers à une partition et activation de la partition de swap .
J'ai également suivi le commentaire Le répertoire EFI ne doit pas être/démarrer mais/boot/efi de problèmes de bootloader et questions sur le gentoo Forums, mais il a entraîné la même erreur:
(chroot) Gentoo-2012 / # mkdir /boot/efi
(chroot) Gentoo-2012 / # grub2-install --target=x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi
Installing for x86_64-efi platform.
grub2-install: error: /boot/efi doesn't look like an EFI partition.
Quel est le problème et comment puis-je le réparer?
Voici la vue correspondante fdisk
de l'information présentée par gparted
ci-dessus.
(chroot) Gentoo-2012 / # fdisk -l
Disk /dev/loop0: 3.3 GiB, 3567640576 bytes, 6968048 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 52F5571A-808B-XXXX-XXXX-XXXXXXXX
Device Start End Sectors Size Type
/dev/sda1 2048 6143 4096 2M BIOS boot
/dev/sda2 6144 255999 249856 122M EFI System
/dev/sda3 256000 5023743 4767744 2.3G Microsoft basic data
/dev/sda4 5023744 41940991 36917248 17.6G Microsoft basic data
J'ai aussi vérifié le paquet sys-boot/grub
prend en charge EFI:
(chroot) Gentoo-2012 / # cat /etc/portage/make.conf | grep GRUB
GRUB_PLATFORMS="emu efi-32 efi-64 pc"
J'ai ensuite effectué un emerge --ask --newuse sys-boot/grub
, emerge -pv sys-boot/grub
, puis reconstruit grub
.
La réponse est simple. La partition du système EFI (ESP) devrait être FAT32 (FAT16 ou même FAT12 fera également pour la plupart des UEFI appropriés; ils sont principalement présentés comme vfat
sous Linux) au lieu de EXT2:
mkfs.fat -F32 /dev/sda2
FWIW, si vous n'allez pas installer Grub I386-PC (pour BIOS/CSM Boot), vous n'avez pas besoin de la partition "BIOS Boot". Il n'est requis que par Grub i386-pc
(mais pas grub x86_64-efi
ou alors i386-efi
) sur gpt.
Peu importe que vous utilisiez le ESP pour /boot
. Si vous le faites, vous devriez courir:
grub2-install --efi-directory /boot
Si vous le montez sur /boot/efi
Au lieu de cela, alors vous devriez courir:
grub2-install --efi-directory /boot/efi
--boot-directory /boot
est implicite (c'est-à-dire de défaut); Peu importe que /boot
est l'ESP, une autre partition distincte ou un répertoire sur le /
système de fichiers.
Vous n'avez peut-être même pas besoin de chroot à nouveau pour effectuer grub2-install
; Par exemple, vous avez monté sda4
, votre partition pour /
, sur /mnt
; Et puis, monté sda2
, votre ESP, sur /mnt/boot/efi
, alors vous pouvez simplement exécuter:
grub2-install --boot-directory /mnt/boot --efi-directory /mnt/boot/efi
Bien que grub2-mkconfig
doit être exécuté à Chroot Afaik. Mais si vous envisagez d'écrire une simple et propre grub.cfg
vous-même à la place (qui est le seul moyen gracieux d'utiliser Grub2), alors ce sera hors de votre préoccupation.