Se efibootmgr
estiver criando uma entrada como você descreve ( VenHw(99E275E7-75AO-4B37)
), isso soa como um erro em efibootmgr
ou no firmware. Dito isso, considere o comando efibootmgr
que você especificou:
efibootmgr -c -d /dev/nvme0n1 -p 1 -l /EFI/refind/refind_x64.efi -L "rEFInd"
Existem duas coisas que são incomuns sobre isso:
-
Dispositivo de disco - A maioria dos dispositivos de disco no Linux tem nomes no formato
/dev/sd?
, em que?
é uma letra dea
up. Alguns dispositivos, como alguns cartões SSD, possuem nomes de arquivos que assumem outros formatos, como/dev/mmcblk0
(que vem da memória e pode não estar certo). Não me lembro de ver um nome de dispositivo como/dev/nvme0n1
. Isso não quer dizer que é errado, mas pelo menos é incomum, e você deve verificar novamente. Eu tomaria muito cuidado para não incluir o número da partição - é para isso que a opção-p
paraefibootmgr
é. -
Especificação de arquivo - Versões mais antigas de
efibootmgr
exigem que os arquivos sejam especificados usando a sintaxe EFI - ou seja, com barras invertidas (\
) em vez de barras (/
) separando entradas de diretório. Como os shells do Linux geralmente tratam as barras invertidas de maneira única, isso também exige que o nome de caminho inteiro seja citado ou duplicado nas barras invertidas, portanto, você deve especificar-l \EFI\refind\refind_x64.efi
ou-l "\EFI\refind\refind_x64.efi
. Ouvi dizer que as versões mais recentes deefibootmgr
aceitarão um formulário Unix / Linux mais tradicional e "traduzirão" internamente, mas não sei exatamente quando esse recurso foi adicionado, e você não disse qual versão de Ubuntu você está usando. Assim, eu recomendo que você use barras duplas invertidas ou citadas ao invés de barras.
Como uma questão prática, é claro, se você tem uma entrada de trabalho via bcfg
, não deve fazer mais nada com efibootmgr
. Eu suponho que você esteja perguntando, porque deve funcionar e porque você quer ser capaz de executar este tipo de manutenção do Ubuntu.