GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Kernel-Panik mit dem Fehler „Root-Gerät kann nicht geöffnet werden“, wo füge ich die Option „root=“ an?

Immer wenn ich versuche, mit dem Linux-Kernel 3.0.0.13 (dem durch die Upgrades installierten) zu booten, erhalte ich einen Kernel Panic-Fehler:

VFS:Root-Gerät „sda1“ oder unbekannter Block (0,0) kann nicht geöffnet werden
Bitte fügen Sie eine korrekte „root=“-Startoption hinzu;

Glücklicherweise habe ich keine Probleme, wenn ich mit der vorherigen Version boote.
Wie kann ich das lösen? Wo soll ich die richtige root= option anhängen? ? Wenn ich diesen Kernel nicht zum Laufen bekomme, wie kann ich ihn als Standard entfernen und beim älteren bleiben?

Akzeptierte Antwort:

Sie haben nicht viele Informationen mit Protokollen und dergleichen bereitgestellt, mit denen Sie fortfahren können, aber ich vermute, dass dieser Fehler höchstwahrscheinlich darauf zurückzuführen ist, dass der Kernel durch ein IDE / SATA-Laufwerk verwirrt ist. Eine schnelle Google-Suche führte mich zu Link 1, Link 2, Link 3

Folgend ist der Auszug aus einem Link, auf den durch einen der obigen Links verwiesen wird:

Höchstwahrscheinlich eines der am häufigsten auftretenden Probleme (aber sobald Sie es gelöst haben,
werden Sie es höchstwahrscheinlich nie wieder sehen):

Unable to mount root fs on unknown-block(0,0)

oder

VFS: Cannot open root device "sda3" or unknown-block(8,3)
Please append a correct "root=" boot option; here are the available partitions:
  sda driver: sd
    sda1 sda2

Die Ziffern 0,0 oder 8,3 kann in Ihrem Fall anders sein – es bezieht sich auf
das Gerät, auf das der Kernel zuzugreifen versucht (und das fehlschlägt).
Allgemein kann man sagen, dass, wenn die erste Ziffer eine 0 ist, die
Kernel kann die Hardware nicht identifizieren. Wenn es sich um eine andere Ziffer
(wie 8) handelt, kann es das Dateisystem nicht identifizieren (aber kann
auf die Hardware zugreifen).

Das Problem hier ist, dass der Kernel, den Sie booten,
den root=/dev/... nicht übersetzen kann Parameter, den Sie ihm (innerhalb der Bootloader-Konfiguration) gegeben haben, in ein echtes, zugängliches Dateisystem. Mehrere
Gründe können zu einem solchen Fehler führen:

  • der Kernel-Konfiguration fehlen Treiber für Ihren HDD-Controller (Fälle 1, 4, 5)
  • Der Kernel-Konfiguration fehlen Treiber für den Bus, der von Ihrem HDD-Controller verwendet wird
  • Der Kernel-Konfiguration fehlen Treiber für das von Ihnen verwendete Dateisystem
  • das Gerät wird in Ihrem root=-Parameter falsch identifiziert (Fälle 2, 3)

Die Lösung des Problems ist einfach, wenn Sie den Grund kennen. Du wahrscheinlichst
nicht, also hier ein kurzer Check.

