2012-01-09 16:37:51 +0000 2012-01-09 16:37:51 +0000
56
56

Como reinstalar o GRUB2 EFI?

Depois de actualizar com sucesso a minha bios, algo correu mal e acabei com um cursor a piscar no canto superior esquerdo de um ecrã preto. Sem erros, sem nada. A bios agora só listou uma opção de inicialização do SATA: <disc name> no lugar da habitual UEFI ubuntu. Estou a usar um esquema de particionamento GPT.

Acabei por descobrir que a solução de trabalho era reinstalar correctamente o grub-efi-amd64. Então, como faço isto ?

PS: Na verdade, consegui reinstalar o GRUB2 EFI por conta própria e vou publicar aqui a minha resposta, pois não consegui encontrar nenhum how-to completo sobre isto.

Respostas (5)

87
87
87
2012-01-09 16:39:36 +0000
  • Arranque o seu computador com um USB/CD em modo UEFI. Eu tinha duas opções de inicialização <flash_drive> e UEFI: <flash_drive>, a segunda é necessária para expor as variáveis efi em /sys/firmware/efi/ para que efibootmgr não falhe mais tarde. Arrancar com a primeira opção dá-me o seguinte erro:

  • chroot into the broken system (semelhante ao ubuntu grub2 help mas com especificidades efi):

  • Dependendo da sua distribuição linux, agora faz coisas diferentes.

  • Agora digite Ctrl+D para sair do chroot, desmontar tudo e reiniciar:

Você pode precisar de adaptar isto às suas necessidades (tabela de partição diferente, partição separada /boot, etc.) e pode não ser a única opção mas isto funcionou muito bem para mim.

Um sistema adequado para fixar coisas ao vivo é grml . Existe também um guia extensivo sobre como configurar um dispositivo USB bootável, do qual a secção Mac é a mais útil na realidade (basta criar uma partição FAT32, copiar os ficheiros, reiniciar, feito).

5
5
5
2014-03-20 00:27:02 +0000

Tal como a Maxine, encontrei as minhas definições UEFI na BIOS para ficar danificada e a minha máquina não arrancava.

No meu caso, é um Lenovo ThinkServer RD430 com Linux Mint Debian e parecia qualquer coisa que eu fizesse em relação ao update-grub ou mudar qualquer disco rígido no servidor faria com que ele não arrancasse. O SO no meu caso é linuxmint-201403-mate-dvd-64bit instalado via USB. (veja abaixo uma descrição completa dos eventos que fariam com que a UEFI não funcionasse)

Passar exactamente pelos mesmos passos num ThinkServer TS140 não fez com que a UEFI perdesse a cabeça nem uma vez. Olhei para a página do driver RD430 e a minha bios é duas versões antigas. Nunca tive de actualizar bios numa motherboard, por isso não sou de actualizar automaticamente quando há novas versões disponíveis. Depois de actualizar a bios, a resposta da Maxine acima funcionou, apenas com uma reviravolta…

# efibootmgr -c --disk /dev/sdX --part Y
# efibootmgr -v
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0002,0000,0003,0001,0004
Boot0000* linuxmint HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\EFI\linuxmint\grubx64.efi)
Boot0001* LMDE Linux Mint Debian HD(1,800,15d505800,934c598c-fe3c-fd43-84a1-fa38e4f72552)File(\EFI\linuxmint\grubx64.efi)
Boot0002* Linux HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\elilo.efi)
Boot0003* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)AMBO
Boot0004* UEFI: VerbatimSTORE N GO 1.00 ACPI(a0341d0,0)PCI(1a,0)USB(1,0)USB(4,0)HD(1,80,1d70780,00000000)AMBO
mint / #

O comando efibootmgr -c adicionou duas entradas 0000 e 0002! A entrada Boot0002* Linux HD primeiro na ordem de arranque ** não está correcta**. A entrada 0000 _ está correcta._

Para testar isto, tentei arrancar sem qualquer interrupção, que é a entrada 0002. Como esperado, não funcionou. Por isso reiniciei o servidor, carreguei em F12, e escolhi linuxmint. Como era de esperar, ele arrancou para a minha instalação LMDE.

A forma de remover entradas indesejadas via efibootmgr é:

# efibootmgr -b 2 -B

Eu usei este comando para remover as entradas 0001 e 0002. A opção 0001 foi da última das minhas muitas tentativas para recuperar o SO.


Notas UEFI

Se está a ler isto e tão frustrado com o UEFI como eu estou/foi, aqui estão algumas notas e recursos: “ Booting to UEFI Shell is akin to using a DOS shell. ” A Intel fez um manual de referência PDF para os comandos efi shell.
“ Lenovo’s UEFI_on_TS430 document é o único recurso que vi explicando o uso da efi shell. ” Outra referência uefi shell do nPartition Administrator’s Guide. “ Pode tentar arrancar para uma partição a partir da efi shell navegando até ao carregador e executando-o.
” UEFI quer que o disco tenha uma tabela de partições GPT, não uma tabela de partes msdos. “ UEFI quer que a primeira partição no seu disco seja formatada fat32 ou vfat. ” Para um arranque “genérico” tem de haver um directório /EFI/boot na raiz com o bootx64.efi nele. “ Algumas pessoas copiam o seu grubx64.efi de onde foi instalado para o /EFI/boot/bootx64.efi e este batoteiro funcionou para eles.
” Sempre que fizer alterações ao grub, use o efibootmgr -v antes e depois para garantir que o seu reinício está ok.


