1874723

Grub-Probleme und ihre Lösungen

12.11.2018 | 15:00 Uhr |

Bei einer komplexen Konfiguration oder aufgrund von Fehlern kann die Grub-Installation misslingen oder Schaden nehmen. Die meisten Probleme lassen sich jedoch schnell beheben.

Damit ein Betriebssystem von der Festplatte starten kann, ist ein Bootloader erforderlich. Bei Linux-Systemen kommt dabei in der Regel Grub 2 zum Einsatz (Grand Unified Bootloader). Bei einfachen Konfigurationen, etwa wenn sich nur Linux auf der Festplatte befindet, bereitet Grub selten Probleme. Anders kann es aussehen, wenn mehrere Partitionen, MBR- und/oder GPT-Partitionen, Bios- und Uefi-Modus sowie weitere Betriebssysteme auf der Festplatte vorhanden sind. Grub ist mit zahlreichen Optionen und Konfigurationsdateien ein relativ komplexes Stück Software. Vor Reparaturen sollten man sich mit den grundlegenden Funktionen vertraut machen (siehe Kasten „So funktioniert der Bootloader Grub“). Die meisten Probleme lassen sich ohne großen Aufwand beseitigen, meist ist dafür jedoch ein Ausflug auf die Kommandozeile nötig.

System über Super Grub Disk 2 starten

Bei der Installation im Bios-Modus ersetzt Grub einen eventuell schon vorhandenen Linux- oder Windows-Bootmanager, baut aber bei einer Multibootumgebung die anderen Systeme in das Bootmenü ein. Wenn Sie hingegen Windows nach Linux neu installieren, wird Grub durch den Windows-Bootloader ersetzt und Sie können Linux nicht mehr starten. Erfolgt die Installation im Uefi-Modus, spielt die Reihenfolge keine Rolle. Die Bootloader sind hier in der EFI-Partition untergebracht und stören sich nicht gegenseitig.

Bei einem defekten Bootloader hilft Super Grub Disk 2 ( www.supergrubdisk.org ). Dabei handelt es sich um einen eigenständigen Grub-Bootloader. Die Software sucht automatisch nach bootfähigen Partitionen beziehungsweise nach Bootloadern. Über ein Menü steuern Sie die gewünschte Startumgebung an.

Super Grub Disk 2 verwenden: Booten Sie den PC vom erstellten Medium. Achten Sie bei einem Uefi-System darauf, das Bootgerät mit dem vorangestellten „UEFI“ zu wählen. Gehen Sie im Menü auf „Detect and show boot methods“. Super Grub Disk 2 sucht nach Linux-Systemen und zeigt diese an. Meist genügt es, den gewünschten Eintrag unter „Operating Systems“ zu wählen, beispielsweise „Linux /boot/vmlinuz-4.15.0-33-generic (hd0, msdos1)“. Wenn das nicht funktioniert, probieren Sie den Eintrag unterhalb von „---- core.img“ aus. Reparaturen lassen sich mit Super Grub Disk 2 nicht durchführen. Das ist aber anschließend im laufenden System kein Problem (siehe nächsten Punkt).

Bootumgebung reparieren Wenn Grub Fehler zeigt, das System aber noch bootet, installieren Sie Grub neu. Alternativ starten Sie das installierte System über Super Grub Disk 2 (siehe vorheriger Punkt). Bei einem Bios-System verwenden Sie in einem Terminalfenster diese zwei Befehlszeilen:

sudo grub-install /dev/sd[x]
sudo update-grub

Für „[x]“ tragen Sie die Bezeichnung für die Bootfestplatte ein. Bei nur einer Festplatte verwenden Sie „sda“. Ist beispielsweise Linux auf „/dev/sdb“ und Windows auf „/dev/sda“ installiert, können Sie auch die Linux-Festplatte „sdb“ als Ziel angeben. Setzen Sie im Bios die Linux-Festplatte in der Liste der Bootgeräte an die erste Stelle. Über das Grub-Bootmenü starten Sie dann Linux oder Windows. Der Vorteil: Wenn Sie Windows neu installieren, bleibt der Grub-Bootloader auf der Linux-Festplatte erhalten.

