Heim> System-Tutorial> LINUX> Hauptteil

Tipps zum effektiven Umgang mit der Linux-Kernel-Panik

WBOY
Freigeben: 2024-01-10 21:06:30
nach vorne
524 Leute haben es durchsucht

Vielen Dank an den Website-Benutzer鸢一雨音für seinen Beitrag

Ich habe diesen Artikel aus einem bestimmten Grund geschrieben. Um einen völlig unbeaufsichtigten Start zu konfigurieren, habe ich unter Linux, das auf meinem Arbeitscomputer ausgeführt wurde, fehlerhafte mkinitcpio-Vorgänge ausgeführt, weil ich einen logischen Fehler in der Datei mkinitcpio.conf ignoriert hatte. Dies führt dazu, dass mkinitcpio eine neue Kerneldatei erstellt, diese Kerneldatei jedoch nicht ordnungsgemäß funktioniert. Beim Neustart bricht der Kernel-Start im Panic-Zustand ab.

Wenn der neue Kernel nicht richtig funktioniert, können Sie das System im Allgemeinen vorübergehend mit der Fallback-Version der initramfs-Kerneldatei starten oder die Fallback-Version sogar direkt überschreiben, um die Änderungen rückgängig zu machen. Diesmal war es jedoch mkinitcpio Gleichzeitig wurde die vmlinuz-Kerneldatei geändert, und vmlinuz verfügt nicht über eine Fallback-Version. Normale Benutzer können das System direkt neu installieren. Die Konfiguration der Workstation-Umgebung des Autors ist jedoch recht kompliziert, was bedeutet, dass ich neben dem möglichen Verlust meiner Arbeitsdateien auch viel zusätzliche Zeit für die Neukonfiguration der Entwicklung aufwenden muss Umfeld.

Hinweis:Der Begriff „Reparatur“ in diesem Tutorial bezieht sich auf den „Versuch, verheerende menschliche Änderungen rückgängig zu machen“ und kann daher nicht zur Wiederherstellung nach unbekannten Kernel-Abstürzen verwendet werden.

1. Booten Sie von der LiveCD und sehen Sie sich die Festplatte an

Aufgrund der Erfahrungen, die ich während meiner nebenberuflichen Bedienung und Wartung von Linux-Servern gesammelt habe, dachte ich sofort, dass ich LiveCD zum Booten verwenden könnte, um eine temporäre Linux-Umgebung für die Reparatur des Kernels zu erhalten.

Der Autor verwendet die 64-Bit-Version von Arch Linux, daher habe ich von der LiveCD von Arch Linux gebootet. Nachdem wir den integrierten Root-Benutzer von LiveCD korrekt eingegeben haben, müssen wir den Gerätenamen unserer Hauptfestplatte überprüfen. Führen Sie fdisk -l aus. In meinem Fall ist die Gerätedatei, die meiner Hauptfestplatte und der im Stammverzeichnis bereitgestellten Partition entspricht, /dev/sdb2.

2. Chroot zum Systemstammverzeichnis auf der Festplatte

Um zum Stammverzeichnis des Systems auf der Festplatte zu chrooten und die Systemkomponenten auf der Festplatte normal aufrufen zu können, um Änderungen am System auf der Festplatte vorzunehmen, müssen wir zunächst die Root-Partition auf der Festplatte manuell mounten. Ausführen (meine Gerätedatei ist /dev/sdb2):

mount /dev/sdb2 /mnt

Beeilen Sie sich noch nicht. Obwohl Sie zu diesem Zeitpunkt die Bash des Hauptsystems auf der Festplatte durch Chrooten nach /mnt aufrufen können, können Sie komplexe Aufgaben kaum korrekt ausführen, da noch einige wichtige Verzeichnisse nicht gemountet sind. Wir führen die Anweisungen zum Mounten des Verzeichnisses proc, /sys, /dev bzw. /run aus. Geben Sie /mnt ein und führen Sie Folgendes aus:

mount -t proc proc proc/

mount --rbind /sys sys/

mount --rbind /dev dev/

mount --rbind /run run/

Die Funktionen dieser Verzeichnisse sind:

proc-Verzeichnis: Ein virtuelles Dateisystem im Procfs-Format, das zum Speichern von Prozessstatusdateien verwendet wird (unter Linux scheinen diese Dateien auf den ersten Blick Textdateien zu sein, sind aber tatsächlich Dateizuordnungen des Prozessstatus);

/sys-Verzeichnis: Für Arch Linux ist dies ein virtuelles Dateisystem im Sysfs-Format, ähnlich dem proc-Verzeichnis, das zum Speichern von mit dem System verbundenen Gerätedateien verwendet wird; für traditionelles Unix und Unix-ähnliches ist es ein Zeiger auf das Softlink zum Kernel-Codebaum;

/dev-Verzeichnis

: speichert Gerätedateien, zum Beispiel ist Ihre Festplatte /dev/sdXY;

/run-Verzeichnis

: speichert einen Teil der Systeminformationen nach dem letzten Start;Nachdem wir diese Dinge gemountet haben, können wir in das Stammverzeichnis unserer Hauptfestplatte chrooten:

chroot /mntMedizin bereuen++. Für mich musste ich nur die Datei mkinitcpio.conf ändern und den mkinitcpio-Vorgang erneut ausführen, um die richtige Kerneldatei neu zu generieren. Wenn die Kernel-Panik durch eine falsche Änderung der Konfiguration verursacht wird, kann diese Umgebung im Allgemeinen die meisten Probleme lösen.

3. Einige Fähigkeiten

1. Viele Konfigurationsdateien haben die richtige Version oder Vorlage für das System auf der LiveCD. Wenn Sie sich nicht daran erinnern, wie sie normalerweise aussehen, können Sie darauf zurückgreifen

2. Für Arch Linux können Sie den Befehl pacstrap direkt verwenden, um das Softwarepaket auf dem Mountpunkt /mnt zu verwalten, ohne nach /mnt zu wechseln

3. Es kann unter zwei TTYs betrieben werden, sodass nach dem Chrooten nach /mnt weiterhin Dateien vom LiveCD-Dateisystem nach /mnt übertragen werden können.

Dieses Tutorial sollte für die meisten Linux-Distributionen verfügbar sein und ich hoffe, dass es einigen Linux-Benutzern hilfreich sein wird.

Verwandte Empfehlungen:

Wie konfiguriere ich zwei Grafikkarten im Linux-System?

Das obige ist der detaillierte Inhalt vonTipps zum effektiven Umgang mit der Linux-Kernel-Panik. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!