O TL; DR, adicionado na edição:
A questão é:
Como posso fazer com que o BIOS prefira o GRUB ao Windows Boot Manager na mesma partição de inicialização UEFI?
O problema não está no Grub; O Grub faz a coisa certa quando o BIOS o inicia. O problema não está em "o disco não é inicializável", porque a inicialização do Windows UEFI e a inicialização do Grub UEFI são inicializáveis. O problema é de qual UEFI a inicialização do BIOS escolhe para inicializar.
Estou configurando um novo computador e quero que ele seja inicializado por padrão no Ubuntu, mas tenho a opção de selecionar o Windows na inicialização. Isso é especialmente importante se a energia acabar e voltar; Eu nem estarei em casa.
Comecei instalando o Ubuntu 17.04 no meu disco interno do NVMe, particionado com GPT para usar metade do disco e uma partição de inicialização UEFI separada. O GRUB é inicializado com perfeição e vejo o menu de inicialização do GRUB na inicialização, onde posso selecionar os itens que o GRUB conhece.
Em seguida, instalei o Windows 10 Pro a partir de uma ISO baixada recentemente. Ele instalou o Windows Boot Manager na mesma partição UEFI e deixou o Ubuntu intacto (ótimo!) E ele é inicializado perfeitamente no Windows 10.
No entanto, ele fez "algo" que faz com que o firmware UEFI selecione imediatamente o Gerenciador de Inicialização do Windows em vez do GRUB na inicialização. A única maneira de inicializar o Linux agora é usar o gerenciador de inicialização do BIOS (F11 no meu BIOS) e selecionar o carregador de inicialização GRUB manualmente. O UEFI BIOS sabe que existem várias instalações inicializáveis na partição UEFI, porque eu posso escolher entre elas no gerenciador de inicialização. No entanto, quando estou no menu de configuração no UEFI BIOS, ele apenas permite escolher "UEFI boot my internal drive" na seleção de prioridade de inicialização - não me permite escolher qual carregador de inicialização específico nessa partição usar . E, por padrão, ele escolhe o Windows, não o GRUB.
As internets (e este site) sugerem que a maneira antiga de corrigir isso é executar update-grub
(para que o GRUB reconheça o Windows) e depois grub-install
(para colocar o GRUB novamente no dispositivo.) Fiz isso, mas, infelizmente, ele ainda tem o comportamento de: descrito acima, onde o BIOS, por padrão, escolhe o Windows Boot Manager. ( update-grub
encontra a instalação do Windows Boot Manager e a adiciona ao menu, e esse item de menu funciona quando escolho manualmente a partição GRUB no gerenciador de inicialização UEFI.)
O que posso fazer para tornar o GRUB a inicialização "padrão" na minha partição de inicialização UEFI?
Usando uma placa-mãe MSI X399 Carbon.
Segunda edição: como a resposta correta acaba sendo mencionada em um comentário a uma resposta, repetirei aqui:
"BCDEDIT" in an admin shell on Windows is the working solution. The others don't work.