Überzählige UEFI-Booteinträge löschen
veröffentlicht am 25.08.2018 - aktualisiert am 04.10.2021 mit 1055 Worten - Lesezeit: 5 Minute(n) in * LINUX *
Inhaltsverzeichnis
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.
Der Artikel bezieht sich zunächst auf ein installiertes Linux-Betriebssystem. Wie (benachteiligte) Windows-User damit ans Ziel kommen können, das ist weiter unten beschrieben.
Wie funktioniert der Boot-Vorgang mit UEFI?
Eine vollständige Beschreibung gibt es in der PC-Welt, hier ist nur dieses wichtig:
-
Das UEFI sucht alle Datenträger nach einer EFI System Partition ab, auf dieser Partition sind die EFI-Programme hinterlegt, die Bootloader für Uefi-Werkzeuge und für installierte Betriebssysteme enthalten.
-
Im NVRAM des Firmware-Chips ist einer dieser Einträge als Standard-Betriebssystem festgelegt. Der Bootloader des zugehörigen Betriebssystems wird entweder direkt gestartet oder es wird ein vom Hardware-Hersteller gestaltetes Menü zur manuellen Auswahl der EFI-Bootloader oder Partitionen angezeigt.
D.h.: Jedes Betriebssystem schreibt in die EFI-Partition seinen Bootmanager, bei Linux-Systemen ist das i. d. R. der GRUB-Bootmanager, bei Windows-Systemen der Windows-Start-Manager, der sich in Windows mit dem Befehl bcdedit
anpassen läßt.
Einer dieser jeweiligen Bootmanager wird beim Rechnerstart aus dem UEFI aufgerufen und zeigt die ihm bekannten Betriebssysteme zur Auswahl an.
Zur Sicherheit kann man an dieser Stelle ermitteln, ob der betreffende Rechner tatsächlich im UEFI-Modus gestartet wird:
~$ test -d /sys/firmware/efi && echo UEFI || echo BIOS
UEFI
Dann lautet die Ausgabe in der zweiten Zeile wie hier gezeigt: UEFI
.
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 … :)
Was macht nun der Windows-User?
Nun, er kann - wie er das gewohnt ist - auf die Suche gehen, ob irgendwo auf der Welt irgendeine Bude gegen Geld ein Tool gebaut hat, das evtl. das Problem löst …
Ich möchte hier einen anderen (einfachen und kostenlosen) Weg zeigen.
Live-CD besorgen
Im ersten Schritt besorgt man sich eine Installationsdatei einer Linux-Distribution seiner Wahl, z. B. die deutschsprachigen Live-CDs von Linux Mint (im ersten Beitrag den aktuellsten Eintrag wählen). Es werden verschiedene Desktop-Varianten angeboten, MATE ist übersichtlich und für den Zweck hier mehr als ausreichend.
Man erhält eine .ISO
-Datei, die man dann auf eine DVD oder einen USB-Stick schreibt.
Image auf Medium schreiben
Für Windows-User wird hier immer auf Balena Etcher verwiesen, wenn man die ISO auf einen USB-Stick schreiben will. Dazu sind die folgenden Schritte nötig:
-
Start, 1. Button drücken
-
ISO
-Datei wählen -
Zweiter Button
-
Datenträger (also den USB-Stick) wählen
-
Der dritte Button startet den Prozess
-
Hoffentlich kommt am Ende dann die Erfolgsmeldung ‘Flash Complete!’
(Unter Linux verwende ich die vorhandenen Bordmittel, z. B. die Laufwerksverwaltung).
Das Schreiben der ISO auf eine DVD funktioniert auch unter Windows ohne weitere Software: ISO auswählen, dann Rechtsklick:
im nächsten Schritt den Datenträger (DVD-Laufwerk) auswählen und bestätigen:
Live-System starten
Der Rechner wird heruntergefahren, die CD eingelegt bzw. der USB-Stick angeschlossen und neu gestartet. Wenn alles gut geht, dann erscheint der Linux-Bootmanager:
Wenn dieser Bildschirm nicht erscheint, ist für gewöhnlich das BIOS/UEFI des PCs nicht für das Booten von CD/DVD oder USB eingestellt. Starte den Computer neu und drücke F1, F2, Entf oder Esc (oder welche Taste auch immer in die BIOS Konfiguration führt, das wird in der Regel beim Start kurz angezeigt) und ändere die BIOS Einstellungen im Boot Bereich dahingehend, dass er zuerst von CD/DVD zu booten versucht. Auf manchen PCs führt die Taste F8 oder F12 direkt zur Einstellung der Bootreihenfolge.
’efibootmgr’ ausführen
Nun geht’s also an die Arbeit:
-
Terminal öffnen
-
die oben beschriebenen Schritte durchführen.
abschließende Hinweise
-
die Laufwerksverwaltung zur Anzeige der Partitionen ist im Startmenü unter “Zubehör” oder über die Suchfunktion zu finden
-
Partitionen können über das Partitionierungstool (zu finden in der “Systemverwaltung”) bearbeitet werden
Schon die Zahl der Screenshots hier zeigt: ist halt ’n Gefrickel mit dem Windows 😳.
Viel Erfolg!
weitere Artikel
- Zwei Programmversionen unter Linux
- Linux: Der Zufallsgenerator Calamares Installer
- Was man bei der Installation von Siduction Linux NICHT tun sollte - Teil 3
- Was man bei der Installation von Siduction Linux NICHT tun sollte - Teil 2
- Was man bei der Installation von Siduction Linux NICHT tun sollte