grub rescue ls - nenhuma partição é mostrada?

0

Estou tentando criar um menu personalizado de grub para uma configuração de inicialização múltipla de UEFI Windows / Linux. Eu testei o menu com sucesso por meio de um drive USB, contendo:

/EFI/boot/BOOTX64.EFI
/grub/grub.cfg
/grub/x86_64-efi/*
…etc.

Ao inicializar a partir desta unidade, posso acessar o menu sem problemas. Em seguida, transfiro o grub para a partição do sistema EFI do meu PC:

/boot/grub/bootx64.efi
/boot/grub/grub.cfg
/boot/grub/x86_64-efi/*
…etc.

Também nessa partição está o bootloader do Windows, em /EFI/Microsoft/boot .

Por fim, uso o utilitário BOOTICE do Windows (ou apenas o BIOS do sistema) para adicionar uma entrada para \boot\grub\bootx64.efi . Eu reinicio e vem o grub.

... Exceto em vez de abrir o menu, acabo em um prompt de resgate. Minha suposição era que eu simplesmente colocaria grub.cfg & os módulos estão no lugar errado - no entanto, o que é realmente estranho é que ls não mostra partições - apenas (hd0) (hd1) . Minha expectativa era de algo como (hd0) (hd0,msdos1) , etc - mas o resgate do grub não consegue ls de nenhuma partição. ls (hd0) e ls (hd1) ambos produzem "Sistema de arquivos desconhecido".

Meu sistema contém um único disco físico, com partições:

1 = EFI system partition (fat32)
2 = Veracrypted partition (with Windows installation)
3 = Veracrypted partition (data)
4 = Linux swap
5 = Linux root
6 = Linux home

Por que o grub seria capaz de inicializar a partir da partição do sistema EFI - mas não conseguirá ver essa partição ou qualquer outra? E mais importante, como posso obter o seu menu funcionando a partir da unidade interna, como aconteceu com o USB?

    
por Metal450 12.10.2018 / 11:33

2 respostas

2

ls (hd0) significa que você está tentando acessar o disco inteiro como um único sistema de arquivos; se o disco estiver particionado de alguma forma, a mensagem (hd0): Filesystem is unknown. é normal e esperada.

Em vez disso, digite apenas ls (hd0 sem os parênteses de fechamento e pressione TAB. Se o GRUB puder identificar o tipo de particionamento, ele deverá listar as partições e seus tipos de sistema de arquivos, se eles forem conhecidos pelo GRUB.

Seu problema pode ser que o GRUB espera que seu arquivo de configuração esteja em <partition root>/grub/grub.cfg , não em <partition root>/boot/grub/grub.cfg e, da mesma forma, no diretório do módulo.

O arquivo GRUB bootx64.efi contém a imagem principal do GRUB, além de, opcionalmente, alguns dos módulos do GRUB. Se esse conjunto de módulos incorporados não incluir part_gpt , o GRUB não poderá reconhecer uma tabela de partição GPT, o que tornaria impossível acessar o sistema de arquivos que contém o restante dos módulos GRUB. Este seria outro motivo possível para entrar no modo de recuperação do GRUB.

    
por 12.10.2018 / 13:29
0

Graças às informações da telcoM sobre os módulos incorporados em bootx64.efi, consegui descobrir a solução: basicamente, em vez de copiar todos os arquivos grub que haviam sido grub-install 'ed no pendrive, tive que explicitamente grub-install diretamente para a partição do sistema interno.

Presumivelmente, quando o grub-install foi executado no dispositivo USB, ele viu que era um dispositivo particionado por MBR e não incorporou o módulo part_gpt no bootx64.efi, e por isso não foi capaz de reconhecer nenhuma partição interna - enquanto que quando o grub-install foi executado no disco interno, ele viu o GPT & incorporado esse módulo. Em ambos os casos, a solução não estava copiando os arquivos grub do pendrive, mas instalando diretamente na partição interna.

    
por 12.10.2018 / 20:49

Tags