So verwenden Sie GRUB Rescue, um Linux zu reparieren

Veröffentlicht: 2023-05-14
Ubuntu Linux-Startbildschirm auf einem Laptop
Jordan Gloor / How-To Geek
Wenn Ihre GRUB-Shells eine „grub>“-Eingabeaufforderung anzeigen, können Sie die Befehle ls , set , linux und initrd verwenden, um Ihr Linux-System zu reparieren. Wenn Sie stattdessen die Eingabeaufforderung „grub Rescue>“ sehen, verwenden Sie die Befehle set , insmod , linux und initrd , um Ihren PC zu starten.

Wenn Ihr Linux-Computer sein Betriebssystem nicht starten kann, werden Sie wahrscheinlich auf eine Eingabeaufforderung in der GRUB-Shell starren. Befolgen Sie diese Schritte, um Ihre fehlerhaften Boot-Prozesse zu reparieren.

Inhaltsverzeichnis

Wenn Ihr Bootloader nicht startet
Verwenden der GRUB-Shell
Verwenden der GRUB Rescue Shell
Andere mögliche Abhilfemaßnahmen

Wenn Ihr Bootloader nicht startet

Es gibt nur sehr wenige Computerprobleme, die einem so tief ins Herz fallen wie ein fehlgeschlagener Bootvorgang. Ohne ein funktionierendes Betriebssystem ist Ihr Computer kein wirklicher Computer.

Es kann sich um ein sehr undurchsichtiges Problem handeln, bei dem es keine einfache Möglichkeit gibt, der Ursache auf den Grund zu gehen. Ohne Zugriff auf Linux können Sie keine der üblichen Diagnosetools und -prozesse verwenden, die Sie zur Untersuchung des Problems verwenden würden. Und ohne herauszufinden, wo das Problem liegt, wie können Sie es beheben?

Unter Linux ist GRUB die Software, die den Bootvorgang steuert. Wenn Sie mehrere Betriebssysteme installiert haben, können Sie das Betriebssystem auswählen, mit dem Sie booten möchten.

GRUB wird durch seine Konfiguration gesteuert. Um seine Funktionen auszuführen, ist es auch auf andere unterstützende Dateien angewiesen. Wenn eines davon fehlt oder beschädigt ist, funktioniert GRUB nicht. Änderungen an den Festplatten und Partitionen Ihres Computers müssen in der GRUB-Konfiguration berücksichtigt werden. Ist dies nicht der Fall, ergeben die Anweisungen von GRUB keinen Sinn und Ihr Bootvorgang funktioniert nicht.

So brennen Sie eine ISO-Datei auf ein USB-Laufwerk unter Linux
VERWANDT : So brennen Sie eine ISO-Datei auf ein USB-Laufwerk unter Linux

Nebenbei bemerkt, das, was wir alle GRUB nennen, ist eigentlich GRUB 2. Dabei handelt es sich um eine erweiterte Version von GRUB, die bereits 2012 veröffentlicht wurde. Neben anderen Änderungen hat sie die Art und Weise geändert, wie die Datei „grub.cfg“ erstellt wurde, und ermöglicht es Ihnen Booten Sie von einem Wechselmedium.

Wenn GRUB ein Betriebssystem nicht laden kann, wird in der GRUB-Shell eine Eingabeaufforderung angezeigt. Dies ist eine minimalistische Umgebung, in der Sie eine Handvoll Aktionen ausführen können. Bei richtiger Ausführung können diese Schritte Ihren Computer jedoch wieder zum Leben erwecken.

Es gibt zwei verschiedene GRUB-Shells. Abhängig von der Grundursache des Problems werden Sie möglicherweise an einer GRUB-Shell-Eingabeaufforderung angezeigt:

 grub>

oder an einer GRUB- Rettungs- Shell-Eingabeaufforderung:

 Madenrettung>

Die GRUB-Rettungsshell ist noch eingeschränkter als die GRUB-Shell, bietet aber immer noch genug Leistung, um Ihren Computer zum Booten zu bringen. Sobald Ihr Computer hochgefahren ist, können Sie die Grundursache viel besser beheben.

Verwenden der GRUB-Shell

