Eu escrevi um script bash que adiciona Grub Entry ao UEFI NVRAM. Os scripts são invocados pelo Linux USB inicializável. Este comando adiciona entrada:
efibootmgr -c -d /dev/sda -p 2 -L "Grub2" -l "\EFI\Boot\shimx64.efi"
O script funciona corretamente. Mais tarde, porém, instalei o Windows a partir da imagem Partclone.
O Windows substitui a ordem de inicialização e adiciona uma nova entrada. Isso acontece durante o carregamento do Windows. Após a reinicialização, o Grub2 desaparece.
Não quero fazer alterações no Windows (bcdedit bootmgr), pois tenho imagem pronta (feita por partclone)
É possível desabilitar o acesso do Windows à UEFI NVRAM? É possível executar o Windows From Grub EFI (inicialização segura) sem o gerenciador de inicialização do Windows (quero dizer diretamente winload.efi)?
Você tem alguma ideia?
Responder1
Não conheço uma maneira de impedir que o Windows grave na NVRAM e modifique variáveis EFI; no entanto, há outras coisas que você pode fazer....
Veja minha resposta paraessa questãopara algumas ferramentas que podem ajudar. bcdedit
é mais provável que seja útil neste aspecto. Você também pode tentarFácil UEFI, que eu não usei quando escrevi a resposta anterior.
Outra opção seria criar scripts de inicialização e/ou desligamento do sistema que restaurassem automaticamente a configuração de inicialização desejada. Você usaria bcdedit
isso no Windows, mas não sou usuário do Windows o suficiente para fornecer detalhes. É improvável que seja necessário fazer isso no Linux, já que o Linux não é o culpado; mas se fosse, você poderia usar efibootmgr
- ou para um toque um pouco mais leve, você poderia usar orefind-mkdefault
script, que adicionarei à próxima versão do rEFInd. Por padrão, este script define rEFInd como o programa de inicialização padrão, mas se você passar o nome (nome do arquivo ou descrição) de outra ferramenta por meio da -L
opção, o script irá defini-lo como padrão.
Na pior das hipóteses, você pode renomear ou mover o arquivo do carregador de inicialização do Windows ( EFI\Microsoft\Boot\bootmgfw.efi
no ESP) para outra coisa e colocar o Shim em seu lugar, com uma cópia do GRUB lá. Isso fará com que o GRUB seja iniciado em vez do carregador de inicialização do Windows. No entanto, você precisará reconfigurar a configuração do GRUB para iniciar o carregador de inicialização do Windows corretamente. OReparo de inicializaçãoferramenta pode fazer isso automaticamente; a opção está no menu Avançado e é chamada de algo como "fazer backup e substituir arquivos de inicialização do Windows" (não me lembro do nome exato). A principal desvantagem dessa abordagem é que, se e quando o Windows atualizar seu carregador de inicialização, você precisará reaplicar essa correção. Também é confuso; os nomes dos arquivos do disco e as entradas de inicialização NVRAM serão enganosos, o que poderá complicar reparos futuros.