Root-Gerät '' konnte nicht gefunden werden

7
ERROR: device '' not found. Skipping fsck.
ERROR: Unable to find root device ''.
You are being dropped to recovery shell 

Ich habe seit einiger Zeit versucht, Arch Linux zu installieren und bin weiterhin auf diesen Fehler gestoßen. Ich habe ernsthaft keine Ahnung, was ich tun soll.

Ein kleiner Hintergrund: Mein Computer hatte ursprünglich einen Dual-Boot mit Fedora und Windows 10 (beide 64-Bit), wobei Windows zuerst installiert wurde. Ich beschloss, Fedora durch Arch zu ersetzen. Es gibt separate Partitionen für root /boot/efiund /home, und ich habe nur root überschrieben. Ich habe die Partitionen gemountet, alles außer /home(und /boot, was ich fälschlicherweise behalten habe) gelöscht . Ich lief pacstrap -i /mnt base, installierte das System und startete neu. Es hat gut gebootet, aber es wurde der Fedora-Bootloader verwendet, mit der Fedora-Ladeanimation und allem. Es gab einige Probleme mit dem System, einschließlich bestimmter Dienste, die nicht gestartet werden konnten, und ich vermutete, dass der Fedora-Bootloader schuld war. Ich habe wieder in die Arch-Installation USB gebootet, alles gelöscht, diesmal einschließlich /boot(aber nicht)/boot/efiIch habe das nicht erneut installiert.) Ich habe es erneut installiert, und grub hat das vmlinuz-Image-Ding nicht erkannt. Also beschloss ich, wieder über USB zu booten, in die neue Arch-Partition zu chrooten und rEFInd, meinen persönlichen Lieblings-Bootloader, zu installieren. Nach der Installation von rEFInd mit pacman -S refind-efiund wurde refind-installrEFInd installiert und ich habe es neu gestartet. Windows wird gestartet, aber wenn ich versuche, Arch zu starten, wird dieser Fehler angezeigt.

Ich bin mkinitcpio -p linuxmehrmals gelaufen . /etc/fstabsieht ganz normal aus.

Folgendes habe ich versucht:

/superuser/769047/unable-to-find-root-device-on-a-fresh-archlinux-install#788480

Block vor Autodetect verschoben, keine Auswirkung

http://www.linuxforums.org/forum/arch-linux/199189-error-device-not-found-skipping-fsck.html

Ich habe mit refind.conf und refind_linux.conf herumgespielt, nichts, was ich getan habe

/superuser/835120/error-unable-to-find-root-device-dropped-to-recovery-shell

Die doppelt überprüfte Datei initramfs-linux.img befindet sich im richtigen Verzeichnis

Ich habe ähnliche Probleme gesehen, aber keine ihrer Korrekturen hat bei mir funktioniert. Irgendwelche Ideen, wie ich Arch zum Booten bringen kann?

EDIT: Ich habe festgestellt, dass ich ein LVM-Ding verwende. Also ja. Meine Home-, Root- und Swap-Partitionen sind kleine LVM-Dinger (ich weiß nicht, wie ich sie nennen soll) in / dev / sda8. Ich weiß nicht, ob dies etwas betrifft

TheInitializer
quelle
JEMAND BEACHTEN
DIESE
Das klingt rau. Haben Sie Zugriff auf einen anderen Computer? Es ist möglich, dass Sie am besten eine Live-CD einer Distribution /homeerstellen , darauf mounten , wichtige Dateien auf einen USB-Stick kopieren und dann neu installieren.
Elronnd
@Elronnd Ich habe eine funktionierende Windows-Partition auf demselben Computer. Ich habe bereits alle wichtigen Dateien darauf kopiert. Idk, vielleicht hilft das Löschen der gesamten Partition und das Erstellen einer neuen (nicht-lvm) Partition - möglicherweise verursacht LVM alle Probleme. Ich möchte ehrlich wissen, was genau los ist, Arch muss ''aus irgendeinem Grund suchen ...
TheInitializer
Randnotiz: Meine Festplatte hat 12 Partitionen. Ist das normal?
TheInitializer
Ich bin so froh, dass ich nicht der einzige bin, der genau dieses Problem hat. Ich habe genau das gleiche Problem und habe alles versucht, was Sie versucht haben, und habe immer noch keine Lösung gefunden. Werde aber weiter nach einem suchen!
Sam Holmes

Antworten:

5

Das Problem scheint zu sein, dass rEFInd die refind_linux.confDatei im /bootVerzeichnis nicht automatisch erstellt .

