Como obter placa-mãe Asus para reconhecer a partição do sistema EFI?

1

Há pouco tempo, decidi redimensionar minha partição EFI. Não pergunte por que ... Desde então, eu não consigo mais inicializar normalmente. Para redimensionar, usei o gparted e mudei para o tamanho da partição para 268MB. Depois de ser incapaz de arrancar eu mudei de volta para o original 512MB sem sucesso. Agora estou inicializando meu sistema através do Super Grub Disk.

Eu tenho dois discos no meu sistema. 1 disco GPT principal (kingston) e um com MBR (WD) apenas para dados. Ignore o MBR. Você também verá um stick USB Transcend segurando o Super Grub Disk.

Meu layout atual para o disco principal é o seguinte:

sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Disk /dev/sda: 234441648 sectors, 111.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): EA79EA21-C913-462F-9A23-9CD5D1E74496
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 234441614
Partitions will be aligned on 2048-sector boundaries
Total free space is 2925 sectors (1.4 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   EF00  EFI System Partition
   2         1050624         1550335   244.0 MiB   8300  
   3         1550336       234440703   111.1 GiB   8E00  

Então eu claramente tenho o ESP em / dev / sda. Esta é a saída de parted. Para lhe dar algumas informações sobre os detalhes da partição:

(parted) print
\Model: ATA KINGSTON SH103S3 (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name                  Flags
 1      1049kB  538MB  537MB  fat32        EFI System Partition  boot, hidden, esp
 2      538MB   794MB  256MB  ext2
 3      794MB   120GB  119GB                                     lvm

Agora, para o problema de inicialização ... Quando eu inicio o meu BIOS, eu recebo as seguintes opções de inicialização: (desculpe por ter que usar fotos ...) Boot options

Baseado no fato de que a tag "UEFI" não está presente no disco da Kingston, acho que a Asus não detectou este disco como GPT / EFI. Certamente, uma vez que está presente para a minha unidade flash SuperGrubDisk (que também é GPT com um ESP).

Ao tentar arrancar a partir do disco de qualquer maneira Im apresentado com uma tela preta. Isso me faz supor que está tentando inicializar a partir do MBR, que não tem nada de útil nele.

Então, quando eu inicio o disco super grub, eu obtenho as seguintes opções: Grub options Então, parece que o ESP está bem ali no HD1, GPT1 como esperado, e isso funciona perfeitamente bem.

Eu já mostrei a última versão do firmware na esperança de resolver isso. Meu último recurso é fazer o backup de dados e fazer uma reinstalação completa, mas quero tentar resolver isso da maneira correta primeiro.

KingWilliam
fonte
Eu me pergunto por que isso foi rebaixado. Eu ficaria feliz em melhorar a questão se me dissessem o que mudar.
KingWilliam

Respostas:

5

Primeiro, alguns pontos-chave sobre o boot no modo EFI:

  • O firmware da EFI inclui um gerenciador de inicialização que mantém uma lista de arquivos e dispositivos inicializáveis ​​na NVRAM, junto com uma lista de prioridades do que deve ser inicializado primeiro.
  • Carregadores de inicialização EFI instalados por SOs são arquivos armazenados no ESP. Assim, você não "inicializa um disco" ou "inicializa uma partição" como faz na BIOS; você inicializa um Arquivo .
  • Uma exceção parcial ao acima: há um especial cair pra trás nome do arquivo ( EFI/BOOT/bootx64.efi para sistemas x86-64) que podem ser iniciados se nenhuma outra entrada for válida. Esse nome de arquivo foi originalmente planejado para uso na mídia de instalação (CDs, unidades flash USB, etc.), mas também pode ser usado em ESPs em discos rígidos.
  • Muitas (mas não todas) EFIs removem automaticamente as entradas de inicialização de seus gerenciadores de inicialização internos quando detectam que as entradas não são mais válidas.
  • O redimensionamento de partições FAT não é confiável, na minha experiência, e às vezes resulta no sistema de arquivos se tornar ilegível para alguns ou todos os sistemas operacionais. (Para o propósito deste ponto, o EFI é um sistema operacional.)
  • Mesmo que o redimensionamento seja bem-sucedido, poderá alterar o valor GUID da partição, que é usada como parte do caminho para o carregador de boot na configuração do gerenciador de inicialização da EFI.

Colocando todos os itens acima juntos, minha suspeita é que quando você redimensionou seu ESP, você tornou o gerenciador de inicialização do Ubuntu inacessível ao firmware, que então o excluiu do seu gerenciador de boot integrado. Redimensionar a partição de volta ao seu tamanho original pode ou não ter corrigido o problema de acesso, mas mesmo se o sistema de arquivos estiver acessível, com a entrada de inicialização baseada em NVRAM desativada, você não poderá mais inicializar o gerenciador de inicialização - pelo menos não sem pular alguns aros extras, como usar o Super GRUB Disk.

Como primeiro passo para corrigir seu problema, recomendo que você execute dosfsck (ou alguma ferramenta equivalente de outro sistema operacional) no ESP. Isso deve corrigir qualquer problema persistente no sistema de arquivos.

Com isso feito, você precisa criar uma nova entrada NVRAM para a entrada de inicialização. A maneira menos intrusiva de fazer isso é usar efibootmgr do Linux, bcfg de um shell EFI, EasyUEFI ou bcdedit do Windows ou alguma ferramenta semelhante. Desde que você pode iniciar o Ubuntu agora, o seguinte comando deve fazer o truque:

efibootmgr -c -d /dev/sda -p 1 -l \\EFI\\ubuntu\\shimx64.efi -L ubuntu

Se você estiver inicializando com o Secure Boot desativado, poderá alterar shimx64.efi para grubx64.efi; Contudo, shimx64.efi deve funcionar com ou sem o Secure Boot ativado, por isso é melhor usá-lo, a menos que ele não funcione. Observe também as barras invertidas duplas ( \\ ) como separadores de diretórios; A EFI usa barras invertidas no estilo DOS / Windows ( \ ) em vez disso, barras do tipo Unix / Linux ( / ) como separadores de diretórios, e as barras invertidas devem ser duplicadas ou colocadas entre aspas no Bash porque elas são usadas como caracteres de escape no Bash. (Eu ouço que versões recentes de efibootmgr pode converter barras em barras invertidas, mas não sei a versão em que essa alteração apareceu, portanto é mais seguro usar as barras invertidas duplas.)

Uma ressalva: Se o seu Super GRUB Disk estiver sendo inicializado no modo BIOS / CSM / legado, efibootmgr não vai funcionar. Se isso for verdade, você precisará fazer o procedimento acima usando um disco de emergência do Linux inicializado no modo EFI / UEFI. Alternativamente, você poderia usar meu rEFInd gerenciador de boot em disco flash USB ou CD-R para inicializar o Ubuntu no modo EFI, então use efibootmgr para reativar o GRUB.

Rod Smith
fonte
Obrigado pela explicação detalhada. Eu já tentei adicionar uma nova entrada com efibootmgr, mas certamente vou tentar todas as suas sugestões e comentar com novas descobertas.
KingWilliam
Eu acabei de fazer um fsck.fat. Ele consertou o bit 'sujo' que aparentemente estava no sistema de arquivos, mas isso não resolveu o problema. Eu já tinha tentado a solução efibootmgr. Eu tentei de novo hoje, mas ainda o mesmo resultado.
KingWilliam
1
Eu decidi mergulhar no shell EFI e tentar fazer a entrada de inicialização a partir daí. Aqui descobri que minha partição EFI não está montada! Somente meu USB inicializável é listado como FS0. Para minha partição EFI real, vejo apenas BK7. Tenho certeza de que esse será o problema. Eu não tenho idéia, no entanto, porque ele não monta minha partição EFI, como é apenas FAT32.
KingWilliam