Como conseguir que a placa mãe da Asus reconheça a partição do sistema EFI?

0

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 GTP principal (kingston) e outro 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 do parted. Para 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 ...)

Combasenofatodequeatag"UEFI" não está presente no disco da Kingston, acho que a Asus não detectou esse 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 inicializar a partir do disco de qualquer maneira, sou 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: 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 dos dados e fazer uma reinstalação completa, mas quero tentar resolver isso da maneira correta primeiro.

    
por KingWilliam 30.10.2016 / 13:26

1 resposta

4

Primeiro, alguns pontos-chave sobre a inicialização 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, juntamente com uma lista de prioridades do que deve ser inicializado primeiro.
  • Os gerenciadores de inicialização EFI instalados pelos sistemas operacionais são arquivos armazenados no ESP. Portanto, você não "inicializa um disco" ou "inicializa uma partição" da maneira como faz na BIOS; você inicializa um arquivo .
  • Uma exceção parcial ao acima: Há um nome de arquivo especial fallback ( EFI/BOOT/bootx64.efi para sistemas x86-64) que pode ser iniciado se nenhuma outra entrada for válida. Esse nome de arquivo foi originalmente planejado para uso em mídia de instalação (CDs, unidades flash USB, etc.), mas também pode ser usado em ESPs em discos rígidos.
  • Muitas (e 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, pode alterar o valor GUID da partição, que é usado 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 que o sistema de arquivos esteja acessível, com a entrada de inicialização baseada em NVRAM desativada, você não pode 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.

Feito isso, 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 ; no entanto, shimx64.efi deve funcionar com ou sem o Secure Boot ativado, por isso é melhor usá-lo, a menos que não funcione. Observe também as barras duplas invertidas ( \ ) como separadores de diretório; EFI usa barras invertidas no estilo DOS / Windows ( \ ) em vez de barras do tipo Unix / Linux ( / ) como separadores de diretório, e as barras invertidas devem ser duplicadas ou colocadas entre aspas no Bash porque são usadas como escape personagens no Bash. (Ouvi dizer que as versões recentes do efibootmgr podem 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 duplicadas.)

Uma ressalva: Se o seu Disco Super GRUB estiver sendo inicializado no modo BIOS / CSM / legado, efibootmgr não 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ê pode usar meu gerenciador de inicialização do rEFInd no disco flash USB ou CD-R para inicializar o Ubuntu no modo EFI, então use efibootmgr para reativar o GRUB.

    
por 30.10.2016 / 18:30