Uefi-System: Im installierten System reparieren Sie Grub 2 und die EFI-Dateien im Terminalfenster mit

sudo grub-install
sudo update-grub

Ein Ziellaufwerk geben Sie nicht an. Das Script findet das Verzeichnis „/boot/efi“ mit dem EFI-Bootloader automatisch.

Grub reparieren: Nachdem Sie das System über Super Grub Disk gestartet haben, lässt sich die Bootumgebung im Terminal mit „grub-install“ und „update-grub“ wiederherstellen.
Vergrößern Grub reparieren: Nachdem Sie das System über Super Grub Disk gestartet haben, lässt sich die Bootumgebung im Terminal mit „grub-install“ und „update-grub“ wiederherstellen.

Bootreihenfolge ändert sich automatisch

Sie haben Linux nach Windows 10 auf Ihrem PC im Uefi-Modus installiert. Beim ersten Neustart nach der Linux-Installation zeigte sich der Bootloader Grub und Sie konnten Linux starten. Später haben Sie über Grub Windows gestartet. Jetzt ist Grub verschwunden und es lässt sich nur noch Windows starten. Dieses Problem tritt bei einigen PCs und Notebooks auf, die offenbar die Bootreihenfolge automatisch ändern. Im Firmwaresetup können Sie Linux in der Bootreihenfolge wieder an die erste Stelle setzen. Nachdem Sie Windows gestartet haben, befindet sich jedoch der Windows-Bootloader wieder an der ersten Position und ist damit der Standard-Booteintrag.

Lenken Sie den Windows-Startmanager auf Grub um, damit sich die Bootreihenfolge nicht mehr ändert.
Vergrößern Lenken Sie den Windows-Startmanager auf Grub um, damit sich die Bootreihenfolge nicht mehr ändert.

Hintergrund: Bei einigen Geräten scheint die Firmware den Windows-Booteintrag zu löschen, wenn dieser nicht am Beginn der Liste steht. Windows bemerkt das und erstellt den Eintrag an der ersten Position neu. Es gibt zwei Ansätze, das Problem zu lösen. Sorgen Sie dafür, dass der Windows-Bootmanager an der ersten Position in der Bootreihenfolge erhalten bleibt, aber inaktiv ist. Dann ändern Firmware oder Windows die Reihenfolge nicht mehr. In einem Terminalfenster verschaffen Sie sich unter Linux einen Überblick, indem Sie das Tool

efibootmgr

starten. Die Ausgabe könne beispielsweise so aussehen:

BootOrder: 0001,0000,001A,0019
Boot0000* Windows Boot Manager
Boot0001* Ubuntu
Boot0019* CD/DVD Drive

Der Linux Boot-Manager „Boot0001“ ist hier die Standard-Bootoption. Mit der folgenden Zeile

sudo efibootmgr -b 0000 -A

setzen Sie den Windows-Bootmanager inaktiv und mit

sudo efibootmgr -o 0000,0001,0019

setzen Sie Windows in der Bootreihenfolge an die erste Position. Die Ausgabe von efibootmgr kann danach so aussehen:

BootOrder: 0000,0001,0019
Boot0000 Windows Boot Manager
Boot0001* Ubuntu
Boot0019* CD/DVD Drive

Diese Maßnahme hilft bei einigen, aber aus unbekannten Gründen nicht bei allen Rechnern. In diesem Fall probieren Sie eine andere Lösung aus. Starten Sie Windows 10 und öffnen Sie eine Eingabeaufforderung mit administrativen Rechten. Dazu suchen Sie im Startmenü nach „cmd“, klicken das Suchergebnis mit der rechten Maustaste an und wählen „Als Administrator ausführen“. Starten Sie mit

bcdedit

dieses Windows-Tool. Im Abschnitt „Windows-Start-Manager“ sehen Sie hinter „path“ den Eintrag „\EFI\Microsoft\Boot\bootmgfw.efi“. Ändern Sie den Pfad zum Bootloader mit dieser Befehlszeile:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

