Quero abordar alguns equívocos na sua pergunta antes de prosseguir para uma resposta mais direta ao seu ponto principal. Por favor, tenha paciência comigo ...
% bl0ck_qu0te%Em um computador baseado em EFI, os carregadores de boot são armazenados como arquivos comuns na partição do sistema EFI (ESP) . O computador sabe qual arquivo (s) deve ser iniciado quando iniciado devido a entradas armazenadas na NVRAM, que identificam a (s) partição (s) e o (s) arquivo (s) a serem executados. Não existe uma "partição de inicialização padrão" no EFI; é assim que o BIOS é inicializado, não o EFI.
% bl0ck_qu0te%Sob o EFI, os "setores de inicialização" não existem - ou, para ser mais preciso, o código de inicialização não é armazenado nos primeiros setores de discos ou partições. Tudo é tratado por meio de arquivos e referenciado por entradas na NVRAM.
% bl0ck_qu0te% Você não selecionou uma partição; você selecionou um arquivo do carregador de inicialização. De sua descrição, meu palpite é que você selecionou EFI/ubuntu/grubx64.efi
no seu ESP. Isso começa a chegar ao problema, mas vou voltar a esse ponto ....
Você não possui um BIOS; você tem um EFI. Eu sei que muitas pessoas, e até fabricantes, se referem a EFIs como BIOS, mas isso apenas leva a confusão, porque encoraja as pessoas a arrastar as suposições do BIOS sobre o processo de inicialização, como você fez.
% bl0ck_qu0te%Não confunda o EFI (ou UEFI, que é apenas o EFI 2.x) e o Secure Boot. Secure Boot é apenas um recurso opcional do UEFI. A EFI, por sua vez, é uma substituição para o BIOS. Muitas EFIs (e até mesmo UEFIs) não têm suporte ao Boot Seguro - mas o Boot Seguro requer UEFI.
% bl0ck_qu0te% Para suportar o Secure Boot, o Ubuntu usa um programa chamado Shim. No Ubuntu, tem um nome de arquivo de shimx64.efi
. Shim é codificado para iniciar o GRUB ( grubx64.efi
), que pode então chamar o Shim para autenticar os kernels do Linux.
Note que anteriormente eu escrevi que você provavelmente lançou grubx64.efi
. Isso funcionará bem com o Secure Boot desativado; mas se você ativar a Inicialização Segura, as chances são de que grubx64.efi
não corresponda aos requisitos padrão de Inicialização Segura, por isso ela falhará. shimx64.efi
, OTOH, é assinado pela Microsoft (cujas chaves estão presentes em praticamente todos os computadores) e, portanto, funcionará. Esta é a chave (trocadilho não desejado, mas é a melhor palavra) para a solução: Reconfigurar seu sistema para inicializar via Shim. Você pode fazer isso no Ubuntu usando o utilitário efibootmgr
. Primeiro, veja suas opções disponíveis usando sudo efibootmgr -v
:
$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0007,0003,2003,0001,2001,2002
Boot0000* ubuntu HD(2,1f4800,82000,5f6b4992-fcfe-4a2c-9e67-98b0a30dfe7d)File(\EFI\ubuntu\shimx64.efi)
Boot0001* Lenovo Recovery System HD(3,276800,1f4000,de3b7563-97f5-48c6-ab7f-2f5d6d57c644)File(\EFI\Microsoft\Boot\LrsBootMgr.efi)RC
Boot0002* EFI Network 0 for IPv4 (08-9E-01-FF-CA-4D) ACPI(a0341d0,0)PCI(1c,0)PCI(0,0)MAC(089e01ffca4d,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0RC
Boot0003* ubuntu HD(2,1f4800,82000,5f6b4992-fcfe-4a2c-9e67-98b0a30dfe7d)File(\EFI\ubuntu\grubx64.efi)RC
Boot0004* EFI Network 0 for IPv6 (08-9E-01-FF-CA-4D) ACPI(a0341d0,0)PCI(1c,0)PCI(0,0)MAC(089e01ffca4d,0)030d3c000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000RC
Boot0007* Windows Boot Manager HD(2,1f4800,82000,5f6b4992-fcfe-4a2c-9e67-98b0a30dfe7d)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Este é apenas um exemplo, e é provável que o seu seja diferente de maneiras significativas. Observe, no entanto, que existem duas entradas ubuntu
, uma das quais se refere a shimx64.efi
e a outra se refere a grubx64.efi
. É provável que você esteja inicializando por meio da entrada grubx64.efi
, conforme mostrado na linha BootCurrent
. A entrada grubx64.efi
provavelmente é a primeira na linha BootOrder
também. Para mudar isso, você deve criar um novo BootOrder
usando a opção -o
para efibootmgr
, como em:
sudo efibootmgr -o 0000,0007
Você também pode adicionar outras opções, que o computador usará se as duas primeiras falharem. É claro, você deve especificar os números associados às suas entradas Shim e GRUB, não 0000,0007
(a menos que esses sejam os números). Note também que eu especifiquei a entrada Shim primeiro com a entrada GRUB como um fallback no caso de uma falha; em teoria, especificando somente a entrada Shim deve funcionar bem. É melhor incluir seu valor atual de BootCurrent
como segunda (ou posterior), já que você sabe que ele funciona com o Secure Boot desativado. Dessa forma, se você cometer um erro ou se o seu binário Shim estiver quebrado, você ainda deve ser capaz de desabilitar o Secure Boot e voltar ao seu sistema operacional usando o gerenciador de boot interno do computador ou ajustando a ordem de inicialização em outro maneira.
Uma vez que você tenha feito isso, reinicialize seu firmware e reative o Secure Boot. deve funcionar bem a partir desse ponto.