zur Startseite

Druckausgabe von https://privat.albicker.org
Iveco Daily 4x4, Hunde und multithematisches Blog - Bernhard Albicker

Überzählige UEFI-Booteinträge löschen

veröffentlicht am 25.08.2018

Zu Zeiten des alten BIOS konnte man eine Festplatte mit installiertem Betriebssystem in irgendeinen Rechner stecken, das BIOS hat den Startsektor gesucht und dann das Betriebssystem gestartet.
Umgekehrt - und darum soll es hier gehen - hat es nichts von einem Betriebssystem gewußt, wenn man dieses gelöscht oder den entsprechenden Datenträger entfernt hat. Nicht so UEFI - der BIOS-Nachfolger hat ein “Gedächtnis”, und das nervt zuweilen.

Gestern hatte ich beschrieben, daß ich ganz gerne 2 (identische) Festplatten im Rechner habe, um z. B. andere Betriebssysteme zu testen - oder auch nur, um die Nutzdaten selbst auf dem Rechner doppelt vorrätig zu haben, wenn ich mal wieder “bastle”.
In der Folge sammeln sich Einträge im UEFI-Bootmenü an - einige davon enden, wenn man diese über das Bootmenü wählt - in einem blinkenden Cursor oder einer Fehlermeldung. Es wird deutlich übersichtlicher, wenn man diese Einträge wieder loswerden könnte.

Wie funktioniert der Boot-Vorgang mit UEFI?

Eine vollständige Beschreibung gibt es in der PC-Welt, hier ist nur dieses wichtig:

UEFI aufräumen

Bestandsaufnahme der bootfähigen Systeme auf der Platte

Zunächst wechselt man im Terminal in das EFI-Verzeichnis:

# cd /boot/efi/EFI  

und läßt sich die Starteinträge der vorhandenen Betriebssysteme anzeigen

# ls -la
insgesamt 2
drwx------ 3 root root  512 Jun 18  2017 .
drwx------ 3 root root  512 Jan  1  1970 ..
drwx------ 3 root root 1024 Feb 25 18:56 ubuntu

In meinem Fall gibt es genau einen Eintrag des installierten Linux Mint, der sich hinter der Bezeichnung ubuntu verbirgt. Das ist so in Ordnung, denn auf der Platte gibt es genau ein Betriebssystem auf der zweiten Partition:

Partitionen auf meiner Festplatte

oder:

$ sudo parted -l
Modell: ATA WDC WD20EZRZ-00Z (scsi)
Festplatte  /dev/sda:  2000GB
Sektorgröße (logisch/physisch): 512B/4096B
Partitionstabelle: gpt
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Dateisystem     Name                  Flags
 1      1049kB  106MB   105MB   fat32           EFI System Partition  boot, esp
 2      106MB   69,9GB  69,8GB  ext4
 3      69,9GB  87,1GB  17,2GB  linux-swap(v1)
 4      87,1GB  2000GB  1913GB  ext4

NVRAM korrigieren

Nun kommt efibootmgr zum Einsatz.

Das Paket efibootmgr ist ein Linuxprogramm um die Konfiguration des (U)EFI‐Boot-Menüs im NVRAM im Terminal zu verändern.

Der Befehl

$ sudo efibootmgr

liefert ohne weitere Parameter eine Kurzinformation dieser Art:

BootCurrent: 0007
Timeout: 0 seconds
BootOrder: 0005,0004,0006,0007,0000
Boot0000  ubuntu
Boot0004* CD/DVD Drive 
Boot0005* Hard Drive 
Boot0006  UEFI OS
Boot0007  ubuntu

Hier ist erkennbar, daß es zwei Einträge ubuntu gibt und einen weiteren mit der Bezeichnung UEFI OS.
In der ersten Zeile wird angegeben, daß der Eintrag 0007 derjenige ist, der das derzeit laufende System gestartet hat. Folglich sind die beiden anderen unnötig und können entfernt werden:

$ sudo efibootmgr -b 0000 -B
BootCurrent: 0007
Timeout: 0 seconds
BootOrder: 0005,0004,0006,0007
Boot0004* CD/DVD Drive 
Boot0005* Hard Drive 
Boot0006  UEFI OS
Boot0007  ubuntu

und

$ sudo efibootmgr -b 0006 -B
BootCurrent: 0007
Timeout: 0 seconds
BootOrder: 0005,0004,0008,0007
Boot0004* CD/DVD Drive 
Boot0005* Hard Drive 
Boot0007  ubuntu

Zum Schluß wird der Eintrag 0007 in der Boot-Reihenfolge an den ersten Platz gesetzt:

$ sudo efibootmgr -o 0007,0004,0005
BootCurrent: 0007
Timeout: 0 seconds
BootOrder: 0007,0004,0005
Boot0004* CD/DVD Drive 
Boot0005* Hard Drive 
Boot0007  ubuntu

Rechner neu starten und freuen … :)