Infelizmente, não tenho uma placa-mãe (U) EFI para testar isso, então, por favor, trate esta resposta como ponteiros na direção certa com o seu problema.
De acordo com o manual do efibootmgr, é possível forçar uma alteração única da ordem de inicialização (U) EFI usando o parâmetro -n.
Você pode listar as IDs de configuração e de inicialização atuais emitindo efibootmgr
sem nenhum parâmetro.
No lado do Windows, de acordo com isso em um sistema (E) O bootcfg do sistema EFI é capaz de mappnig e manipular a matriz NVRAM BootOrder de (U) EFI.
bootcfg /query
listará a configuração atual e você poderá usar os IDs para definir a nova opção padrão com
bootcfg /default /ID <ID>
Eu não sei como você está planejando mudar de um "loop de boot" para outro, mas estou assumindo que você está usando a GUI (você escreveu um BIOS que parece confuso no contexto de (U) EFI; )) da sua placa-mãe ou do shell (U) EFI.
Eu faria o seguinte:
- verifique se é possível manipular o BootOrder em ambos os sistemas da sua motherboard
- atribua um script de desligamento que configure o (E) EFI apropriadamente
- no Windows, você pode especificá-lo na Diretiva de Grupo Local (
gpedit.msc
) em Configuração do Computador / Configurações do Windows / Scripts (Inicialização / Desligamento) / Encerramento - no Ubuntu você pode colocar seu script em
/etc/init.d
(lembre-se sobrechmod +x
) e simbolicamente vinculá-lo a/etc/rc0.d
(reboot) e / ou/etc/rc6.d
(shutdown)
- no Windows, você pode especificá-lo na Diretiva de Grupo Local (
Se a manipulação do BootOrder não funcionar no Windows, você pode usar o método efibootmgr
para definir apenas o próximo item de inicialização do Ubuntu e manter o Windows como padrão.