Wie gehe ich vor, wenn Gentoo aufgrund von "Initialisierung des Sperrtyps fehlgeschlagen" in Checkroot nicht booten kann?

2117
kwutchak

Mein System ist Gentoo Linux-basiertes Starten von einer LVM-basierten Root-Partition.

Das System bootet erfolgreich über die initrd. Es startet den init des Hauptkernels, schlägt jedoch fehl, wenn versucht wird, das Stammlaufwerk (/etc/init.d/checkroot) zu überprüfen.

Der gemeldete Fehler ist, dass das Stammlaufwerk (/ dev / vg / lv ) für fsck nicht verfügbar ist. welcher auch immer .

[Anmerkung: Ich habe eine Lösung für dieses Problem gefunden und poste dies, um anderen zu helfen. Wenn Sie einen besseren Ansatz kennen, würde ich gerne davon erfahren!]

2

1 Antwort auf die Frage

1
kwutchak

Das Problem könnte sein, dass das LVM-Sperrschema die Aktivierung der Volume-Gruppe nicht zulässt.

Wenn lvm.conf hat:

/etc/lvm/lvm.conf  locking_type = 1 : locking_dir = "/var/lock/lvm" 

Das Sperrverzeichnis muss dann beschreibbar sein, damit die Volume-Gruppe aktiviert werden kann. Dies ist ein Problem in der Checkroot-Phase, da das Root-Dateisystem an dieser Stelle nur gelesen werden kann.

Es ist möglich, den Closure_type auf 0 zu setzen, dies birgt jedoch Datenverlustrisiken.

Einige der lvm-Befehle akzeptieren die Option --ignorelockingfailure, mit der die Sperre vorübergehend umgangen werden kann. Dies wird in den Startskripten von initrd verwendet.

Um Checkroot zum Laufen zu bringen, habe ich zwei Zeilen hinzugefügt, bevor es wirklich losging.

&& ! is_net_fs / && ! is_union_fs / ; then  + lvm vgchange -ayl --ignorelockingfailure + lvm vgmknodes --ignorelockingfailure  if touch -c / >& /dev/null ; then