ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Shell

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

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. 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

Normalerweise startet GRUB 2 im Auswahlmenü-Modus (= "Menu Mode"), wobei das Auswahlmenü standardmäßig vor dem Benutzer verborgen bleibt, sofern sich nur ein einziges Betriebssystem auf dem Rechner befindet oder GRUB 2 bei der Installation keine anderen Betriebssystem erkannt hat. GRUB 2 startet dann einfach das System ohne das Menü anzuzeigen.

Man kann die Anzeige des Auswahlmenüs aber auch in einem solchen Fall durch Drücken der Shift-Taste während des Startvorgangs des Rechners erzwingen. Dazu direkt nach dem POST die Shift-Taste drücken und gedrückt halten, bis das Menü erscheint.

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

Als Herzstück von GRUB 2 bietet die Kommandozeile dem Benutzer alle für den Systemstart wichtigen Befehle. Die Befehle, die man in der Kommandozeile einzeln, nacheinander eingeben muss sind die selben, wie sie auch in der Konfigurationsdatei verwendet werden.

Da die Eingaben in der Kommandozeile aber nicht dauerhaft gelten, sondern nur einmalig für den entsprechenden Systemstart(versuch), kann man sich auf die nötigsten Angaben beschränken. Anders als bei einer Konfigurationsdatei die einmalig erstellt wird, müssen die Befehle nicht so gestaltet werden, dass sie spätere Veränderungen am System von vornherein berücksichtigen.

Der Systemstart aus der Kommandozeile erfolgt nach einem denkbar einfachen Schema:

  1. Zunächst muss GRUB mitgeteilt werden, auf welchen Datenträger sich die Startdateien des zu startenden Betriebssystems befinden. Diese Angabe wird der Variablen root zugewiesen.

  2. Danach gibt man den genauen Pfad zu den Startdateien des Betriebssystems an. Sofern GRUB diese nicht direkt laden kann - wie es z.B. für Windows der Fall ist - fordert man GRUB einfach auf, den ersten Sektor des zuvor festgelegten Startdatenträgers zu laden. Dieser Sektor enthält dann das Boot-Programm, des fremden Betriebssystems.

  3. Abschließend weißt man GRUB durch den Befehl boot an, das System mit den zuvor festgelegten Angaben zu starten.

Beispiel: Linux starten

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

  1. Start-Datenträger festlegen:

    set root=(hdX,Y) 

  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.

  3. Pfad zu den Startdateien angeben:

    linux /vmlinuz root=/dev/sdXY ro 

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

  4. Pfad zur Ramdisk:

    initrd /initrd.img 
  5. System starten:

    boot 

Tipps zu diesem Beispiel:

Tipp1: Auch, wenn man beim obigen set root= etwas wie

set root=(hd0,1) 

angegeben hat, verarbeitet der Linux-Befehl auch die klassische Notation für Devices, also z.B.:

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

Tipp 2: Bei einem normal installierten Lucid Lynx liegt der Kernel unter /boot/vmlinuz-*. In Grub funktioniert auch "Tab" zur Dateinamenexpansion, d.h. man kann sich bis zu der richtigen Datei "durchhangeln", ohne den exakten Namen zu wissen. Das initrd.img-Image liegt ebenfalls unter /boot.

Beispiel: Windows starten

Hinweis:

Diese Methode über chainloader funktioniert so nur, wenn der GRUB nach Bios-Boot-Spezifikation gestartet wurde und nicht im UEFI-Modus.

Die folgenden Kommandos müssen der Reihe nach eingegeben werden:

  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   

Alternativ kann man aus der Kommandozeile eines mit der Bios-Boot-Spezifikation gestarteten GRUB ein im Bios-Modus installiertes Windows auch mit diesen Befehlen starten:

insmod part_gpt
insmod part_msdos
insmod ntfs
search --file /bootmgr --set root
terminal_output console
ntldr /bootmgr
boot 

(Die insmod-Befehle benötigt man möglicherweise nicht; sie stehen hier zur Maximierung der Gültigkeit.)

Ein im UEFI-Modus installiertes Windows 7 startet man aus der Kommandozeile eines mit der UEFI-Boot-Methode gestarteten GRUB dagegen mit diesen Befehlen:

insmod part_gpt
set bootnext=/efi/microsoft/boot/bootmgfw.efi
search --file $bootnext --set root
terminal_output console
chainloader $bootnext
boot 

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 13. Januar 2021 15:12 von von.wert erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Installation, Bootloader, System, Ubuntu