Sollte Secure Boot aktiviert sein, verwenden Sie alternativ den Pfad „\EFI\ubuntu\shimx64.efi“.

Andere Linux-Systeme verwenden einen anderen Pfad. Sehen Sie unter Linux im Ordner „/boot/efi/EFI“ nach, was für Ihr System gilt.

Auch interessant So klappt der Multiboot mit Windows & Linux

Alternativen Bootmanager Refind nutzen

Bei den meisten PCs können Bios beziehungsweise Firmware ein Bootmenü anzeigen, über das Sie zwischen den installierten Bootloadern wählen können.

Beantworten Sie diese Frage mit „Ja“, landen die Refind-Dateien im Ordner „/boot/efi/EFI/refind“..
Vergrößern Beantworten Sie diese Frage mit „Ja“, landen die Refind-Dateien im Ordner „/boot/efi/EFI/refind“..

Der Vorteil: Bei Bedarf steuern Sie beispielsweise den Windows-Bootloader ohne Umweg über Grub direkt an. Das Bootmenü bringen Sie meist über Tasten wie Esc, F8 oder F12 auf den Bildschirm, die Sie kurz nach dem Einschalten des PCs drücken. Allerdings ist es umständlich, den genauen Zeitpunkt für den Tastendruck abzupassen. Uns ist keine PC-Firmware bekannt, die das Bootmenü standardmäßig bei Start anzeigt. Mehr Komfort lässt sich jedoch über einen alternativen Bootmanager wie Refind ( www.rodsbooks.com/refind ) erreichen. Das Tool findet EFI-Bootdateien auf der Festplatte und präsentiert die Booteinträge in einem ansprechenden grafischen Menü.

Bei Ubuntu 18.04 und Linux Mint 19 ist Refind in den Standard-Paketquellen enthalten. Für ältere Systeme wie Ubuntu 16.04 gibt es ein PPA, das Sie in einem Terminalfenster so hinzufügen (drei Zeilen):

sudo apt-add-repository ppa:rodsmith/refind
sudo apt update
sudo apt install refind

Bei der Frage „Automatically install rEFInd to the ESP?“ antworten Sie mit „Ja“. Führen Sie anschließend das Script

refind-mkdefault

aus. Damit legen Sie Refind als Standard-Efi-Booteintrag fest.

Refind findet alle EFI-Bootoptionen und zeigt ein Menü mit den verfügbaren Systemen.
Vergrößern Refind findet alle EFI-Bootoptionen und zeigt ein Menü mit den verfügbaren Systemen.

Sind beispielsweise Ubuntu und Linux Mint installiert, zeigt Refind einen weiteren Vorteil. Im Refind-Bootmenü können Sie das Standard-Grub-Bootmenü aufrufen, indem Sie mit den Pfeiltasten „Boot EFI/ubuntu/grubx64.efi from EFI System Partition“ wählen und danach „Ubuntu“ oder „Linux Mint“. Es gibt aber auch eigene Symbole für Ubuntu und Linux Mint, über die Sie direkt zum jeweiligen System gelangen.

Refind startet automatisch das zuletzt genutzte System, wenn Sie nichts anderes auswählen. In der Datei „/boot/efi/EFI/refind/refind.conf“ legen Sie mit „default_selection“ die Standardauswahl fest.

default_selection 1

beispielsweise bootet den ersten Eintrag im Menü.

Die Datei „refind.conf“ enthält zahlreiche auskommentierte Beispiele zur Konfiguration des Bootmanagers. Sie können beispielsweise die Auflösung des Bootbildschirms anpassen oder ein anderes Hintergrundbild festlegen. Ausführliche Beschreibungen finden Sie in der englischsprachigen Dokumentation bei www.rodsbooks.com/refind .

Linux startet nach Updates nicht mehr

