ubuntuusers.de

Shell

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

GRUB_2/grub-shell.png Die GRUB-2-Shell ist die Laufzeit-Umgebung von GRUB 2 und kann abhängig vom System-Status verschiedene Modi starten. Diese sind der Auswahlmenü-Modus (= "Menu Mode"), die Kommandozeile (= "Command Line Interface" oder "CLI-Mode") und schließlich noch der Rettungsmodus (= "Rescue Mode"). Außerdem erlaubt es die GRUB-2-Shell aus dem Auswahlmenü-Modus heraus den Menü-Bearbeitungs-Modus (= "Edit Mode") bei Bedarf aufzurufen.

Der Artikel bietet eine Einführung in die verschiedene Modi.

Hinweis:

In der gesamten GRUB-2-Shell und damit in allen Modi steht nur eine amerikanische Tastaturbelegung zur Verfügung.

Auswahlmenü-Modus

Der Auswahlmenü-Modus ist die Standard-Laufzeit-Umgebung von GRUB 2. Hierüber kann man die auf dem System vorhandenen Betriebssysteme und soweit vorhanden erweiterte Startoptionen, wie z.B. ältere Kernel oder den Wiederherstellungs-Modus (engl. Recovery Mode) beim Start des Rechners auswählen.

Standardverhalten der Menü-Anzeige

Befindet sich nur ein einziges Betriebssystem auf dem Rechner, so bleibt das Menü vor dem Nutzer verborgen und das zu startende System wird unmittelbar ohne jedwede Verzögerung gestartet. Misslingt der Start des Betriebssystems, wird das Menü vor dem nächsten Start jedoch eingeblendet.

Hat GRUB 2 während der Installation noch andere Betriebssysteme erkannt und in das Auswahlmenü aufgenommen, so wird das Auswahl-Menü standardmäßig immer angezeigt. Nach Ablauf von 10 Sekunden wird - sofern der Nutzer nicht zuvor eingreift - das Betriebssystem gestartet, welches in der GRUB-2-Konfiguration als das bevorzugt zu startendes Betriebssystem eingetragen ist.

Die betreffenden Konfigurations-Parameter zum Verhalten des Auswahlmenü lassen sich anpassen. Alle Details zu den Konfigurations-Optionen beschreibt der Artikel GRUB 2/Konfiguration.

Sichtbarmachen des Auswahlmenüs durch Tastendruck

Grundsätzlich kann man das GRUB-Auswahl-Menü auch durch Tastendruck zum Vorschein bringen, wenn es als unsichtbar (engl. "hidden") konfiguriert wurde. Dazu betätigt man unmittelbar nach Verschwinden des POST-Bildschirms die Taste Esc .

Dabei muss jedoch bei einem Single-Boot-System die Standard-Einstellung von GRUB 2 unter Ubuntu berücksichtigt werden, nach der wie oben erwähnt, das System unmittelbar ohne Verzögerung gestartet wird. Das kann praktisch insbesondere auf UEFI-Systemen dazu führen, dass man trotz Tastendruck, das Menü niemals oder nur nach vielen Versuchen zum Vorschein bringen kann.

Möchte man sich die Option mit dem Tastendruck dennoch bequem offen halten, so sollte man die Konfigurations-Parameter anpassen.

Außerdem ist bei manchen Systemen die Taste Esc von der UEFI-Firmware zum Anzeigen eines UEFI-Menüs oder ähnlichem belegt, so dass man in solchen Fällen auch darauf achten muss, die Esc -Taste nicht zu früh zu drücken.

Gelingt es im Einzelfall nicht, das GRUB-Menü mittels Tastendruck sichtbar zu machen und befindet sich das System dabei in einer Startschleife, so kann man die GRUB-2-Konfiguration auch mittels Live-Medium starten und die Konfiguration dann anpassen (siehe GRUB 2/Reparatur).

Steuertasten im Auswahlmenü-Modus

Folgende Tasten-Kombinationen können im Auswahlmenü verwendet werden:

