Depois de passar horas depurando um problema onde systemd-boot
comecei a pular o menu de inicialização e, em geral, ignorar o arquivo de configuração /loader/loader.conf
(na partição EFI), descobri que posso invocar o menu de inicialização pressionando alguma tecla na inicialização, e que o O problema é causado por determinada variável EFI que aparentemente criei inadvertidamente. (Não sei como isso aconteceu, mas o problema apareceu logo depois de reinstalar o Ubuntu 18.04.1 em uma partição.)
Em particular, descobri que a variável foi LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
definida de 0
alguma forma, o que substituiu o tempo limite definido em /loader/loader.conf
, e também tive a variável LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
definida, que substituiu a entrada de menu padrão definida em /loader/loader.conf
.
Veja a parte inferior"Gerenciador de inicialização UEFI systemd-boot"página em freedesktop.org para a lista de variáveis EFI usadas por systemd-boot
. Seus valores podem ser inspecionados, por exemplo
cat /sys/firmware/efi/efivars/LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
Depois que fiz o menu de inicialização aparecer pressionando alguma tecla e, em seguida, pressionei dduas vezes para definir e remover uma nova entrada padrão, isso removeu minha LoaderEntryDefault-...
variável. No entanto, ainda estou preso LoaderConfigTimeout-...
. Sei que posso alterar o tempo limite usando as teclas t T( Shift-t) do menu, que modifica o LoaderConfigTimeout-...
, mas quero removê-lo completamente, para que a configuração em /loader/loader.conf
seja usada novamente.
Qual é a maneira correta e segura de modificar e remover variáveis EFI, como LoaderConfigTimeout-...
?
Responder1
No systemd-boot, pressione ShiftTou Num -o suficiente para que a configuração chegue a zero, e mais uma vez para desconfigurá-la completamente, removendo a variável.
No Linux, primeiro use chattr -i
o arquivo /sys/… para remover a proteção aplicada ao kernel e, em seguida, use rm
para excluir totalmente a variável.
No UEFI Shell, use dmpstore -d <name>
(com opcional -guid <guid>
) para excluir uma variável (consulte a documentação emEspecificação UEFI Shell 2.0, página 113).