Parece haver bastante 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 esse problema? Entendo que 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 o swap para/dev/sda4 como um volume lógico e usar/dev/sda2 como/boot.
Alternativamente, eu poderia simplesmente voltar ao grub-legacy e não me preocupar com isso (existerealmenteuma vantagem em atualizar para o grub2 se isso causar tantos problemas?).
Pensamentos?
Responder1
Você deve primeiro determinar se deseja usar uma inicialização em modo BIOS/CSM/legado ou uma inicialização em modo EFI/UEFI. A primeira é a maneira como os PCs inicializam desde a década de 1980, mas é um sistema feio e hackeado que em breve seguirá o caminho do dodô. O Windows vincula a inicialização no modo BIOS à tabela de partição MBR, que você não está usando (mas poderia; seu disco não é grande o suficiente para exigir GPT). Linux, FreeBSD e a maioria dos outros sistemas operacionais modernos são mais flexíveis e suportam inicialização no modo BIOS a partir de GPT; mas às vezes há complicações criadas pelo firmware e, claro, se você decidir instalar o Windows posteriormente em uma configuração de inicialização dupla, precisará fazer alterações ou concessões.
A inicialização no modo EFI/UEFI é menos complicada; mas as implementações de EFI variam muito em qualidade e o nível geral de conhecimento e suporte na Web para EFI é inferior ao do BIOS. O Windows vincula o uso do GPT à inicialização no modo EFI, portanto, se você espera instalar o Windows em seu computador, o EFI é definitivamente o caminho a percorrer. Os computadores mais antigos são apenas BIOS. A EFI começou a decolar no mercado em meados de 2011, portanto, se o seu computador for mais antigo que isso, talvez você não consiga usar a EFI.
Se você optar pela inicialização no modo BIOS, deverá criar umPartição de inicialização do BIOSno disco. Há espaço suficiente no início do disco para esta partição, mas você precisará definir o valor de alinhamento do setor como 1 (do 2048 normal) para que isso funcione. Não sei de imediato se isso pode ser feito com parted
, mas você pode fazer isso com gdisk
. (Observe que o espaço no início do seu disco está um pouco abaixo do tamanho recomendado de 1 MiB para uma partição de inicialização do BIOS, mas apenas por alguns setores. Provavelmente funcionará bem, mas poderá falhar em algum momento no futuro.) Alternativamente. , você pode reduzir qualquer uma de suas partições em 1-2 MiB para liberar espaço para a partição de inicialização do BIOS. Esta partição faznãoprecisa ser a primeira partição do disco, embora esse seja o local convencional.
Se você optar pela inicialização no modo EFI/UEFI, deverá criar umPartição do sistema EFI (ESP).Esta partição deve ser formatada em FAT e 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 550 MiB, embora um décimo disso possa funcionar muito bem.
Para instalar o GRUB, primeiro você deve ter certeza de ter instalado o pacote GRUB correto. Não tenho certeza de nomear todas as distribuições, mas no Ubuntu, seria grub-pc
para modo BIOS/CSM/legado e grub-efi-amd64
para modo EFI/UEFI. Uma instalação no modo EFI também exigirá a inicialização do que você estiver usando para instalar o GRUB (um live CD/USB, presumivelmente) no modo EFI. Isso pode exigir o uso do gerenciador de inicialização integrado do computador, que normalmente é acessado por meio de uma tecla de função, mas os detalhes variam de um computador para outro.
Responder2
Você já tem essa pequena partição, então kk a primeira partição não começa com 1, mas com 2048
/dev / sda1 2048 411647 409600 200M Linux file system (/boot)
Você precisa alterar o tipo de etiqueta, debotaparabios_grubpor exemplo através do parted:
parted /dev/sda
set 1 boot off
set 1 bios_grub on
q
Então de novo:
grub2-install /dev/sda
Responder3
Se você quiser usar partições GPT com modo de inicialização BIOS antigo, então você precisa criar uma partição BIOS de alguns megabytes (16MiB deve ser adequado e à prova de futuro) no dispositivo onde você deseja instalar o grub com grub-install
.
Use, por exemplo, fdisk
para criar a partição do tipo "BIOS boot" em algum lugar do seu 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
Responder4
Eu tive esse problema agora mesmo em uma máquina no modo EFI com um disco GPT (Ubuntu 18.04 Server), que um dia decidiu inicializar apenas até o shell GRUB por conta própria.
De alguma forma, o grub-pc (para máquinas no modo BIOS/i386) foi instalado e o grub-efi não. A correção foi simples assim que o problema foi identificado:
# apt install grub-efi
# update-grub
# grub-install
Observe que o primeiro comando desinstalou o grub-pc.