Eu estava tentando resgatar o GRUB no Linux. Consegui fazer login no sistema operacional seguindo este tutorial:

https://www.lisenet.com/2014/grub2-rescue-mode-error-unknown-filesystem/

Preciso atualizar o GRUB para corrigir o problema. No entanto, quando executo grub-install, recebo um erro:

$ grub-install /dev/sda grub-install: error: cannot find EFI directory. 

Meu sistema de arquivos contém sda4, sda5 e sda6 para o sistema EFI, troca do Linux e sistema de arquivos Linux, respectivamente.

Não tenho muita experiência no uso de montagem ou outros comandos.

Resposta

Quando você executa grub-install por padrão, assume que o sistema EFI está montado como / boot / efi

Depende da sua distribuição onde o sistema EFI é montado e em algumas distribuições ele não é montado após a inicialização.

Primeiro verifique se / boot / efi está montado com

mount | grep /boot/efi 

Se isso não funcionar, tente primeiro o seguinte para ver se está montado em outro lugar.

mount | grep /dev/[efi device] 

Se nenhum desses funcionar:

mount /dev/[efi device] /mnt 

Agora execute:

grub-install --efi-directory=[efi dir] grub-mkconfig -o /boot/grub/grub.cfg 

onde [dir efi] é / boot / ef i ou / mnt e [dispositivo efi] é o dispositivo com a partição do sistema EFI. Se você não souber, use o comando lsblk -o NAME,PARTTYPE,MOUNTPOINT | grep -i "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"

Comentários

  • Obrigado, no grub-install --efi-directory=/boot/EFI enquanto eu chroot em /mnt.
  • Talvez Q estúpido, mas eu não ' t tem um diretório EFI. Onde consigo um? Quer dizer, ele deve conter arquivos, qual comando pode recriá-lo?
  • @LennartRolland Se você tiver um sistema compatível com UEFI, então a unidade do seu sistema irá ser particionado por GPT e contém uma partição do sistema " UEFI. " geralmente a primeira partição e será do tipo EF00. Muitas distribuições serão montadas isso por padrão como / boot / efi permite que o carregador de inicialização GRUB atualize seus arquivos. também pode ter um sistema UEFI, mas que está usando o modo legado, o que significa que suas partições serão do tipo msdos e você não ' ter a / boot / efi. Existem configurações mais estranhas, mas isso cobre a maioria delas.
  • Suas instruções se o EFI não estiver montado estão erradas. Veja minha edição. mount | grep /dev/sda6 não ' não funciona. Se o EFI não estiver montado, você deve verificar o tipo das partições.
  • @giusti Provavelmente melhor apenas não fazer referências a nomes de dispositivos específicos.

Resposta

O modo de resgate do Grub pode ser tratado como

set root=(hd0,gpt6) set prefix=(hd0,gpt6)/boot/grub insmod normal normal 

Depois de fazer login, digite sudo update-grub && sudo grub-install /dev/sda.

Comentários

  • O grub-install não deveria ter concluído antes de update-grub?
  • quando digitei o primeiro comando, obtive " bash: erro de sintaxe quase inesperado token `(' "
  • @ Outro. Químico: os comandos fornecidos devem ir para o console interativo do GRUB, eu acho. Isso seria antes do kernel inicializar. Seu erro parece que você digitou os comandos no Bash.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *