LFCS So konfigurieren und Fehlerbehebung Grand Unified Bootloader (GRUB) - Teil 13

LFCS So konfigurieren und Fehlerbehebung Grand Unified Bootloader (GRUB) - Teil 13

Aufgrund der jüngsten Änderungen in den LFCS 2. Februar 2016, Wir fügen der hier veröffentlichten LFCS -Serie die benötigten Themen hinzu. Um sich auf diese Prüfung vorzubereiten, werden Sie sehr ermutigt, auch der LFCE -Serie zu folgen.

LFCS: Konfigurieren und Fehlerbehebung bei Grub -Bootloader - Teil 13

In diesem Artikel werden wir Sie mit dem Grub vorstellen und erklären, warum ein Bootloader erforderlich ist und wie er dem System Vielseitigkeit verleiht.

Der Linux-Startvorgang ab dem Zeitpunkt, an dem Sie die Ein- / Aus-Taste Ihres Computers drücken, bis Sie ein voll funktionsfähiges System erhalten, folgt dieser hochrangigen Sequenz:

  1. 1. Ein Prozess bekannt als als POST (Einschalttest) führt eine Gesamtprüfung der Hardwarekomponenten Ihres Computers durch.
  2. 2. Wenn POST Vervollständigt es die Steuerung an den Bootlader, der wiederum den Linux -Kernel im Speicher lädt (zusammen mit Initramfs) und führt es aus. Der am häufigsten verwendete Stiefelloader unter Linux ist der Grand Unified Bootloader, oder RODEN kurz.
  3. 3. Der Kernel überprüft und greift auf die Hardware zu und führt dann den ersten Prozess aus (meist unter seinem generischen Namen bekanntdrin”), Was wiederum den Systemstart durch Starten von Diensten abschließt.

In Teil 7 dieser Serie („Sysvinit, Upstart und Systemd“) Wir haben die Service -Management -Systeme und Tools eingeführt, die von modernen Linux -Verteilungen verwendet wurden. Möglicherweise möchten Sie diesen Artikel überprüfen, bevor Sie weiter fortfahren.

Einführung des Grub -Boot -Loaders

Zwei Major RODEN Versionen (v1 manchmal genannt GRUB -Erbe Und v2) kann in modernen Systemen gefunden werden, obwohl die meisten Verteilungen verwendet werden v2 standardmäßig in ihren neuesten Versionen. Nur Red Hat Enterprise Linux 6 und seine Derivate verwenden immer noch v1 Heute.

So konzentrieren wir uns hauptsächlich auf die Merkmale von v2 In diesem Leitfaden.

Ungeachted der RODEN Mit einem Startloader können der Benutzer:

  1. 1). Ändern Sie die Art und Weise, wie sich das System verhält, indem Sie verschiedene Kernel angeben, um sie zu verwenden,
  2. 2). Wählen Sie zwischen alternativen Betriebssystemen zum Booten und
  3. 3). Fügen Sie Konfigurationsstrophen hinzu oder bearbeiten Sie sie unter anderem die Startoptionen.

Heute, RODEN wird von der aufrechterhalten GNU Projekt und ist auf ihrer Website gut dokumentiert. Sie werden aufgefordert, die offizielle Dokumentation der GNU zu verwenden, während Sie diesen Leitfaden durchlaufen.

Wenn der Systemstiefel mit den folgenden dargestellt wird RODEN Bildschirm in der Hauptkonsole. Zunächst werden Sie aufgefordert, zwischen alternativen Kerneln auszuwählen (standardmäßig startet das System mit dem neuesten Kernel) und dürfen eine eingeben RODEN Befehlszeile (mit C) oder die Startoptionen bearbeiten (durch Drücken der e Taste).

Grub -Boot -Bildschirm

Einer der Gründe, warum Sie in Betracht ziehen würden, mit einem älteren Kernel zu booten, ist ein Hardware -Gerät, das früher ordnungsgemäß funktioniert hat und begonnen hat “aufhalten”Nach einem Upgrade (siehe diesen Link in der ABSUBUNTU Foren für ein Beispiel).

Der GRUB V2 Die Konfiguration wird auf dem BOOT von gelesen /boot/grub/grub.CFG oder /boot/grub2/grub.CFG, wohingegen /boot/grub/grub.Conf oder /boot/grub/Menü.lst werden in verwendet v1. Diese Dateien dürfen nicht von Hand bearbeitet werden, sondern werden basierend auf dem Inhalt von geändert /etc/Standard/grub und die Dateien darin gefunden /etc/grub.D.

In einem Centos 7, Hier ist die Konfigurationsdatei, die erstellt wird, wenn das System zum ersten Mal installiert wird:

Grub_timeout = 5 grub_distributor = "$ (SED, Release .*$ ,, g ' /etc /system-release) "grub_default = gespeichert grub_disable_submenu = true grub_terminal_output =" console "grub_cmdline_linux =" vconsole.keymap = la-latin1 rd.LVM.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.LVM.lv = Centos_centos7-2/root rhgb leise "grub_disable_recovery =" true " 

Zusätzlich zur Online -Dokumentation finden Sie das GNU -Grub -Handbuch mit Informationen wie folgt:

# info m 

Wenn Sie speziell an den verfügbaren Optionen interessiert sind /etc/Standard/grub, Sie können den Konfigurationsabschnitt direkt aufrufen:

# info -f grub -n 'einfache Konfiguration' 

Mit dem obigen Befehl finden Sie das heraus Grub_timeout Legt die Zeit zwischen dem Moment fest, in dem der anfängliche Bildschirm angezeigt wird und der automatische System des Systems beginnt, es sei denn, der Benutzer wird unterbrochen. Wenn diese Variable auf festgelegt ist -1, Der Start wird erst gestartet, wenn der Benutzer eine Auswahl trifft.

Wenn mehrere Betriebssysteme oder Kerne auf derselben Maschine installiert sind, Grub_default Erfordert einen Ganzzahlwert, der angibt, welcher Betriebssystem- oder Kerneleintrag im GRUB -Anfangsbildschirm standardmäßig starten soll. Die Liste der Einträge kann nicht nur im oben gezeigten Begrüßungsbildschirm angezeigt werden, sondern auch den folgenden Befehl:

In Centos und openSuse:

# awk -f \ "$ 1 ==" MenuEntry "Druck $ 2 '/boot/grub2/grub.CFG 

In Ubuntu:

# awk -f \ "$ 1 ==" MenuEntry "print $ 2 '/boot/grub/grub.CFG 

In dem im folgenden Bild gezeigten Beispiel, wenn wir mit der Kernel -Version booten möchten 3.10.0-123.EL7.x86_64 (4. Eintrag) müssen wir einstellen Grub_default Zu 3 (Die Einträge sind innen mit Null nummeriert) wie folgt:

Grub_default = 3 
Boot -System mit alter Kernelversion

Eine endgültige GRUB -Konfigurationsvariable, die von besonderem Interesse ist, ist Grub_cmdline_linux, die verwendet werden, um Optionen an den Kernel weiterzugeben. Die Optionen, die GRUB an den Kernel übergeben werden können.

Aktuelle Optionen in meinem Centos 7 Server sind:

Grub_cmdline_linux = "vconsole.keymap = la-latin1 rd.LVM.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.LVM.lv = Centos_centos7-2/root rhgb still " 

Warum sollten Sie die Standardkernelparameter ändern oder zusätzliche Optionen übergeben?? In einfachen Worten kann es Zeiten geben, in denen Sie dem Kernel bestimmte Hardwareparameter mitteilen müssen, dass es möglicherweise nicht selbst bestimmen oder die Werte, die es erkennen würde.

Das ist mir vor nicht allzu langer Zeit passiert, als ich es versuchte Vektor Linux, ein Derivat von Slackware, Auf meinem 10-jährigen Laptop. Nach der Installation wurde nicht die richtigen Einstellungen für meine Grafikkarte erkannt, sodass ich die Kernel -Optionen ändern musste.

Ein weiteres Beispiel ist, wenn Sie das System in den Einzelbenutzermodus bringen müssen, um Wartungsaufgaben auszuführen. Sie können dies tun, indem Sie das Wort Single an anhängen Grub_cmdline_linux und Neustart:

Grub_cmdline_linux = "vconsole.keymap = la-latin1 rd.LVM.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.LVM.lv = centos_centos7-2/root rhgb still einzel" 