Ab Schritt 4 der "Technischen Details zum EFI Stub Loader Support" aus der rEFInd-Dokumentation :

rEFInd sucht nach einer Datei mit dem Namen refind_linux.conf im selben Verzeichnis wie die Kerneldatei. Es besteht aus einer Reihe von Zeilen, von denen jede aus einer Beschriftung gefolgt von einer Reihe von Kerneloptionen besteht. In der ersten Zeile werden Standardoptionen festgelegt, und in den nachfolgenden Zeilen werden Optionen festgelegt, auf die über das Untermenü des Hauptmenü-Tags zugegriffen werden kann. Wenn Sie rEFInd mit dem Skript refind-install installiert haben, hat dieses Skript in / boot eine für Ihren Computer angepasste Beispieldatei refind_linux.conf erstellt. Diese Datei funktioniert bei vielen Installationen ohne Änderungen, bei einigen müssen Sie sie jedoch möglicherweise anpassen.

Ich bin nicht sicher, warum diese Datei nicht erstellt wird, aber es ist sehr wahrscheinlich, dass Sie die Probleme lösen können, die Sie haben, indem Sie sie erstellen.

Erstellen der refind_linux.confDatei

Das Arch Linux-Wiki bietet einen hervorragenden Eintrag dazu, aber im Wesentlichen legen Sie es im selben Verzeichnis wie Ihren Kernel ab (normalerweise in /boot, indem Sie es automatisch oder manuell erstellen). Die erste nicht kommentierte Zeile der Datei sind die Standardparameter für das Booten des Kernels.

Ich habe meine Datei mit dem mkrlconfBefehl erstellt und die resultierende Datei /boot/refind_linux.confsah folgendermaßen aus:

"Boot with standard options"  "archisobaseddir=arch archisolabel=ARCH_201610"
"Boot to single user mode"    "archisobaseddir=arch archisolabel=ARCH_201610 single"
"Boot with minimal options"   "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

Wir kommen irgendwohin, aber das hat noch nicht funktioniert. Da ich es vom Live-USB erstellt habe, sind die ersten beiden Einträge nicht korrekt, da sie sich stattdessen auf ISO auf dem USB beziehen. Der endgültige Eintrag ist jedoch tatsächlich korrekt. Dies liegt daran, dass das Root-Gerät wie der erhaltene Fehler ''auf die UUID Ihrer /Festplatte gesetzt wird.

Um es als primäre Startoption festzulegen, löschen Sie einfach die anderen Zeilen und ändern Sie die Bezeichnung.

"Boot with standard options"  "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

Speichern Sie die Datei und starten Sie das System neu, es sollte jetzt korrekt funktionieren!

Fußnoten

  1. Dies ist natürlich ein langer Weg, um die Datei zu erstellen. Sie müssen das nicht verwenden mkrlconf, um es zu generieren, Sie können es manuell selbst erstellen. Es ist mehr so, dass es die Festplatten-UUID automatisch ausfüllt (die ich nicht manuell kopieren und eingeben muss).

  2. In Schritt 5 der technischen Details zum Stub Loader (oben verlinkt) wird beschrieben, wie refind_linux.confrEFInd nach einem Kerneleintrag in sucht , wenn keine Datei vorhanden ist /etc/fstab. Bei einer seltsamen Volume-Konfiguration ist dies jedoch unwahrscheinlich.

Sam Holmes
quelle
1
Wow, das ist eine großartige Antwort. Ich habe mein Problem bereits behoben (durch Neuinstallation), kann also nicht bestätigen, dass dies funktionieren wird, aber ich werde 😀
TheInitializer
Keine Sorge, ich wusste, dass Sie Ihr Problem behoben hatten! 😀 Dies ist mehr für alle anderen, die mit dem gleichen Problem hierher kommen, das wir hatten. Herzlichen Glückwunsch, dass Sie Ihr System am Ende zum Laufen gebracht haben!
Sam Holmes
0

Chroot Ihre Partition und versuchen Sie das FIFO-Skript "Bootloader installieren / konfigurieren" Teil https://github.com/helmuthdu/aui

Wenn das nicht hilft. Ich würde meine /homePartition sichern (wie von Elronnd vorgeschlagen) und eine Neuinstallation mit den FIFO / LILO-Skripten versuchen.

Viel Glück!

Michael D.
quelle
0

Ich habe gerade die gesamte Partition gelöscht und neu installiert. LVM hat es die ganze Zeit vermasselt. Funktioniert jetzt perfekt.

TheInitializer
quelle
Ich habe zu keinem Zeitpunkt LVM verwendet und habe immer noch das gleiche Problem :(
Sam Holmes