Taste Funktion
Pfeil-Ab-Auf-Tasten Menü-Eintrag hervorheben.
Eingabetaste Hervorgehobenen Menü-Eintrag starten.
E E-Taste Für den ausgewählten Menü-Eintrag in den Bearbeitungs-Modus wechseln.
C C-Taste In die Kommandozeile wechseln.
Strg + Alt + Entf Strg+Alt+Entf Das System Neustarten.

Hinweis:

Obige Tastenbefehle für E , C sowie können durch das Einbringen eine Passwort-Schutzes gesperrt werden. Zur Einrichtung eines Passwort-Schutzes siehe:

Starten im Auswahlmenü-Modus

Im Auswahlmenü-Modus einfach den gewünschten Eintrag durch Drücken der Ab-Auf-Tasten auswählen und dann durch Drücken der Eingabetaste starten. Startet das System nicht und fällt wieder zurück in das Auswahlmenü, dann den Eintrag im Bearbeitungs-Modus überprüfen und temporär korrigieren.

Der Menü-Bearbeitungs-Modus (= "Edit Mode"), welchen man aus dem Auswahlmenü durch Drücken der E-Taste E erreicht, erlaubt es einen bestehenden Menü-Eintrag zu bearbeiten und einmalig für den Systemstart zu korrigieren. Da ein falscher Menü-Eintrag in der Regel zum Auswahl-Menü zurückführt, kann man mit Hilfe des Bearbeitungs-Modus im Zweifel solange an einem Menü-Eintrag herumprobieren, bis er das System startet.

Erfolgversprechender ist es natürlich, wenn man die Startumgebung zuvor in der Kommandozeile analysiert und den fehlerhaften Eintrag dann gezielt korrigiert.

Hat man das System durch Bearbeitung eines Menü-Eintrages erfolgreich gestartet, so muss die Menü-Konfiguration im laufenden System dauerhaft angepasst werden.

Der Bearbeitungs-Modus ist immer nur aus dem Auswahlmenü heraus aufrufbar und wird von GRUB 2 nicht automatisch geladen.

Steuertasten im Bearbeitungs-Modus

Von den Einschränkungen, die sich aus der Tastaturbelegung 🇺🇸 ergeben abgesehen, stehen im Bearbeitungs-Modus alle wesentlichen Tasten zur Verfügung. Folgende Tasten sind dabei besonders hervorzuheben:

Taste Funktion
Pfeil-Ab-Auf-Tasten Die Eingabemarke (🇬🇧 Cursor) um eine Zeile nach unten oder oben bewegen.
Pfeil-Rechts-Links-Tasten Die Eingabemarke um ein Zeichen nach links oder rechts bewegen.
Tab ⇆ Tabulatortaste Zeigt durch ein und mehrmaliges Drücken die mögliche Fortsetzung einer Pfadangabe an. Das ist sehr nützlich um Pfadangaben korrekt angeben zu können.
Strg + X Strg+X-Taste Das System unter Verwendung des bearbeiteten Menü-Eintrages starten.
Strg + C Strg+C-Taste In die Kommandozeile wechseln.
Esc Escape-Taste Bearbeitungs-Modus verlassen und zum Auswahlmenü-Modus zurückkehren.
Strg + Alt + Entf Strg+Alt+Entf Das System Neustarten.

Starten mit Hilfe des Menü-Bearbeitungs-Modus

Hat man den Menü-Eintrag wie gewünscht angepasst, so kann man das System durch Drücken der Tastenkombination Strg+X Strg + X starten. Ist der Eintrag noch fehlerhaft, kehrt GRUB 2 in den Bearbeitungs-Modus für den entsprechenden Menü-Eintrag zurück und setzt die Eingabemarke in die noch fehlerhafte Zeile. Dies geschieht teilweise auch erst nach Ausgabe einer Fehlermeldung und Drücken einer beliebigen Taste.

Kommandozeile

