Acontece que não é como está, mas é com esforço extra preliminar .
O que eu fiz
- Inicialize a partir do Linux LiveUSB, monte
/dev/sda3
(partição Linux com grub),mv /boot/grub /boot/grib
(ou qualquer coisa, apenas para que o estágio 1.5 não consiga mais encontrar o estágio 2) - Reinicialize a partir do HDD, o grub, sem surpresa, não carrega o estágio 2 e retorna ao modo de recuperação do grub
- No entanto, o modo de recuperação tem apenas um suporte mínimo, por exemplo, você pode executar
insmod part_msdos
, mas neminsmod ntfs
, nemchainloader +1
e assim por diante. Ele tem suporte paraext4
, embora (é claro). - Consegui carregar manualmente todos os módulos necessários (usando o caminho completo como
insmod (hd1,msdos3)/boot/grib/i386-pc/ntfs.mod
ou simplesmente definindo o prefixo primeiro:set prefix=(hd1,msdos3)/boot/grib
e usando caminhos relativos depois disso:insmod ntfs
) - Você pode facilitar um pouco sua vida carregando o módulo normal e, em seguida, inserindo
normal
, que leva o grub do modo de recuperação para a linha de comando do grub. A partir daí, você pode carregar novamente todos os módulos necessários (por exemplo, o módulo chainloader também deve ser carregado) - Finalmente, carregue Win10 (ou qualquer outra coisa) replicando a mesma seqüência de comando exata de
grub.cfg
Solução
Então, considerando tudo isso, acredito que seja uma correção temporária simplesmente copiar todo o diretório i386-pc
para um USB separado e carregar os módulos manualmente, conforme necessário. Apenas certifique-se de que o USB separado esteja formatado como MBR e tenha uma partição ext4
.
Atualização: de fato funciona. Simplesmente formatar um dispositivo USB como MBR, criar uma partição ext4
e copiar (corretamente configurado) /boot/grub/
da instalação anterior faz o truque. Quando o grub voltar ao resgate, basta digitar set prefix=(hdX,msdosY)/boot/grub
(onde X
é o número da sua unidade USB e Y
é a partição correspondente), então insmod normal
e normal
. É isso aí, grub stage 2 carrega e funciona muito bem.