Sie haben Linux bereits einige Zeit ohne Probleme verwendet, doch nach einigen Updates startet Linux nicht mehr oder Grub zeigt nur Fehlermeldungen? Die Ursache dafür kann eine zu volle Festplatte beziehungsweise Bootpartition sein. Vor einem Update prüft Linux in der Regel nicht, ob dafür genügend Platz vorhanden ist. Meist hat das keine großen Auswirkungen, weil dann einige Pakete einfach nicht installiert werden, Linux aber trotzdem läuft. Systeme wie Ubuntu melden zwar, wenn der Platz knapp wird, das lässt sich jedoch leicht übersehen.

Problematisch sind vor allem Installationen mit einer eigenen Bootpartition. Ist diese zu klein, reicht der Platz nach einiger Zeit nicht mehr für die Kernel-, Ramdisk- und Grub-Dateien aus. Im schlimmsten Fall ergibt sich ein undefinierter Zustand und Linux startet nicht mehr.

Zur Reparatur booten Sie den PC beispielsweise von der Ubuntu-Installations-DVD oder einem anderen Livesystem. Binden Sie die Systempartition und – wenn vorhanden – die Bootpartition über den Dateimanager in das Dateisystem ein. Löschen oder verschieben Sie große Dateien, um ausreichend Platz zu schaffen. In der Bootpartition können Sie die Dateien älterer Kernel-Versionen und Ramdisks löschen. Über ein Tool wie Gparted lassen sich Partitionen verkleinern und verschieben. Auf diesem Weg können Sie die Bootpartition vergrößern. Einen Ratgeber dazu finden Sie unter www.pcwelt.de/GUEHb1 .

Tipp: Behalten Sie den Speicherplatz auf der Festplatte stets im Blick. Im Terminalfenster prüfen Sie mit

df -h

die Belegung der Festplatte.

df -h /boot

gibt Ihnen Auskunft über die Belegung der Bootpartition, wenn Sie eine verwenden. Den Befehl

sudo apt autoremove

sollten Sie regelmäßig ausführen, um nicht mehr verwendete Pakete zu entfernen, insbesondere alte Kernel-Versionen aus „/boot“. Nebenbei geht dann auch die Installation neuer Kernel schneller, weil der Paketmanager dann Ramdisk-Dateien und Treiber für weniger Kernel erzeugen muss.

Im Ordner „/boot“ sammeln sich mit der Zeit zahlreiche Dateien an, etwa alte Kernel-Versionen. Mit „sudo apt autoremove“ löschen Sie überflüssige Dateien.
Vergrößern Im Ordner „/boot“ sammeln sich mit der Zeit zahlreiche Dateien an, etwa alte Kernel-Versionen. Mit „sudo apt autoremove“ löschen Sie überflüssige Dateien.

Lesetipp Pannen & Lösungen für typische Linux-Probleme

Grub über Windows-Bootmanager starten

Sie benutzen hauptsächlich Windows, möchten daher Grub nicht standardmäßig verwenden und Linux lieber in den Windows-Bootmanager einbinden?

Bei einem Bios-System auf einer MBR-Festplatte lässt sich Grub über den Windows-Bootmanager starten. Im Internet kursieren zwar einige Anleitungen, die für Uefi-PCs gelten, uns ist es jedoch nicht gelungen, die Grub-Efi-Bootloaderdateien funktionstüchtig in den Windows-Bootmanager zu integrieren.

Wir gehen in unserem Beispiel davon aus, dass auf einem Bios-PC bereits Windows installiert ist und Sie Ubuntu 18.04 neu installieren. Im Schritt „Installationsart“ wählen Sie „Etwas Anderes“ und erstellen die Ext4-Partition mit dem Einhängepunkt „/“ für Ubuntu selbst. Unter „Gerät für die Bootloader-Installation“ wählen Sie die Linux-Partition, beispielsweise „/dev/sda5“. Wenn die Installation abgeschlossen ist, klicken Sie auf „Ausprobieren fortsetzen“. Öffnen Sie ein Terminalfenster und führen Sie diesen Befehl aus:

sudo dd if=/dev/sda5 of=grub.mbr bs=512 count=1