Die Kommandozeile (= "Command Line Interface" oder "CLI-Mode") ist das Kernstück der GRUB-2-Shell. Mit ihr kann das System Schritt für Schritt analysiert und gestartet werden. Auch die vorkonfigurierten Menü-Einträge werden von ihr nach Auswahl in der aufgeführten Reihenfolge Zeile für Zeile abgearbeitet. Sie ist in ihrer Funktion mit der Bash vergleichbar, bietet aber eben nur die für einen Systemstart wichtigen Befehle und Analysefunktionen.

Die Kommandozeile erreicht man aus dem Auswahlmenü durch Drücken der C-Taste C . Außerdem landet man bei einem Systemstart automatisch in der Kommandozeile, wenn GRUB 2 die Konfigurationsdatei grub.cfg nicht gefunden oder nicht verarbeiten werden kann.

Steuertasten in der Kommandozeile

Von den Einschränkungen, die sich aus der Tastaturbelegung 🇺🇸 ergeben abgesehen, stehen in der Kommandozeile alle wesentlichen Tasten zur Verfügung. Folgende Tasten sind dabei besonders hervorzuheben:

Taste Funktion
Pfeil-Auf-Ab-Tasten Durch die Historie bereits zur Laufzeit eingegebener Befehle blättern.
Pfeil-Rechts-Links-Tasten Die Eingabemarke um ein Zeichen nach links oder rechts bewegen.
Tab ⇆ Tabulatortaste Zeigt nach Drücken alle möglichen Fortsetzung des eingegebenen Befehls oder Befehlsteils an. Diese Funktion unterstützt je nach verwendeten Befehl bereits eine Basis-Analyse, verhindert aber vor allem syntaktische Fehler bei der Befehlseingabe.
Esc Escape-Taste Kommandozeile verlassen und zum Auswahlmenü-Modus zurückkehren. Dies ist natürlich nur möglich, sofern die Kommandozeile anfangs manuell aus dem Auswahl-Menü aufgerufen wurde.
Eingabe von help + Eingabe-Taste Zeigt die Liste verfügbarer GRUB 2-Befehle.
Strg + Alt + Entf Strg+Alt+Entf Das System Neustarten.

GRUB-2-Umgebung mit der Kommandozeile analysieren

Wie man die GRUB 2 Umgebung mit Hilfe der Kommandozeile untersuchen kann, beschreibt der Artikel GRUB 2 Umgebung analysieren.

Starten mit Hilfe der Kommandozeile

Die GRUB 2 Kommandozeile bietet dem Benutzer alle für den Systemstart wichtigen Befehle (Liste der cli-Befehle). Es werden jedoch nur einige gebraucht. Sie werden einzeln, nacheinander in der Kommandozeile eingegeben und sind die selben, wie sie auch in der Datei grub.cfg verwendet werden.

Die Eingaben in der Kommandozeile sind nicht dauerhaft, sondern nur einmalig für den entsprechenden Systemstart(versuch).

Der Systemstart aus der Kommandozeile erfolgt nach einem einfachen Schema:

  1. Vorab verschafft man sich mit ls einen Überblick über die angeschlossenen Datenträger.

  2. Zuweisung des Datenträgers mit den Startdateien des zu startenden Betriebssystems an die Variable root.

  3. Die Startdateien – bei Ubuntu sind das vmlinuz und initrd.img, die sog. Symlinks – werden mit ihren jeweiligen Pfadangaben an die Befehle linux bzw. initrd übergeben. Sofern GRUB diese nicht direkt laden kann - wie es z.B. für Windows der Fall ist - lädt man stattdessen den ersten Sektor des zuvor festgelegten Startdatenträgers mittels chainloader. Dieser Sektor enthält dann das Boot-Programm, des fremden Betriebssystems.

  4. Gestartet wird dann mit den Befehl boot.

Beispiel: Linux starten