Nach der Bearbeitung /etc/Defalt/grub, Sie müssen rennen Update-Grub (Ubuntu) oder grub2 -mkconfig -o/boot/grub2/grub.CFG (Centos Und OpenSuse) Danach aktualisiert roden.CFG (Andernfalls gehen Änderungen beim Start verloren).

Dieser Befehl verarbeitet die zuvor genannten Startkonfigurationsdateien zum Aktualisieren roden.CFG. Diese Methode sorgt dafür.

Fixierung von Linux -Grub -Problemen

Wenn Sie ein zweites Betriebssystem installieren oder wenn Ihre GRUB -Konfigurationsdatei aufgrund menschlicher Fehler beschädigt wird, können Sie Ihr System wieder auf die Füße bringen und wieder booten können.

Drücken Sie im ersten Bildschirm C Um eine Grub -Befehlszeile zu erhalten (denken Sie daran, dass Sie auch drücken können e So bearbeiten Sie die Standard -Startoptionen) und verwenden Sie Hilfe, um die verfügbaren Befehle in die GRUB -Eingabeaufforderung zu bringen:

Behebung von GRUB -Konfigurationsproblemen unter Linux

Wir werden uns darauf konzentrieren ls, Dadurch werden die installierten Geräte und Dateisysteme aufgeführt, und wir werden untersuchen, was sie findet. Im Bild unten können wir sehen, dass es 4 Festplatten gibt (HD0 durch HD3).

Nur HD0 scheint aufteilt worden zu sein (wie durch belegt durch MSDOS1 Und msdos2, Wo 1 Und 2 sind die Partitionsnummern und MSDOs ist das Partitionierungsschema).

Lassen Sie uns nun die erste Partition untersuchen HD0 (MSDOS1) um zu sehen, ob wir dort müßt werden können. Dieser Ansatz ermöglicht es uns, Linux zu starten, und es verwenden andere Tools mit hoher Ebene, um die Konfigurationsdatei zu reparieren oder GRUB insgesamt neu zu installieren, wenn sie benötigt wird:

# LS (HD0, MSDOS1)/ 

Wie wir im hervorgehobenen Bereich sehen können, fanden wir das GRUB2 Verzeichnis in dieser Partition:

Finden Sie die GRUB -Konfiguration

Sobald wir sicher sind, dass sich grub befindet (HD0, MSDOS1), geben wir grub an, wo wir seine Konfigurationsdatei finden und sie dann anweisen, das Menü zu starten:

Setzen Sie Präfix = (HD0, MSDOS1)/GRUB2 Setzen Sie Root = (HD0, MSDOS1) Insmod Normal normal 
Finden und starten Sie das GRUB -Menü

Wählen Sie dann im Grub -Menü einen Eintrag und drücken Sie Eingeben mit es zu booten. Sobald das System gebootet ist, können Sie die ausstellen GRUB2-INSTALL /DEV /SDX Befehl (Änderung SDX Mit dem Gerät, auf das Sie grub installieren möchten). Die Startinformationen werden dann aktualisiert und alle zugehörigen Dateien wiederhergestellt.

# Grub2-Installation /Dev /SDX 

Weitere komplexere Szenarien werden zusammen mit ihren vorgeschlagenen Korrekturen im Ubuntu Grub2 -Fehlerbehebungshandbuch dokumentiert. Die erläuterten Konzepte sind auch für andere Verteilungen gültig.

Zusammenfassung

In diesem Artikel haben wir Sie mit GRUB vorgestellt, angegeben, wo Sie sowohl online als auch offline Dokumentation finden können, und erklärt, wie Sie sich einem Szenario nähern, in dem ein System aufgrund eines Bootloaderproblems nicht mehr ordnungsgemäß bootet hat.

Glücklicherweise ist GRUB eines der Tools, das am besten dokumentiert wird, und Sie können leicht Hilfe in den installierten Dokumenten oder online mit den Ressourcen finden, die wir in diesem Artikel geteilt haben.

Haben Sie Fragen oder Kommentare? Zögern Sie nicht, uns mit dem folgenden Kommentarformular mithilfe des Kommentarformulars mitzuteilen. Wir freuen uns von Ihnen zu hören!

Werden Sie ein Linux -zertifizierter Systemadministrator