web-dev-qa-db-fra.com

grub2-installer: Erreur: / boot / efi ne ressemble pas à une partition EFI sur une installation de gentoo fraîche

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.

5
jww

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.

9
Tom Yan