Es müssen der Reihe nach die folgenden Befehle eingegeben werden:

  1. Start-Datenträger festlegen:

    set root=(hdX,Y) 

    alternativ

    search -f /boot/vmlinuz -set root 
  2. Falls der Home-Ordner auf eine eigene Partition ausgelagert ist muss dieses eingebunden werden:

    set home=(hdX,Y) 

hdX,Y muss dem eigenen System entsprechend ersetzt werden.

  1. Pfad zu den Startdateien angeben:

    linux /vmlinuz root=/dev/sdXY ro 

    sdXY muss dabei natürlich auch auf das eigene System angepasst werden.

  2. Pfad zur Ramdisk:

    initrd /initrd.img 
  3. System starten:

    boot 

Tipps zu diesem Beispiel:

Tipp1: Die Eingabe in der GRUB-Shell set root=(hd0,1) entspricht set root=/dev/sda1 für eine Linux-Shell. Gültig ist auch set root=hd0,1

Tipp 2: Bei einem normal installierten Jammy Jellyfish liegen die SymLink vmlinuz und initrd unter /boot/vmlinuz bzw. /boot/initrd.img.

In Grub funktioniert auch Tab ⇆ zur Dateinamenvervollständigung, d.h. man kann sich bis zu der richtigen Datei "durchhangeln", ohne den exakten Namen zu wissen.

linux / Tab ⇆ pfad-zum-linux-image root=/dev/sda1 ro

Beispiel: Windows starten

Hinweis:

Windows hat seinen eigenenen Bootloader. grub kann jenen über die Funktion chainloader starten, dabei ist auf die Unterschiede bei der CSM bzw. EFI Bootmethode zu achten. Ggf. müssen bestimmte Module nachgeladen werden (part_gpt, part_msdos, ntfs… )

Die folgenden Kommandos gibt man der Reihe nach ein und schließt jeweils mit ab:

  • CSM

    1. Startdatenträger festlegen:

      set root=(hdX,Y) 

      hdX,Y muss dem eigenen System entsprechend ersetzt werden.

    2. Den ersten Sektor des Startdatenträgers laden lassen:

      chainloader +1 
    3. System starten:

      boot 
    4. Alternativ kann man auch mit diesen Befehlen starten:

      search --file /bootmgr --set root
      ntldr /bootmgr
      boot 
  • EFI

    1. Im EFI Modus liegen die Windows Startdateien auf der ESP (Markierung esp,boot), daher muß "root" auf diese gesetzt werden

      set root=(hdX,Y) 

      hdX,Y anpassen.

    2. der Ladebefehl verweist direkt auf bootmgfw.efi

      chainloader /efi/microsoft/boot/bootmgfw.efi 

Ursache für den automatischen Start der Kommandozeile

Startet GRUB 2 das System automatisch mit der Kommandozeile, so ist das zunächst zwar ein Ärgernis liefert aber gleichzeitig schon einen Anhaltspunkt für die Ursache dieses Erscheinungsbildes. Der einzige Unterschied zwischen dem Auswahlmenü-Modus und der Kommandozeile besteht darin, dass bei ersterem die Datei grub.cfg richtig verarbeitet werden konnte. Mögliche Gründe für das Scheitern der Verarbeitung sind:

  • Die Datei ist gar nicht vorhanden.

  • Die Datei ist vorhanden, aber beschädigt.

  • Die Datei enthält grobe syntaktische Fehler, so dass GRUB 2 die Verarbeitung abbricht.

  • Die Datei grub.cfg ist zwar vorhanden, wird von GRUB 2 aber nicht gefunden, weil die GRUB-2-Umgebungsvariable prefix auf ein nicht gültiges Verzeichnis /grub verweist.

Rettungs-Modus

Der Rettungs-Modus (= "Rescue Mode") ist eine stark eingeschränkte Form der GRUB-2-Kommandozeile. Er bietet nur wenige ganz grundlegende Befehle und keinerlei Komfort-Funktionen, wie das Ergänzen von Eingaben mittels Tabulatortaste oder das Blättern in der Historie bereits eingegebener Befehle (siehe zum Vergleich Steuertasten in der Kommandozeile).