Die GRUB-Shell ist eine Befehlszeilenschnittstelle, mit der Sie eine kleine Teilmenge von Linux-Befehlen verwenden können. Wenn Sie sich hier und nicht auf Ihrem üblichen Anmeldebildschirm befinden, bedeutet das, dass Ihr Startvorgang durcheinander ist.

Die GRUB-Shell-Eingabeaufforderung

Die Befehle, auf die Sie Zugriff haben, sind nicht die gleichen wie bei den üblichen Linux-Versionen. Beispielsweise ist der ls Befehl der GRUB-Shell nicht der ls Befehl der Bash. Es hat damit sehr wenig gemeinsam. Wir können dies sehen, indem wir die Option --help verwenden.

 ls --help 

Verwenden der Option --help mit der GRUB-Shell-Version von ls

Es werden nur fünf Optionen aufgeführt. Das ist weit entfernt von den Dutzenden Optionen, die ls in Bash unterstützt. Dennoch können wir die Situation trotz unserer etwas gedämpften Befehlspalette noch verbessern.

Geben Sie an der Eingabeaufforderung ls ein und drücken Sie die Eingabetaste.

 ls 

Die Ausgabe der GRUB-Shell-Version von ls mit Laufwerken und Partitionen

Auf diesem Computer werden drei Elemente aufgelistet.

  • (hd0) ist die erste Festplatte.
  • (hd0,gpt1) ist die erste Partition auf der ersten Festplatte.
  • (hd0,gpt2) ist die zweite Partition auf der ersten Festplatte.

Die Bezeichnung „gpt“ steht für GUID-Partitionstabelle. Wir müssen die Klammern „ () “ einfügen, wenn wir auf eine Partition verweisen, aber wir können die Bezeichnung weglassen.

Um die Partitionen der Reihe nach zu betrachten, verwenden wir ls .

 ls (hd0,1)
 ls (hd0,2) 

Verwenden der GRUB-Shell-Version von ls zur Identifizierung der Linux-Partition

Wir haben festgestellt, dass sich auf der zweiten Partition ein Linux-Dateisystem befindet. Wir werden die Sache etwas genauer untersuchen, indem wir uns das Stammverzeichnis dieser Partition ansehen.

 ls (hd0,2)/ 

Verwenden der GRUB-Shell-Version von ls, um eine bestimmte Partition zu untersuchen

Dies ist eindeutig die Linux-Partition mit dem Boot-Verzeichnis darauf. Hier werden die GRUB-Dateien, Linux-Boot-Images und andere Boot-Dateien gespeichert.

Auf diesem Computer müssen wir auf die Partition (hd0,2) verweisen, wenn wir unsere Befehle erteilen. Auf Ihrem Computer würden Sie die Partition verwenden, auf der Sie Ihre Linux-Installation finden.

Wir können den Befehl cat verwenden, um nach Textdateien zu suchen, indem wir den Verzeichnispfad und den Dateinamen wie folgt an den Partitionsnamen anhängen:

 cat (hd0,2)/etc/issue 

Schauen Sie sich die Linux-Version mit dem Befehl cat in der GRUB-Shell an

Bei Multi-Boot-Installationen ist dies eine nützliche Methode, um zu überprüfen, ob Sie sich auf der richtigen Partition befinden. Es eignet sich auch hervorragend für den Blick in Konfigurationsdateien.

Hier verwenden wir den Befehl ls mit den Optionen -l (lang) und -h (für Menschen lesbare Größen), um die Dateien im Verzeichnis „/boot“ aufzulisten.

 ls -lh (hd0,2)/boot 

Auflisten der Dateien im /boot-Verzeichnis mit der GURB-Version von ls

Um diesen Computer zum Booten zu bringen, müssen wir GRUB mitteilen, dass unsere neu entdeckte Linux-Partition die Bootdateien enthält.

 setze root=(hd0,2)

Wir müssen angeben, von welchem ​​Linux-Kernel gebootet werden soll. Wir machen das mit dem linux Befehl. Beachten Sie, dass wir auch das Stammverzeichnis mithilfe des üblichen Linux-Festplatten- und Partitionsbenennungsschemas bereitstellen müssen.

 Linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2

