Nicht löschbares Verzeichnis in verloren + gefunden

10

Wie kann ich dieses Verzeichnis löschen? Ich habe fsckes getan und es hat etwas Müll gefunden, ich habe diese Dateien durchgesehen und es gab nichts Wichtiges. Also habe ich versucht, den Inhalt von zu löschen /lost+foundund alles außer diesem seltsamen Verzeichnis ist verschwunden. Ich dachte, dass das Setzen auf /tmp(ich kann dieses Verzeichnis über das Volume verschieben) es beim nächsten Neustart löschen wird, aber es ist immer noch da, sowohl nach dem Neustart als auch nach einem anderen fsck.

Da das Problem anscheinend auf einem niedrigen Niveau liegt und das Spielen mit Besitz und Berechtigungen nicht ausreicht, habe ich Sie in die Lage versetzt, das Problem selbst zu reproduzieren. Genießen!

  • Dies ist sicher. Sie können das Image umounten, um diese Verzeichnisse auf Ihrem Computer zu entfernen .
  • Dies ist kein Isobild, dies ist das Ergebnis vondd if=/dev/sda1 of=/files/broken.iso ;

Ich habe ein 15-MB-Archiv mit einem Bild von ca. 1,2 GB erstellt. Sie können es mit den folgenden Befehlen herunterladen und damit arbeiten:

cd /tmp
wget https://dl.dropboxusercontent.com/u/22701362/broken.tar.xz
tar xvf broken.tar.xz
mkdir test
sudo mount broken.iso test
cd test

Es würde zwei Verzeichnisse geben (Während der Erstellung dieses Bildes scheint es, dass sich zwei solche Verzeichnisse auf meiner Festplatte befinden):

/tmp/test> tree
.
├── 1
│   └── plexus-component-annotations-1.5.5.jar.sha1 [error opening dir]
└── 2
    └── #1589030 [error opening dir]

4 directories, 0 files

Viel Glück beim Entfernen dieser beiden Verzeichnisse:

/tmp/test> sudo rm -rf *
rm: cannot remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
rm: cannot remove '2/#1589030': Operation not permitted

/tmp/test> sudo chown -R root:root *
chown: changing ownership of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chown: cannot read directory '2/#1589030': Permission denied

/tmp/test> sudo chmod -R 777 *
chmod: changing permissions of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chmod: changing permissions of '2/#1589030': Operation not permitted
chmod: cannot read directory '2/#1589030': Permission denied
Trauer
quelle
Wie ist /tmpauf dem gleichen Volumen? Könnten Sie die Ausgabe von posten df? Bitte posten Sie auch die Ausgabe von sudo perl -MFile::Path -e 'rmtree("/tmp/foo") || die "$!"'für den Fall, dass wir eine informativere Fehlermeldung erhalten.
Terdon
@terdon Ich habe die Ausgabe zur Frage hinzugefügt. Denken Sie, dass die Ausgabe sogar ein bisschen hilfreich ist?
Trauer
1
Nun, die dfAusgabe zeigt uns, dass Ihr / tmp` tatsächlich ein normales Verzeichnis ist /und kein tmpfs, was die Standardeinstellung ist. Das ist überraschend, erklärt aber sowohl, warum Sie das Verzeichnis kopieren können, /tmpals auch warum es Neustarts überlebt. Die perlAusgabe fügt nicht wirklich viel hinzu, nein, aber es war einen Versuch wert. Ich klammere mich hier an Strohhalme.
Terdon
offtopic: In Ubuntu /tmpist standardmäßig ein normales Verzeichnis. Dies geschieht, um zu verhindern, dass es zu 100% gefüllt wird, und um RAM zu sparen. Es wird beim Start bereinigt. Dieses Verhalten besteht seit langem.
Trauer
Ich würde versuchen, eine Live-CD zu booten und dann im Dateisystem herumzustöbern.
Geselle Geek

Antworten:

8

Eine Möglichkeit ist das unveränderliche Flag im Fall des ext-Dateisystems. Siehe Ausgabe des lsattrBefehls. Wenn ivorhanden, kann es mit entfernt werdenchattr -i filename

Eine Datei mit dem Attribut 'i' kann nicht geändert werden: Sie kann nicht gelöscht oder umbenannt werden, es kann kein Link zu dieser Datei erstellt und es können keine Daten in die Datei geschrieben werden. Nur der Superuser oder ein Prozess mit der Funktion CAP_LINUX_IMMUTABLE kann dieses Attribut festlegen oder löschen.

In diesem Fall passiert etwas anderes

Das scheint zu funktionieren,

> lsattr 1
-----a---------- 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1
rmdir: failed to remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
> chattr -a 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1

> lsattr 2
---D-ad--j--T--- 2/#1589030 
> chattr -D -a -d -j -T 2/\#1589030
> rmdir 2/\#1589030
JJ Hakala
quelle
Nee. Hast du gesehen, dass ich verwendet habe sudo? Ich würde mich freuen, wenn Sie das Bild herunterladen, es bereitstellen und es selbst versuchen.
Trauer
Dies ist kein 'ISO-Bild', das Ergebnis vondd if=/dev/sda1 of=broken.iso
Trauer
Ja, Sie haben wahrscheinlich Recht, sorry! Hatten Sie die Möglichkeit, das Problem zu reproduzieren?
Trauer
1
Ja, und es sieht wirklich seltsam aus.
JJ Hakala
Ich fühle mich jetzt sooo dumm :( Aber Sie sind mein Held des Tages, Herr JJ Hakala
Trauer
1

Versuchen Sie, der Benutzer zu werden, dem es gehört, um es zu löschen

sudo -u 6666 -g 19312 rm -rf ./#1589030
Amias
quelle
sudo -u '#6666' -g '#19311' rm -rf \#1589030 rm: cannot remove '#1589030': Permission denied sudo -u '#6666' -g '#19311' chmod 777 \#1589030 chmod: cannot access '#1589030': Permission denied
Trauer
Sie müssen als Benutzer machen, wenn es nicht existiert
Amias
Das Erstellen eines Benutzers und einer Gruppe mit dieser UID und GID hat nicht geholfen
Trauer