Trotzdem kann man das System auch sehr häufig noch aus dem Rettungsmodus heraus starten. Das ist vor allem dann geboten, wenn man das System nicht anderweitig starten kann, weil gerade kein anderes Startmedium zur Verfügung steht.

Das Auftreten des Rettungs-Modus deutet stets daraufhin, dass etwas mit der Installation von GRUB 2 grundlegend nicht stimmt, weswegen GRUB 2 dann immer neu installiert werden muss. Man kann also in einem solchen Fall das System alternativ auch gleich mit einer Desktop-CD starten und dann GRUB 2 direkt neu installieren, wobei dabei unbedingt nach der chroot-Methode vorgegangen werden muss.

Starten mit Hilfe des Rettungsmodus

Hinweis:

Da der Befehlsumfang im Rettungsmodus deutlich reduziert ist, gestaltet sich die Analyse hier deutlich umständlicher. Man kann einzig mit dem Befehl ls Verzeichnis-Inhalte auflisten lassen und so dann manuell nach den richtigen Datenträgern und Verzeichnissen suchen. Hat man keinen richtigen Überblick über das eigene System, sollte man bevorzugt auf die Super-GRUB2-Disk zurückgreifen.

  1. Zunächst verschafft man sich einen Überblick über die von GRUB 2 erkannten Datenträger:

    ls 
  2. Außerdem müssen die Umgebungsvariablen prefix und root überprüft werden, da sie häufig den Start im Rettungsmodus verursachen können - z.B. nach dem das System umpartitioniert wurde ohne GRUB 2 anschließend neu zu installieren:

    set 
  3. Gegebenenfalls prefix

    set prefix=(hdX,Y)/boot/grub 

  4. und root¹

    set root=(hdX,Y)  

    der aktuellen System-Situation entsprechend anpassen.

    Hinweis:

    Die nachfolgenden Befehle setzen voraus, dass prefix und root richtig gesetzt wurden, weil es andernfalls zu Fehlermeldungen bezüglich des Pfades kommt. Insbesondere die Variable prefix ist zwingend erforderlich. Ist sie nicht oder nicht richtig gesetzt, so funktionieren die nachfolgenden Befehle unter Umständen nicht einmal dann, wenn man sie unter Verwendung des vollständigen Pfades eingibt!

  5. Die Anpassungen noch mal überprüfen:

    set 
  6. Zunächst probiert man, das Modul normal.mod aus dem grub-Verzeichnis zu laden:

    insmod normal 

    Kommt es beim Laden des Moduls zu einer Fehlermeldung, so setzt man diese Anleitung mit Schritt 8 fort.

  7. Konnte das Modul normal.mod erfolgreich geladen werden, so versucht man, den normalen GRUB-2-Modus in Gang zu setzen:

    normal 

    Misslingt die Ausführung des normalen Modus, so geht es mit dem nächsten Schritt weiter. Gegebenenfalls muss dazu der Rechner neu gestartet werden. Falls der Rechner normal starten sollte, muss schließlich noch Schritt 12 befolgt werden.

  8. Das Modul linux.mod aus dem unter prefix angegebenen Verzeichnis nachladen:

    insmod linux 
  9. Nun den zu startenden Kernel über den Symbolischen Link auswählen:¹

    linux /vmlinuz root=/dev/sdXY ro 
  10. Dann den Pfad zur Ramdisk-Datei angeben

    initrd /initrd.img 
  11. Schließlich das System starten:

    boot 
  12. Nach erfolgreichem Systemstart muss GRUB 2 im laufenden System unbedingt neu installiert und anschließend die Datei grub.cfg neu erstellt werden (siehe Reparatur).

¹ Handelt es sich um ein Wubi-Installation innerhalb von Windows so müssen die Kommandos aus den Schritten 4 und 9 wie folgt angepasst werden:

  • set root=(loop0) 
  • linux /vmlinuz root=/dev/sdXY loop=/ubuntu/disks/root.disk ro 