Öffnen Sie den Kernel-Konfigurationsassistenten (das make menuconfig Teil), damit
Sie die Kernelkonfiguration entsprechend aktualisieren können.

  • Überprüfen Sie, ob Sie eingebaute (und nicht als Modul) Unterstützung für den Bus / das Protokoll haben, das Ihr Festplattencontroller verwendet.
  • Höchstwahrscheinlich ist dies PCI-Unterstützung, SATA-Unterstützung (die unter SCSI-Geräteunterstützung liegt), …
  • Prüfen Sie, ob Sie eingebaute (und nicht als Modul) Unterstützung für den verwendeten HDD-Controller haben.
    Einer der häufigsten Fälle:Sie haben Unterstützung für Ihr Festplatten-Controller-Protokoll (IDE, SATA, SCSI, …), aber vergessen,
    den HDD-Controller-Treiber selbst auszuwählen (wie Intel PIIX). Versuchen Sie
    , den folgenden lscpi-Befehl auszuführen, und fügen Sie seine Ausgabe auf
    http://kmuto.jp/debian/hcl/ ein. Die Seite zeigt Ihnen, welche Kernel
    -Treiber Sie für Ihr System auswählen müssen. Innerhalb der Menükonfiguration
    können Sie „/“ eingeben, um die Suchfunktion zu öffnen, und den Namen des Treibers
    eingeben, um herauszufinden, wo er sich befindet. # lspci -n
  • Überprüfen Sie, ob Sie Unterstützung für das/die von Ihnen verwendete(n) Dateisystem(e) eingebaut (und nicht als Modul) haben.
  • Angenommen, Ihr Root-Dateisystem verwendet btrfs (was ich definitiv nicht empfehle), aber Sie haben es nicht ausgewählt oder es als
    Modul erstellt, dann erhalten Sie den Fehler, den Sie sehen . Stellen Sie sicher, dass die Unterstützung für das Dateisystem
    in den Kernel eingebaut ist.
  • Überprüfen Sie, ob der Kernelparameter für root= zeigt auf die richtige Partition.

    Das ist nicht so dumm, wie es klingt. Wenn Sie mit einem
    Kernel booten, werden Ihre Platten möglicherweise als /dev/sda aufgelistet, während Ihr
    (konfigurierter) Kernel erwartet, dass es /dev/hda ist. Das liegt nicht
    daran, dass die Kernel untereinander inkonsistent sind, sondern an den
    verwendeten Treibern:ältere Treiber verwenden die hda-Syntax, neuere sda.

    Versuchen Sie, hda mit sda (und hdb mit sdb und …) zu wechseln.

    Außerdem geben neuere Kernel einen Überblick über die Partitionen, die sie
    auf dem angegebenen Gerät gefunden haben. Wenn dies der Fall ist, kann es Ihnen helfen, festzustellen, ob Sie
    eine Partition falsch ausgewählt haben (in dem Beispiel zu Beginn dieses Abschnitts
    werden nur zwei Partitionen gefunden, während der Kernel
    zum Booten angewiesen wurde der dritte). Wenn dies nicht der Fall ist, liegt es höchstwahrscheinlich daran,
    dass der Kernel das Gerät zunächst nicht kennt (so dass er nicht
    versuchen kann, Partitionen anzuzeigen).

  • Überprüfen Sie, ob der Kernel, der vom Bootloader gebootet wird, der richtige Kernel ist.
    Ich habe Leute gesehen, die nach dem Erstellen eines ersten Kernels (der nicht bootet) vergessen, dass sie /boot vorher den
    Kernel mit einem neuen überschreiben. Als Ergebnis kopieren sie den
    Kernel in das Root-Dateisystem (/ ), während der Bootloader immer noch
    erwartet, dass sich das Kernel-Image auf /boot befindet Partition.


Ubuntu
  1. Deaktivieren Sie die Anmeldung mit dem Root-Konto

  2. Fehler beim Signieren von CSR mit dem Ca-Stammschlüssel?

  3. Wo ist die Inittab-Datei?

  4. Wie geht man mit Malware auf dem Laptop um?

  5. Fehler beim Laden des Moduls Btusb mit Kernel 4.10.0-20-generic?

So beheben Sie den Fehler „Verbindung zum Docker-Daemon kann nicht hergestellt werden“.

So fügen Sie eine Anwendung zur Liste der geöffneten Anwendungen in Ubuntu hinzu

Wie füge ich eine Anwendung zur Liste der mit Anwendungen geöffneten hinzu?

Wie behebt man „Die Festplatte scheint zu klein“ mit Testdisk Deeper Search Option?

Starten Sie PHP-FPM automatisch mit der Root-Option

Wohin geht der verbleibende Speicher von vm.overcommit_ratio?