Nachdem ich Stunden damit verbracht hatte, ein Problem zu debuggen, bei dem systemd-boot
das Bootmenü übersprungen und die Konfigurationsdatei /loader/loader.conf
(auf der EFI-Partition) im Allgemeinen ignoriert wurde, habe ich festgestellt, dass ich das Bootmenü aufrufen kann, indem ich beim Start eine Taste drücke, und dass das Problem durch bestimmte EFI-Variablen verursacht wird, die ich anscheinend versehentlich erstellt habe. (Ich weiß nicht, wie das passiert ist, aber das Problem trat kurz nach der Neuinstallation von Ubuntu 18.04.1 auf einer Partition auf.)
Insbesondere habe ich festgestellt, dass die Variable irgendwie LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
auf gesetzt war 0
, wodurch das in definierte Timeout außer Kraft gesetzt wurde /loader/loader.conf
. Außerdem hatte ich die Variable LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
definiert, wodurch der in festgelegte Standardmenüeintrag außer Kraft gesetzt wurde /loader/loader.conf
.
Siehe unten„systemd-boot UEFI Boot Manager“Seite auf freedesktop.org für die Liste der von verwendeten EFI-Variablen systemd-boot
. Ihre Werte können beispielsweise mit
cat /sys/firmware/efi/efivars/LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
Nachdem ich das Bootmenü durch Drücken einer Taste erscheinen ließ und dann drückted zweimal drückte, um einen neuen Standardeintrag festzulegen und aufzuheben, wurde meine LoaderEntryDefault-...
Variable entfernt. Ich hänge jedoch immer noch bei fest . Ich weiß, dass ich das Timeout ändern kann, indem ich im Menü die Tasten ( ) LoaderConfigTimeout-...
verwende , wodurch geändert wird , aber ich möchte es ganz entfernen, damit die Konfiguration wieder verwendet werden kann.t TShift-tLoaderConfigTimeout-...
/loader/loader.conf
Was ist die richtige und sichere Möglichkeit, EFI-Variablen wie zu ändern und aufzuheben LoaderConfigTimeout-...
?
Antwort1
Drücken Sie in systemd-boot ShiftToder Num -so oft, bis die Einstellung Null erreicht, und noch einmal, um sie vollständig aufzuheben und die Variable zu entfernen.
Verwenden Sie unter Linux zuerst chattr -i
die Datei /sys/…, um den vom Kernel angewendeten Schutz zu entfernen, und rm
löschen Sie die Variable anschließend vollständig.
In der UEFI-Shell verwenden Sie dmpstore -d <name>
(mit optionalem -guid <guid>
), um eine Variable zu löschen (siehe Dokumentation inUEFI Shell Spezifikation 2.0, Seite 113).