Gelingt der Systemstart aus dem Rettungsmodus heraus nicht, dann muss GRUB 2 mittels Desktop-CD neu installiert werden.

Ursache für den automatischen Start im Rettungs-Modus

In den Rettungs-Modus fällt GRUB 2 automatisch zurück, wenn GRUB 2 keinen oder keinen vollständigen Zugriff auf das Verzeichnis /boot/grub oder die darin für das Ausführen der Kommandozeile notwendigen Module - insbesondere das Modul normal.mod - hat. Sein Erscheinen deutet stets auf Probleme bei der Installation von GRUB 2 hin. Das kann folgende Ursachen haben:

  • Die Module sind aufgrund einer fehlerhaften GRUB-2-Paketinstallation gar nicht im Verzeichnis /grub abgelegt oder wurden beschädigt abgelegt.

  • Die Variable prefix, die bei der Installation von GRUB 2 in den MBR und den verborgenen Bereich im Anschluss an den MBR dort hinterlegt wird und die den Pfad zum /grub-Verzeichnis mit den dort enthaltenen Modulen enthält einen falschen Pfad.

  • GRUB kann das Dateisystem der Partition auf der das Verzeichnis /grub liegt nicht lesen.

  • Die Grundinstallation in den MBR hat zwar funktioniert, der dort geschriebene Code enthält aber Fehler, so dass ein Auslesen der Variablen prefix und/oder root aufgrund von Fehlfunktionen nicht möglich ist.

Alternativer Systemstart mit Hilfe der Super-GRUB2-Disk

Mit der Super-GRUB2-Disk 🇬🇧 kann man ein nicht mehr über den internen GRUB startendes System starten. Sie bietet eine GRUB 2 Shell, die von CD startet. Hinter den vorkonfigurierten Auswahlmenü-Einträgen der Super GRUB2 Disk, verbergen sich Skripte, die einem weitestgehend die System-Analyse abnehmen. So finden sie auf dem betreffenden Computer installierte Betriebssysteme oder aber dort liegende GRUB 2 Konfigurations-Dateien und so kann dann schließlich das System doch noch gestartet werden.

Die nachfolgenden Erklärungen beziehen sich auf das Auswahlmenü der Version 1.30 der Super-GRUB-Disk. Hinter dem # befindet sich die deutsche Übersetzung:

1. Boot Ubuntu Gnu/Linux                                       #Starte Ubuntu Gnu/Linux
2. Detect any OS                                               #Finde irgend ein Betriebssystem 
3. Detect any GRUB2 configuration file (grub.cfg)              #Finde irgend eine Datei grub.cfg
4. Detect any GRUB2 installation (even if mbr is overwritten)  #Finde irgend eine GRUB2-Installation (auch dann wenn der MBR überschrieben wurde)
5. Enable grub's LVM support                                   #Aktiviere die LVM-Unterstützung  
6. Enable grub's RAID support                                  #Aktiviere die RAID-Unterstützung
7. Switch to serial terminal (Disables keyboard input and screen output)     #Starte eine serielle Konsole (Deaktivert Tastatureingaben und Bildschirmausgaben) 

Die Punkte erklären sich weitestgehend von selbst. In der Regel kann man über die Auswahl einer der ersten vier Optionen das System starten. Die Option 7 ist nur für die GRUB 2 Fehlerdiagnose (🇬🇧 Debugging) vorgesehen .

Hinweis:

Innerhalb von ubuntuusers.de wird keine Unterstützung zu Problemen mit der Super-GRUB-Disk gegeben. Funktionieren die hier dargestellten Optionen also nicht, dann bitte dazu im 🇬🇧 Super-GRUB-Disk-Forum nachfragen.

Diese Revision wurde am 6. Oktober 2022 13:23 von black_tencate erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Installation, Bootloader, System, Ubuntu