Das Problem
Unter CentOS/RHEL 6.x mit Logical Volume Manager geben alle LVM-Befehle unmittelbar nach dem Hochfahren einen Sperrfehler zurück, wie unten gezeigt:
# lvdisplay Failed to create directory /var/lock/lvm File-based locking initilisation failed.
Die Lösung
Die obige Meldung wird protokolliert, da im lvm-Code eine Überprüfung hinzugefügt wurde, um zu überprüfen, ob der Pfad für die Option "locking_dir" in /etc/lvm/lvm.conf angegeben ist Datei verfügbar ist oder nicht und gibt dann einen Fehler aus, wenn der Pfad für locking_dir verwendet wird Option ist nicht verfügbar. Dieser Fehler tritt normalerweise auf, wenn /var wird als separates Dateisystem erstellt. In den meisten Fällen passiert dies, wenn das /var/-Dateisystem als schreibgeschützt eingehängt ist.
$ grep -i "locking_dir" etc/lvm/lvm.conf # Configuration option global/locking_dir. locking_dir = "/var/lock/lvm"
Problemumgehung:
1. Konfigurieren Sie die Option locked_dir in /etc/lvm/lvm.conf auf einen Pfad im Root-Dateisystem (/), wie unten gezeigt:
# vi /etc/lvm/lvm.conf locking_dir = "/run/lock"
2. Stellen Sie sicher, dass das obige Verzeichnis auf dem Server vorhanden ist, oder Sie können dasselbe manuell mit dem folgenden Befehl erstellen:
# mkdir -p /run/lock
3. Führen Sie die lvm-Befehle aus, indem Sie das temporäre Sperrverzeichnis
definieren# lvdisplay --config 'global { locking_dir = "/run/lock" } ' # pvdisplay --config 'global { locking_dir = "/run/lock" } ' # vgdisplay --config 'global { locking_dir = "/run/lock" } '
Dauerlösung:
Hängen Sie das /var-Dateisystem mit der Option rw ein oder wenn das Dateisystem aufgrund einer Dateisystembeschädigung schreibgeschützt ist, führen Sie fsck auf der nicht gemounteten /var-Partition aus, um es zu reparieren, aber stellen Sie sicher, dass Sie eine gültige Sicherung haben, bevor Sie fsck ausführen.