grub2-install: erro: / boot / efi não se parece com uma partição EFI em uma nova instalação do Gentoo

2

Eu preciso de uma máquina Gentoo 13 para testar algum software na plataforma. Eu não sou um Gentoo regular, então estou sofrendo os procedimentos de instalação deles. Estou em Configurando o carregador de inicialização | Instalando o GRUB2 e ele falhou com:

# 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.

Eu retrocedi para Preparando os discos | Padrão: Usando parted para particionar o disco , e parece que tenho as coisas configuradas conforme as instruções:

(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

Os resultados acima são do mesmo capítulo do manual, seções Aplicando um sistema de arquivos a uma partição e Ativando a partição virtual .

Eu também segui o comentário O diretório EFI não deve ser / boot mas / boot / efi de Problemas e perguntas sobre o bootloader nos fóruns do Gentoo, mas isso resultou no mesmo erro:

(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.

Qual é o problema e como posso corrigi-lo?

Aqui está a exibição fdisk correspondente das informações apresentadas por gparted acima.

(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

Também verifiquei o pacote sys-boot/grub suporta EFI:

(chroot) Gentoo-2012 / # cat /etc/portage/make.conf | grep GRUB
GRUB_PLATFORMS="emu efi-32 efi-64 pc"

Em seguida, executei um emerge --ask --newuse sys-boot/grub , emerge -pv sys-boot/grub e, em seguida, recompus on grub .

    
por jww 16.03.2016 / 00:42

2 respostas

0

O problema parecia estar misturando e combinando BIOS, EFI, MBR e GPT. Eu tentei seguir os guias e usar o GPT, mas havia algumas dependências que eu não conseguia resolver porque sou muito inexperiente. Não é claro para mim que o kernel foi construído com suporte a GPT (via opção de configuração CONFIG_EFI_PARTITION ).

Quando abandonei GPT e EFI e mudei para BIOS e MBR, consegui inicializar a máquina resultante. BIOS e GPT são supostamente uma combinação válida, mas eu estou querendo saber se funciona na prática (veja, por exemplo, Opções do Bootloader ).

Aqui está a configuração com a qual eu pude rodar a máquina:

$ parted
GNU Parted 3.2
Using /dev/sda
(parted) print                                                            
Model: ATA VMware Virtual I (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  135MB   134MB   primary  ext2            boot
 2      135MB   19.5GB  19.3GB  primary  ext4
 3      19.5GB  21.5GB  2012MB  primary  linux-swap(v1)

A partição 1 é /boot , a partição 2 é / e a partição 3 é swap .

    
por 18.03.2016 / 04:19
3

A resposta é simples. A partição de sistema EFI (ESP) deve ser FAT32 (FAT16 ou FAT12 também serve para a UEFI mais adequada; eles são mostrados principalmente como vfat no Linux) em vez de ext2:

mkfs.fat -F32 /dev/sda2

FWIW, se você não vai instalar o grub i386-pc (para boot do BIOS / CSM), você não precisa da partição "BIOS boot". Só é requerido pelo grub i386-pc (mas não pelo grub x86_64-efi ou i386-efi ) no GPT.

Realmente não importa se você usa o ESP para /boot . Se você fizer isso, você deve executar:

grub2-install --efi-directory /boot

Se você montá-lo em /boot/efi , você deverá executar:

grub2-install --efi-directory /boot/efi

--boot-directory /boot está implícito (isto é, padrão); Não importa se /boot é o ESP, outra partição separada ou um diretório no sistema de arquivos / .

Você pode nem precisar fazer chroot novamente para executar grub2-install ; Por exemplo, você montou sda4 , sua partição para / , em /mnt ; E então, montado sda2 , seu ESP, em /mnt/boot/efi , então você pode simplesmente executar:

grub2-install --boot-directory /mnt/boot --efi-directory /mnt/boot/efi

Embora grub2-mkconfig precise ser executado no chroot AFAIK. Mas se você planeja escrever um grub.cfg simples e limpo (que é a única maneira elegante de usar o grub2), então isso estará fora de seu interesse.

    
por 16.03.2016 / 04:05