Wie kann ich eine Partition überprüfen, wenn das Gerät als ausgelastet liest (aber anderweitig bestätigt wurde)?

11

Ich versuche auszuführen fsck -p /dev/sda5, um Fehler auf einer ext4-Partition zu reparieren, der Befehl wird jedoch ausgegeben

fsck from util-linux-ng 2.17.2
fsck.ext4: Device or resource busy while trying to open /dev/sda5
Filesystem mounted or opened exclusively by another program?

Ich habe die Verwendung bestätigt /etc/mtabund festgestellt, lsofdass die Partition nicht verwendet wird und nicht gemountet ist. Ich habe auch fuser -k /dev/sda5alles mit der Datei gewaltsam geschlossen und umountversucht, sie ohne Erfolg zu entfernen.

Wie kann ich erzwingen fsck, die Partition zumindest zu überprüfen und hoffentlich zu reparieren, obwohl sie als ausgelastet gelesen wird? Vorausgesetzt, ich bin zuversichtlich, dass es weder gemountet noch verwendet wird und dass die Möglichkeit einer Datenbeschädigung kein Problem darstellt.

Alle Befehle wurden als root von einer 32-Bit-Live-CD mit Ubuntu 10.04 ausgeführt. Die Partition ist der Systemteil (nicht zu Hause) einer 32-Bit-Installation von Ubuntu 10.04.

Keeblebrox
quelle
Ich habe eine Methode zur Lösung des größeren Problems im Zusammenhang mit dieser Frage gefunden, suche aber immer noch nach einer Antwort, wie erzwungen werden kann, fsckwenn das Gerät ausgelastet ist (oder warum dies nicht möglich ist).
Keeblebrox
Ich habe das gleiche Problem auf einem RHEL5.8-System. / tmp wurde nicht gemountet, / etc / mtab und / proc / mounts zeigen keine Spur des Dateisystems. Ich habe den Computer sogar neu gestartet und sichergestellt, dass ich der einzige bin, der angemeldet ist. lsof zeigt auf / tmp keine verwendete Datei an. Das gleiche Verfahren funktioniert auf 4 ähnlichen Servern, die mit demselben Kickstart-Profil installiert wurden. Der Unterschied zwischen diesen Servern und diesem besteht darin, dass an diesen Server SAN-Speicher angeschlossen ist. Könnte der Multipath-Daemon dies verursachen?
Bram
In meinem Fall hat es nicht geholfen, aber in der Red Hat-KB ( access.redhat.com/knowledge/solutions/54184 ) wird empfohlen, die Kerneloption nodmraid als Problemumgehung für dieses Problem hinzuzufügen.
Bram

Antworten:

4

Es gibt Dinge (normalerweise im Kernel, wie NFS-Threads, Auslagerungsdateien, Bindungs-Mounts usw.), die ein Dateisystem beschäftigen können, das nicht in angezeigt wird fuser.

Wenn Sie versuchen, fsckein gemountetes Dateisystem zu verwenden, wird es beschädigt. Sie sollten eine Live-CD wie Knoppix oder Fedora finden, die Ihre Dateisysteme nicht automatisch bereitstellt.

Steven Pritchard
quelle
Bisher wurde alles von einer Live-Festplatte ausgeführt. Ich versuche, fsckein lokales Dateisystem zu verwenden, daher hoffe ich, dass NFS es nicht beschäftigt hält. Ich verstehe jedoch, was Sie über den Kernel sagen, der es auf eine Weise beschäftigt, die nicht unbedingt angezeigt wird. Kennen Sie eine Möglichkeit, den Kernel daran zu hindern, lange genug darauf zuzugreifen, damit ich ihn ausführen kann, da dies immer noch in einer Live-Festplattenumgebung geschieht fsck?
Keeblebrox
Huch. Wird von einer Live-Festplatte verwendet? Ich kann mir nur zwei Dinge vorstellen: 1) Probieren Sie eine andere Live-Festplatte aus (Fedora anstelle von Ubuntu zum Beispiel). 2) Überprüfen Sie / etc / fstab auf dem realen System. Vielleicht gibt es eine Auslagerungsdatei oder einen Bind-Mount, der automatisch aktiviert wird? Nicht unbedingt in dieser Reihenfolge, könnte ich hinzufügen ...
Steven Pritchard
OK, irgendwie habe ich die letzte Zeile der Frage total verpasst. Ich habe meine Antwort entsprechend aktualisiert.
Steven Pritchard
+1, weil Ihre Erwähnung des automatisch montierten Austauschs zu einem unabhängigen Durchbruch geführt hat und Ihre Antworten zur Lösung des größeren Problems beigetragen haben. Ich möchte immer noch einen Weg finden, um zu erzwingen, fsckwenn ich weiß, dass das Gerät weder ausgelastet noch gemountet ist und wenn Datenbeschädigung kein Problem darstellt.
Keeblebrox
Vielleicht hat mdadm Raid-Signaturen auf der Partition erkannt und daran gebunden? Überprüfen Sie / proc / mdstat.
Psusi
4

Sie können die Partition entfernen fstabund den Computer neu starten

ManOfLinux
quelle
2

Versuchen Sie, eine andere liveCD zu starten. Ich empfehle SystemRescueCD , die speziell für die Lösung von Problemen mit Linux-Installationen entwickelt wurde. Es ist auch kleiner als typische OS LiveCDs. Und um auf der sicheren Seite zu sein, laufen Sie fsckvon der Konsole aus (kein X).

Wenn der Standard fsck -pnicht funktioniert, können Sie es auch versuchen e2fsck -y -f.

rozcietrzewiacz
quelle
Nach Angaben der Manpage , e2fsck -y -ferzwingt eine Überprüfung auf eine saubere Partition. Es wird nichts über gemountete Partitionen erwähnt. Wissen Sie, ob es dann auch eine Überprüfung erzwingen wird?
Keeblebrox
Wahrscheinlich nicht, aber Sie sollten auf jeden Fall vermeiden, gemountete Dateisysteme zu überprüfen (siehe die Absätze oben auf der e2fsckManpage). Ein anderer Gedanke: Wenn es den /etc/mtabAnschein hat, dass die Partition nicht gemountet ist, Sie aber dennoch den Fehler erhalten, sollten Sie dies auch überprüfen /proc/mounts, da die mtabDatei aus irgendeinem seltsamen Grund veraltet sein könnte.
Rozcietrzewiacz
0

Verwandte Fragen / Antworten unter /server/556014/centos-thinks-disk-is-busy-cant-mount-or-fsck

Insbesondere wird das Dateisystem möglicherweise bereits von etwas anderem als mount of fsck verwendet. Sowohl Fixierer als auch LSF können dabei helfen, herauszufinden, was dieser Treiber / diese Anwendung ist.

zaTricky
quelle