grub2-install: “este rótulo de partição GPT não contém partição de inicialização do BIOS”

31

Parece haver um pouco de discussão sobre isso, mas não consigo encontrar uma resposta simples.

Quando tento instalar o grub2, recebo este erro:

# grub2-install /dev/sda
Installing for i386-pc platform.
grub2-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub2-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub2-install: error: will not proceed with blocklists.

Aqui está o layout de / dev / sda:

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 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: 7ECE06D0-9F0C-44FF-BCFB-142283172CCA

Device        Start       End   Sectors  Size Type
/dev/sda1      2048    411647    409600  200M Linux filesystem (/boot)
/dev/sda2    411648   4605951   4194304    2G Linux swap
/dev/sda3   4605952  46548991  41943040   20G Linux filesystem (/)
/dev/sda4  46548992 234441614 187892623 89.6G Linux LVM (/var)

Existe uma maneira simples de contornar este problema? Eu entendo que eu preciso criar uma pequena partição no início do disco como uma "partição de inicialização do BIOS". Suponho que uma opção seria mover a troca para / dev / sda4 como um volume lógico e usar / dev / sda2 como / boot.

Alternativamente, eu poderia simplesmente voltar ao legado e não me preocupar com isso (existe realmente uma vantagem de atualizar para o grub2 se isso causar tanto problema?).

Pensamentos?

    
por Robert S 18.04.2015 / 14:51

3 respostas

17

Você deve primeiro determinar se deseja usar uma inicialização no modo herdado BIOS / CSM / ou uma inicialização no modo EFI / UEFI. O primeiro é o caminho que os PCs têm iniciado desde a década de 1980, mas é um sistema feio e agressivo que estará seguindo o caminho do dodô em pouco tempo. O Windows une a inicialização no modo BIOS à tabela de partições MBR, que você não está usando (mas pode; seu disco está longe de ser grande o suficiente para exigir GPT). Linux, FreeBSD e a maioria dos outros sistemas operacionais modernos são mais flexíveis e suportam a inicialização via modo BIOS do GPT; mas às vezes há complicações criadas pelo firmware e, claro, se você decidir instalar o Windows em uma configuração de inicialização dupla, precisará fazer alterações ou compromissos.

A inicialização no modo EFI / UEFI é menos invasiva; mas as implementações EFI variam muito em qualidade e o nível geral de especialização e suporte na Web para EFI é menor do que para o BIOS. O Windows amarra o uso da GPT no modo de inicialização EFI, portanto, se você espera instalar o Windows em seu computador, a EFI é definitivamente o caminho a ser seguido. Computadores mais antigos são apenas BIOS. A EFI começou a decolar no mercado em meados de 2011, portanto, se seu computador for mais antigo, talvez você não consiga usar o EFI.

Se você for com a inicialização via BIOS, deve criar uma Partição de inicialização do BIOS no disco. Há espaço suficiente no início de seu disco para essa partição, mas você precisará definir seu valor de alinhamento de setor como 1 (a partir do usual 2048) para que isso funcione. Eu não sei de improviso se isso pode ser feito com parted , mas você pode fazê-lo com gdisk . (Observe que o espaço no início de seu disco está ligeiramente abaixo do tamanho recomendado de 1 MiB para uma Partição de Inicialização do BIOS, mas apenas por alguns setores. Ele provavelmente funcionará bem, mas poderá falhar em algum momento no futuro.) , você pode reduzir qualquer uma das suas partições em 1-2MiB para criar espaço para a partição de inicialização do BIOS. Esta partição não precisa ser a primeira partição no disco, embora seja a localização convencional.

Se você for com a inicialização no modo EFI / UEFI, deverá criar uma partição do sistema EFI (ESP) . A partição deve ser formatada em FAT e deve ser significativamente maior que uma partição de inicialização do BIOS, então você terá que redimensionar algo para criá-la. Eu recomendo um tamanho de 550MiB, embora um décimo disso possa funcionar em um aperto.

Para instalar o GRUB, você deve primeiro ter certeza de que instalou o pacote correto do GRUB. Eu não tenho certeza de nomear todas as distribuições, mas no Ubuntu, seria grub-pc para o modo BIOS / CSM / legado e grub-efi-amd64 para o modo EFI / UEFI. Uma instalação no modo EFI também exigirá a inicialização do que você estiver usando para instalar o GRUB (presumivelmente, um CD / USB ativo) no modo EFI. Isso pode exigir o uso do gerenciador de inicialização interno do computador, que geralmente é acessado por meio de uma tecla de função, mas os detalhes variam de um computador para outro.

    
por 18.04.2015 / 18:24
6

Se você quiser usar partições GPT com o modo de inicialização do BIOS de estilo antigo, será necessário criar uma partição do BIOS de alguns megabytes (o 16MiB deve estar bom e pronto para o futuro) no dispositivo em que você deseja instalar o grub com grub-install .

Usar, por exemplo fdisk para criar a partição do tipo "BIOS boot" em algum lugar do disco. Exemplo de saída:

# fdisk -l /dev/sda
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 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: 57E16A16-36B4-4445-A216-031EF6501415

Device        Start        End    Sectors   Size Type
/dev/sda1      2048    4196351    4194304     2G Linux RAID
/dev/sda2   4196352   35653631   31457280    15G Linux RAID
/dev/sda3  35653632   37750783    2097152     1G Linux swap
/dev/sda4  37750784   37816319      65536    32M BIOS boot
/dev/sda5  37816320 1953525134 1915708815 913.5G Linux LVM
    
por 22.01.2017 / 19:24
3

A partição de inicialização tem que ser formatada como fat32, para funcionar

mkfs.vfat -F32 /dev/sdXY

Deve corrigir isso para você

Além disso, o sinalizador de inicialização deve estar ativado no parted:

set 1 boot on
    
por 19.04.2015 / 04:51