Laptop não parece mais estar inicializando a partição EFI - Dual boot of Arch ao lado do Win 10

0

Há algum tempo atrás eu instalei o Arch Linux junto com o Windows 10 no meu Dell XPS15, tudo parecia estar funcionando bem, mas recentemente meu laptop está subitamente reiniciando diretamente no Windows e pulando o menu systemd-boot.

Eu criei um Arch USB inicializável e olhei para as partições EFI e Arch e tudo parecia inalterado, tentei procurar opções de seqüência de inicialização nas configurações da BIOS e a única opção é o SSD como um todo e não consigo selecionar partições específicas para inicializar.

Alguém sabe o que poderia ter causado essa mudança repentina? Alguém já teve um problema semelhante, e alguém sabe como posso corrigir isso?

Aqui está uma captura de tela do meu gerenciador de disco do Windows, notei que a partição do Windows está definida com o sinalizador de inicialização, não tenho certeza se é para ser assim? Isso ajuda em tudo?

    
por arch 12.04.2017 / 16:36

2 respostas

0

Eu descobri o problema, eu havia selecionado o carregador EFI padrão no menu systemd-boot e, por algum motivo, havia mudado o arquivo efi que inicializava para minhas cargas SSD. Eu corri com os seguintes passos:

  1. Iniciado no Arch em um USB inicializável
  2. Montou minha partição EFI
  3. Usado o bootctl para ver cada uma das entradas de inicialização atuais
    • isso confirmou o que eu tinha pensado: havia uma entrada para o meu SSD que foi configurado para carregar o arquivo EFI do Windows
  4. Voltei para o menu no Arch USB inicializável
  5. Selecionado o UEFI Shell v2
  6. Usado o bcfg para adicionar uma nova entrada de inicialização apontando para o arquivo efi systemd-boot
    • (Deets sobre como fazer isso aqui: link )
  7. Defina a nova entrada de inicialização na parte superior da sequência de inicialização no meu BIOS.

Feito.

    
por 21.04.2017 / 21:02
0

Informações básicas

I've tried looking a boot sequence options in BIOS settings and the only option is the SSD as a whole and i cannot select specific partitions to boot to.

Você está operando de forma equivocada - você parece pensar que o EFI está pronto para partições, mas isso não é verdade. Em EFI, as entradas de inicialização são armazenadas na NVRAM e essas entradas apontam para arquivos . Você pode ter um, dois, dez, cem ou mais programas de inicialização em um único partição, ou se espalhe em tantas partições quantas quiser. Se você pensar em um EFI como inicializando um disco ou uma partição, é provável que você tire conclusões incorretas e tente consertar as coisas de formas completamente inadequadas.

Uma exceção parcial a essa regra é o nome de arquivo de fallback, EFI/BOOT/bootx64.efi (ou variantes para outros tipos de CPU). Este é o nome do arquivo que a EFI tentará inicializar se não encontrar mais nada disponível. Ele foi originalmente concebido para ser usado em mídia removível, mas os EFIs modernos (quase?) Sempre o reconhecem nos ESPs dos discos rígidos também. Isso pode ser uma ferramenta útil para solucionar problemas de inicialização, como, por exemplo, se o firmware esquecer suas entradas de inicialização comuns - como parece ter acontecido com você. Observe também que muitas EFIs tratam o carregador de inicialização do Windows, EFI/Microsoft/Boot/bootmgfw.efi , como um nome de arquivo de fallback. Isso pode impedir a inicialização do Windows mesmo quando as configurações de firmware do computador estiverem desordenadas - mas é claro que isso não ajuda em nada os usuários do Linux.

I've noticed that the Windows partition is set with the Boot flag, I'm not sure if it is meant to be like this?

AFAIK, o Windows ignora o "sinalizador de inicialização" nos discos GPT. Além disso, tenha em atenção que o "sinalizador de arranque" comunicado pela ferramenta do Windows cuja captura de ecrã demonstrou e o "sinalizador de arranque" indicado por parted e GParted no Linux são coisas completamente diferentes! nas ferramentas do Linux, esse "sinalizador" é sinônimo de um código de tipo do ESP em discos GPT.

Uma resposta mais direta

Resumidamente, você está encontrando o que eu chamo de golpe de inicialização. Veja esta página minha para mais sobre este assunto. Você pode corrigi-lo no Windows usando a ferramenta EasyUEFI para restaurar a entrada do Arch Linux no início a ordem de inicialização; no entanto, você diz que o gerenciador de inicialização do seu firmware não está mostrando nenhuma entrada específica do sistema operacional. (A entrada de disco inteiro mencionada pode iniciar um carregador de boot de fallback ou inicializar o sistema no modo BIOS / CSM / legacy; não posso ter certeza de qual sem ver a entrada e talvez tentar ver o que acontece quando ela é usada. Isso sugere que seu golpe de boot foi causado pelo firmware "esquecer" suas entradas NVRAM completamente. Isso pode acontecer por causa de um bug em um sistema operacional, um bug no firmware, erro do usuário, falha de hardware, etc. A melhor solução é criar uma nova entrada EFI NVRAM usando efibootmgr . Veja a efibootmgr entrada no wiki do Arch para mais informações sobre este assunto. Em resumo, você usaria um comando como esse (tirado do wiki do Arch):

# efibootmgr --create --disk /dev/sda --part 1 --loader /EFI/refind/refind_x64.efi --label "rEFInd Boot Manager"

Você precisaria alterar o ID do disco, o número da partição, o nome do arquivo e o rótulo do seu próprio sistema. Você pode digitar este comando em qualquer sistema Linux de emergência inicializado no modo EFI; ou se você puder fazer o boot da sua instalação principal (por exemplo, usando meu Erro gerenciador de boot em um disco removível), você pode digitá-lo na sua instalação principal. Como alternativa, você pode usar o EasyUEFI para criar uma entrada equivalente.

Se o seu sistema regularmente esquece suas entradas NVRAM, pode ser melhor usar um nome de arquivo de fallback; no entanto, como o Linux e o Windows com dupla inicialização, isso pode ser complicado - se o firmware favorece a entrada do carregador de inicialização do Windows em relação ao nome de arquivo oficial de fallback, a única maneira de fazê-lo funcionar de forma confiável será "seqüestrar" o Windows boot loader, colocando o seu carregador de boot do Linux ou o gerenciador de boot em seu lugar e, em seguida, iniciando a ferramenta do Windows a partir de outro local. O Windows pode, eventualmente, reinstalar seu próprio gerenciador de inicialização para esse local, colocando você de volta onde você está agora. Essa é uma das razões pelas quais aconselho as pessoas a devolverem computadores defeituosos que esquecem ou ignoram suas entradas de inicialização NVRAM para a loja para um reembolso sempre que possível. Infelizmente, isso geralmente não é possível, uma vez que esse defeito geralmente é descoberto meses após a compra do computador.

    
por 13.04.2017 / 18:55