Passen Sie den Pfad „/dev/sda5“ entsprechend der Konfiguration Ihres PCs an. Kopieren Sie „grub.mbr“ auf die Windows-Systempartition. Dann beenden Sie Linux und starten Windows.

Bootloaderinstallation: Installieren Sie Grub auf der Linux-Partition. Der Bootcode im MBR lässt sich dann als Datei kopieren, die Sie in den Windows-Bootmanager einbinden können.
Vergrößern Bootloaderinstallation: Installieren Sie Grub auf der Linux-Partition. Der Bootcode im MBR lässt sich dann als Datei kopieren, die Sie in den Windows-Bootmanager einbinden können.

Öffnen Sie eine Eingabeaufforderung mit administrativen Rechten und führen Sie diesen Befehl aus:

bcdedit /create /d "Ubuntu" / application BOOTSECTOR

Das Tool gibt eine GUID wie „{2ff751ed-8e8c-11e8-b97b-98fd16b6a2e7}“ zurück, die Sie in die Zwischenablage kopieren, und in die folgenden drei Befehlszeilen für den Platzhalter „{GUID}“ einsetzen (inklusive der geschweiften Klammern):

bcdedit /set {GUID} device partition=C:
bcdedit /set {GUID} PATH \grub.mbr
bcdedit /displayorder {GUID} / addlast

Starten Sie Windows neu. Es erscheint ein Bootmenü, in dem Sie zwischen Windows und Linux (Grub) wählen können. Ohne Auswahl bootet automatisch Windows.

So funktioniert der Bootloader Grub

Grub ist zugleich Bootmanager und Bootloader. Ist Linux im Uefi-Modus installiert, liegt der Bootmanager in der EFI-Partition, die in das Dateisystem unter „/boot/efi“ eingebunden ist. Für jedes Betriebssystem gibt es ein eigenes Verzeichnis. Bei Ubuntu heißt es „/boot/efi/EFI/ubuntu“. Die Bootloaderdateiist „grubx64.efi“. Die Dateien „shimx64.efi“ und „MokManager. efi“ sind in einer Secure-Boot-Umgebung nötig. „grub.cfg“ enthält einen Verweis auf die Konfigurationsdatei „/boot/grub/grub.cfg“, die Definitionen für das Bootmenü enthält.

Bei einem Rechner mit herkömmlichem Bios werden bei der Linux-Installation 512 Byte des Grub-2-Bootloaders („boot.img“) in den MBR (Master Boot Record) der ersten Festplatte geschrieben. Nach dem Start des PCs liest der Bootloader den ersten Sektor aus der Datei „/boot/grub/core.img“ und führt den enthaltenen Code aus. Dieser lädt Module nach, die für den Zugriff auf das Dateisystem nötig sind, und zeigt das Bootmenü an.

Die Konfiguration von Grub 2 erfolgt automatisch über die Scripts unter „/etc/grub.d“. Das wichtigste Script ist „10_linux“. Es sucht im Verzeichnis „/boot“ nach Linux-Kerneln („vmlinuz-*“) sowie Ramdisk-Dateien („initrd.img-*“) und erstellt die Einträge für das Bootmenü. Das Script „30_os-prober“ ist für die Suche nach anderen Betriebssystemen wie Mac-OS und Windows zuständig. „30_uefi_firmware“ bindet Dateien von der EFI-Partition ins Menü ein. Die Scripts werden bei jedem Upgrade auf einen neuen Kernel automatisch ausgeführt.

Standards setzen: In der Datei „/etc/default/grub“ sind Variablen enthalten, die das Verhalten von Grub 2 steuern. Sie können hier beispielsweise einen höheren Wert hinter „GRUB_TIMEOUT=“ eintragen. Dann haben Sie länger Zeit, einen Eintrag zu wählen, bevor das Standardsystem bootet. Nach Änderungen müssen Sie die Konfiguration stets mit

sudo update-grub

im Terminal aktualisieren.

PC-WELT Marktplatz

0 Kommentare zu diesem Artikel
1874723