A minha experiência RD430

Eu instalei o SO 10+ vezes na semana passada a tentar resolver isto e configurar o servidor. A minha configuração é um SSD em este controlador RAID no slot PCIe 2.0 com LMDE instalado no mesmo. AOC-S3008L-L8i RAID controller reflashed to IT mode ) na 2ª ranhura PCIe 3.0 com 6x unidades de 3TB. RAM: 12GB ECC (3x 4GB).

Aqui estão as alterações que eu faria para que o meu sistema não arrancasse: “ Troca de slots S3008L-L8i pci (deixando o SSD+card em paz).
” Desactivar o LSi software raid bios prompt para o controlador onboard. “ Adicionar a minha antiga placa HighPoint RocketRaid a um slot PCIe aberto. ” Fazer uma alteração ao /etc/default/grub e depois executar o update-grub. (maybe grub-install também precisa de ser executado?)

3
3
3
2012-03-01 11:08:40 +0000

Eu faria uma votação positiva, mas aparentemente não tenho reputação suficiente sobre o SuperUser. Ainda bem que finalmente encontrei uma resposta para isto depois de dias de luta de clones que funcionaram mas não arrancavam. Penso que está tudo relacionado com a UEFI e algum tipo de mecanismo de “arranque seguro” ou algo assim.

Estou a trabalhar fora de linha, por isso, apanhar não era uma opção. O que eu fiz foi colocar o Ubuntu Desktop numa pen USB, adicionar os pacotes grub-efi e grub-efi-amd64 à raiz da pen USB (grub-efi_1.99~rc1-13ubuntu3_amd64.deb e grub-efi-amd64_1.99~rc1-13ubuntu3_amd64.deb para o Ubuntu 11. 04 - alterar conforme apropriado para distro e arquitetura), e colocar o seguinte em um script no pendrive também:

#! /bin/bash
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
dir=`dirname $0`
sudo cp $dir/grub-efi*.deb /mnt/tmp
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt /bin/sh -c "dpkg -i /tmp/grub-efi*.deb"
sudo shutdown -r now

Inicialize o pendrive Live USB, abra um terminal, execute o comando, e o trabalho é um bom ‘un! O único problema ocasional é que a UEFI por vezes foi movida para baixo na ordem de prioridade de arranque abaixo do disco rígido, altura em que tem de entrar na BIOS e alterar a ordem de arranque para parar de tentar (e falhar) no SATA: drive.

Também pode usar o dpkg-reconfigure em vez do dpkg -i, mas isso faz algumas perguntas sobre o carregador de arranque.

[editar] Também não tenho reputação suficiente para comentar, por isso o que eu pensava ser um comentário sobre uma resposta acaba por ser uma resposta.

1
1
1
2015-01-21 11:38:23 +0000

No meu Ubuntu 14 de 32 bits. 10 no Lenovo Yoga 2 Pro, mudei para arranque UEFI assim:

  • criar pasta

  • montar partição “EFI System” em /etc/fstab

  • instalar grub-efi-amd64-bin e desinstalar grub-efi-ia32-bin

  • reiniciar o Ubuntu em modo efi

  • testar se arranca bem, depois instalei grub-efi-amd64 e desinstalei grub-pc grub-gfxpayload-lists com

Eu escolho não remover /boot quando me pedem.


Talvez o tenha tornado complicado e isto teria simplesmente funcionado bem:

apt-get install --reinstall grub-efi
update-grub
0
0
0
2018-08-08 01:32:05 +0000

Esta entrada vai mais no sentido de preparar o seu computador para reinstalar as entradas efi. É também o que poderá encontrar como uma forma eficaz e simples de criar um disco de recuperação após a instalação do sistema em suportes internos (SSD, HDD).

Com Linux Mint Tara (uma variante de Linux intimamente relacionada com o Ubuntu Bionic Beaver), o método tanto me comoveu a instalação, como tornou possível salvá-la mais tarde. Surgiu de eu querer um USB live com persistência, e como o tempo para instalar um utilitário como o Unetbootin para uma instalação persistente é aproximadamente o mesmo que uma nova instalação, eu simplesmente usei a mesma distribuição live para fazer uma instalação no USB como foi usado para instalar o SO no SSD interno.

Claro, nada disto é RAID ou qualquer outra configuração especializada, mas requereu uma partição de volume preparada no drive USB, e uma instalação feita nesse USB usando o método disponível da distro, contornando o drive interno para uma instalação na raiz (/) de uma única partição.

É aqui que a nova instalação do grub se enrosca com o drive interno. Quando reiniciei para o USB, as entradas internas do grub UEFI pareciam ter desaparecido, deixando apenas o menu grub quando tentava seleccionar a drive usando as entradas do menu BIOS.

Em vez disso, o arranque a partir do USB mostrou que o método da distro tinha produzido um menu grub pronto, com uma listagem para o /dev/sda2, a partição contendo a montagem /boot/efi. Na maioria das unidades primárias internas, o nome da partição grub é hd0, gpt1.

Indo para ‘avançado’, mais de um kernel rescue estava disponível. A partir daí, corra o utilitário grub e depois arranque normalmente.

A partir deste ponto, correndo o SO no disco interno que anteriormente estava inacessível, desligue o USB, depois corra sudo grub-install.

Quando reiniciar sem o USB, deverá ser capaz de voltar a entrar. Neste ponto o USB está configurado para iniciar a unidade interna no modo normal ou de recuperação, e a unidade tem o seu próprio menu.