Auf unserem Beispielcomputer verwenden wir (hd0) , die erste Festplatte. Dies wird in der üblichen Linux-Nomenklatur als sda bezeichnet. Wir haben festgestellt, dass die zweite Partition die Linux-Partition ist, daher müssen wir sda2 angeben.

Ihre Maschine könnte anders sein. Wenn Ihre Linux-Partition beispielsweise als (hd2,1) gemeldet wird, bedeutet dies Partition eins auf der dritten Festplatte oder sdc1 .

Wir müssen auch angeben, welches RAM-basierte Dateisystem-Image beim Booten des Computers verwendet werden soll. Dieser muss dieselbe numerische Komponente verwenden wie der von uns verwendete Linux-Kernel.

 initrd /boot/initrd.img-6.2.0-20-generic 

Festlegen der Boot-Parameter in der GRUB-Shell

Um nun unser System zu starten, geben Sie „boot“ ein und drücken Sie „Enter“.

Dadurch sollte Ihr Computer unter Linux gestartet werden. Das hat uns wieder zum Laufen gebracht, aber wir müssen GRUB noch reparieren, damit wir dies nicht jedes Mal tun müssen, wenn wir unseren Computer starten.

Wir werden update-grub ausführen. Dadurch wird unser System gescannt, Betriebssysteme identifiziert und eine neue GRUB-Konfiguration erstellt. Wir müssen dies als Root-Benutzer ausführen.

 sudo update-grub 

Führen Sie update-grub aus, um die Datei grub.cfg neu zu erstellen

In seltenen Fällen müssen Sie möglicherweise auch den GRUB-Bootloader mit grub-install neu installieren.

 sudo grub-install /dev/sda

Beachten Sie, dass Sie nicht angeben müssen, auf welcher Partition die Installation erfolgen soll, sondern nur auf dem Laufwerk. Bei normalen Installationen ist es dasselbe Laufwerk, auf dem sich Ihr Linux befindet.

Der Beweis für den Pudding kommt mit dem nächsten Neustart. Ihr Computer sollte normal neu starten.

VERWANDT: So konfigurieren Sie die Einstellungen des GRUB2-Bootloaders

Verwenden der GRUB Rescue Shell

Abhängig von der Art des Startproblems werden Sie möglicherweise nicht in die GRUB-Shell weitergeleitet. Möglicherweise verbleiben Sie im GRUB- Rettungsmodus . In diesem Fall sieht Ihre Eingabeaufforderung folgendermaßen aus:

 Madenrettung>

Die Befehle, die wir in dieser Shell ausgeben müssen, sind unterschiedlich. Wir müssen ls verwenden, um die Linux-Partition zu finden, so als ob Sie die GRUB-Shell verwenden würden. Nachdem Sie die Linux-Partition identifiziert haben, können Sie mit der Eingabe dieser Befehle fortfahren.

Denken Sie daran, die für Ihren Computer korrekten Laufwerkskennungen und Kernel-Versionsnummern zu verwenden. Der Befehl insmod lädt Kernelmodule.

 set prefix=(hd0,2)/boot/grub
 setze root=(hd0,2)
 insmod normal
 insmod linux
 Linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2
 initrd /boot/initrd.img-6.2.0-20-generic 

Festlegen der Boot-Parameter in der GRUB-Rettungs-Shell

Anschließend können Sie „boot“ eingeben und die Eingabetaste drücken, um Ihren Computer neu zu starten. Sobald es neu gestartet wurde und Sie sich angemeldet haben, aktualisieren Sie GRUB mit dem Befehl update-grub .

Andere mögliche Abhilfemaßnahmen

Wenn sich herausstellt, dass das Problem darin besteht, dass Startdateien wie die Dateien „vmlinuz“ und „initrd.img“ fehlen, können Sie Ihren Computer von einer Live-DVD oder einem bootfähigen Linux-USB-Flash-Laufwerk starten und die fehlenden Dateien an die richtige Stelle kopieren.

Beachten Sie, dass die Dateien „vmlinuz“ und „initrd.img“ dieselben Versionsnummern enthalten müssen , da sie als übereinstimmendes Paar funktionieren.

VERWANDT: So erstellen Sie einen bootfähigen Linux Live USB auf Ihrem Mac