Após a atualização, o Ubuntu 12.04 não inicializa mais em uma máquina UEFI

1

Eu tenho um computador rodando o Ubuntu 12.04 64bit com o UEFI. Hoje (2013-09-21) eu instalei todas as atualizações que estavam disponíveis sem ler cuidadosamente a lista (que vergonha para mim), já que ninguém tocou no computador por algumas semanas e a lista tinha mais de 100 itens ...

Eu me lembro de outra máquina, que uma das atualizações altera o sistema de inicialização nas máquinas UEFI para sempre usar o shim, mesmo que a inicialização restrita esteja desativada.

Bem, o diagnóstico de problemas é bem direto: algo deu errado com a atualização do gerenciador de inicialização, embora nenhum erro tenha sido dado, e a entrada do Ubuntu desapareceu do menu de inicialização UEFI, fazendo o computador tentar inicializar no modo BIOS, . Se eu executar efibootmgr de um USB inicializável, ele só mostrará o modo de inicialização do BIOS para o HDD ...

Como faço para restaurar a entrada do Ubuntu no menu UEFI para tornar a máquina inicializável novamente?

    
por soulsource 21.09.2013 / 12:32

2 respostas

2

Uma solução mais simples que a fornecida pela soulsource é:

  1. Inicialize com um disco de emergência no modo EFI . O disco de instalação do Ubuntu deve funcionar para isso.
  2. Se necessário, instale efibootmgr .
  3. Digite sudo efibootmgr -c -d /dev/sda -p 1 -l \EFI\ubuntu\grubx64.efi -L Ubuntu . Altere grubx64.efi para shimx64.efi se você estiver inicializando com o Secure Boot ativado. Altere -d /dev/sda para seu disco de inicialização se não for /dev/sda e altere -p 1 para o número de sua partição de sistema EFI (ESP). (O comando que forneci pressupõe que o ESP esteja em /dev/sda1 , o que parece ser o caso com base nas informações que você forneceu.)

A ferramenta Reparo de inicialização também pode corrigir o problema, mas tentará fazer mais do que simplesmente restaurar o entrada original do GRUB. Isso abre a possibilidade de causar danos por acidente, por isso, se você estiver confortável com a emissão de comandos do shell, recomendo executar efibootmgr manualmente para essa tarefa.

Também é possível fazer a mesma coisa usando o comando bcdedit do Windows ou o comando bcfg do shell EFI. A seção Instalando o rEFInd manualmente da minha documentação do rEFInd descreve como usar esses comandos para registrar o rEFInd com o firmware. Você deve conseguir adaptar facilmente esses comandos para o GRUB.

    
por Rod Smith 21.09.2013 / 19:18
1
Ao formular a pergunta, encontrei uma solução, embora não esteja convencido de que essa seja a maneira sugerida de lidar com o problema.

Primeiro eu iniciei uma unidade flash USB Ubuntu 12.04 de 64 bits no modo UEFI. Depois, montei os sistemas de arquivos do HDD na ordem correta (a seguir, substitua os nós do dispositivo pelos que são corretos para o seu sistema:

sudo -i #to get a root shell
mount /dev/sda4 /mnt           #Root partition
mount /dev/sda2 /mnt/boot      #Boot partition
mount /dev/sda1 /mnt/boot/efi  #efi partition

Então eu chrooted para o HDD agora montado:

mount -o bind /dev /mnt/dev    #make system folders available in chroot environment
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
chroot /mnt

Agora, há guias on-line que dizem para executar o grub-install com muitos argumentos sofisticados. Aquela pane do meu computador ... Finalmente, foi tão simples como correr

grub-install

sem nenhum argumento. Agora, se eu executar efibootmgr , recebo uma nova entrada chamada Ubuntu e coloco em cima da lista de opções de inicialização (e tendo o número 0000).

Após a reinicialização, o sistema funcionou novamente. Eu só estou com medo de que a próxima atualização do kernel, grub ou qualquer outra coisa que tenha a ver com a inicialização possa quebrar o sistema novamente ...

    
por soulsource 21.09.2013 / 12:32