Kernel-Panik mit dem Fehler "Root-Gerät kann nicht geöffnet werden". Wo füge ich die Option "root =" hinzu?

9

Wenn ich versuche, mit dem Linux-Kernel 3.0.0.13 (dem durch die Upgrades installierten) zu booten, wird ein Kernel Panic-Fehler angezeigt:

VFS: Root-Gerät "sda1" oder unbekannter Block (0,0) kann nicht geöffnet werden. Bitte fügen Sie eine korrekte Boot-Option "root =" hinzu.

Zum Glück habe ich kein Problem, wenn ich mit der vorherigen Version boote. Wie kann ich das lösen? Wo soll ich das richtige anhängen root= option? Wenn ich diesen Kernel nicht zum Laufen bringe, wie kann ich ihn als Standard entfernen und mich an den älteren halten?

Lucaceron
quelle
Selbes Problem hier. Der Hauptunterschied, den ich beobachte, ist, dass der Grub conf bis 3.0.0.12 versucht, die Festplatte anhand seiner UUID zu identifizieren. 3.0.0.13 verwendet jetzt / dev / sda6 .. seltsam ...
Dan Soap

Antworten:

11

Sie haben nicht viele Informationen mit Protokollen und dergleichen bereitgestellt, um fortzufahren, 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

Es folgt 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,0oder 8,3können in Ihrem Fall unterschiedlich sein - es bezieht sich auf das Gerät, auf das der Kernel zugreifen möchte (und das fehlschlägt). Im Allgemeinen kann man sagen, dass der Kernel die Hardware nicht identifizieren kann, wenn die erste Ziffer 0 ist. Wenn es sich um eine andere Ziffer handelt (z. B. 8), kann das Dateisystem nicht identifiziert werden (es kann jedoch auf die Hardware zugegriffen werden).

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

  • In der Kernelkonfiguration fehlen Treiber für Ihren Festplattencontroller (Fälle 1, 4, 5).
  • In der Kernelkonfiguration fehlen Treiber für den von Ihrem Festplattencontroller verwendeten Bus
  • In der Kernelkonfiguration fehlen Treiber für das von Ihnen verwendete Dateisystem
  • Das Gerät ist in Ihrem root = -Parameter falsch identifiziert (Fälle 2, 3).

Die Lösung des Problems ist einfach, wenn Sie den Grund kennen. Das ist höchstwahrscheinlich nicht der Fall. Hier ist eine kurze Überprüfung.

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

  • Überprüfen Sie, ob Sie den Bus / das Protokoll, den Ihr Festplattencontroller verwendet, integriert haben (und nicht als Modul).
  • Dies ist höchstwahrscheinlich PCI-Unterstützung, SATA-Unterstützung (die unter der SCSI-Geräteunterstützung liegt), ...
  • Überprüfen Sie, ob Sie Unterstützung für den von Ihnen verwendeten Festplattencontroller eingebaut haben (und nicht als Modul). Einer der häufigsten Fälle: Sie haben die Unterstützung für Ihr Festplattencontrollerprotokoll (IDE, SATA, SCSI, ...) ausgewählt, aber vergessen
    , den Festplattencontrollertreiber selbst (wie Intel PIIX) auszuwählen. Versuchen Sie
    den folgenden lscpi Befehl ausgeführt wird , und fügen Sie die Ausgabe auf
    http://kmuto.jp/debian/hcl/ . Die Site zeigt Ihnen, welche Kerneltreiber Sie für Ihr System auswählen müssen. In der menuconfig können
    Sie "/" eingeben, um die Suchfunktion zu öffnen, und den Treibernamen eingeben,
    um herauszufinden, wo sie sich befindet. # lspci -n
  • Überprüfen Sie, ob Sie die von Ihnen verwendeten Dateisysteme (und nicht als Modul) unterstützt haben.
  • Angenommen, Ihr Root-Dateisystem verwendet btrfs (was ich definitiv nicht empfehle), aber Sie haben es nicht ausgewählt oder als
    Modul ausgewählt, dann wird der angezeigte Fehler angezeigt. Stellen Sie sicher, dass die Dateisystemunterstützung
    im Kernel integriert ist.
  • Überprüfen Sie, ob der Kernel-Parameter für root=auf die richtige Partition verweist.

    Das ist nicht so dumm, wie es sich anhört. Wenn Sie mit einem Kernel gestartet werden, werden Ihre Festplatten möglicherweise als / dev / sda aufgelistet, während Ihr (konfigurierter) Kernel erwartet, dass sie / dev / hda sind. Dies liegt nicht daran, dass Kernel nicht miteinander übereinstimmen, sondern an den verwendeten Treibern: Ältere Treiber verwenden die hda-Syntax, neuere sda.

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

    Außerdem geben aktuelle Kernel einen Überblick über die Partitionen, die sie auf dem Gerät gefunden haben. Wenn dies der Fall ist, können Sie möglicherweise feststellen, ob Sie eine Partition falsch ausgewählt haben (im Beispiel am Anfang dieses Abschnitts werden nur zwei Partitionen gefunden, während der Kernel angewiesen wurde, die dritte Partition zu starten). Wenn dies nicht der Fall ist, liegt dies höchstwahrscheinlich daran, dass der Kernel das Gerät zunächst nicht kennt (daher kann er nicht versuchen, Partitionen anzuzeigen).

  • Überprüfen Sie, ob der Kernel, der vom Bootloader gestartet wird, der richtige Kernel ist. Ich habe Leute gesehen, die nach dem Erstellen eines ersten Kernels (der nicht bootet) vergessen, dass sie mounten müssen, /bootbevor sie den Kernel mit einem neuen überschreiben. Infolgedessen kopieren sie den Kernel in das Root-Dateisystem ( /), während der Bootloader weiterhin erwartet, dass sich das Kernel-Image auf der /bootPartition befindet.

Nitin Venkatesh
quelle
1
Hallo, es hat viel Zeit vergangen, aber danke. Ich hatte eine fehlerhafte CD-Rom und entfernte, dass alles gut funktionierte!
Lucaceron
Link 1, Link 4 und Link 5 sind jetzt alle tot.
Fragezeichen
0

Versuchen Sie nach dem Lesen dieser Antwort, in der erklärt wird, was los ist, die [Boot-Reapir-CD] [1] [1]: https://help.ubuntu.com/community/Boot-Repair

Hat bei der Reparatur des "Das Gerät ist in Ihrem root = -Parameter falsch identifiziert (Fälle 2, 3)" hervorragend funktioniert.

madcap66
quelle