Die routinemäßige Systemaktualisierung (Linux Mint 19) schlug mit dem Fehler fehl, dass keine Sicherungskopie einer Datei erstellt werden konnte. Datei hat sehr seltsames Eigentümer- und Gruppen- und seltsames lsattr-Verhalten. Kann die Datei nicht als root löschen.
$ ls -lah
total 64K
drwxr-xr-x 2 root root 4.0K Sep 14 00:41 .
drwxr-xr-x 15 root root 4.0K Jul 20 06:18 ..
-rw-r--r-- 1 root root 18K Jul 17 03:41 cs-xlet-danger.svg
-rw-r--r-- 1 root root 13K Jul 17 03:41 cs-xlet-running.svg
-rw-r--r-- 1 root root 19K Jul 17 03:41 cs-xlet-system.svg
-rw-r--r-- 1 2558197760 2848915456 0 Jul 17 03:41 cs-xlet-update.svg
$ sudo rm -f cs-xlet-update.svg
rm: cannot remove 'cs-xlet-update.svg': Operation not permitted
$ lsattr .
--------------e--- ./cs-xlet-danger.svg
--------------e--- ./cs-xlet-system.svg
lsattr: No data available While reading flags on ./cs-xlet-update.svg
--------------e--- ./cs-xlet-running.svg
Ich starte dann eine Live-CD, um das Dateisystem zu überprüfen.
$ sudo e2fsck -f /dev/sda1
e2fsck 1.44.1 (24-Mar-2018)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda1: 291836/1310720 files (0.4% non-contiguous), 2935417/5242624 blocks
Nachdem das Dateisystem als fehlerfrei bestätigt wurde, starte ich das Laufwerk und versuche, die Datei von der Live-CD (Linux Mint) zu löschen.
$ ls -lah
total 64K
drwxr-xr-x 2 root root 4.0K Sep 14 04:41 .
drwxr-xr-x 15 root root 4.0K Jul 20 10:18 ..
-rw-r--r-- 1 root root 18K Jul 17 07:41 cs-xlet-danger.svg
-rw-r--r-- 1 root root 13K Jul 17 07:41 cs-xlet-running.svg
-rw-r--r-- 1 root root 19K Jul 17 07:41 cs-xlet-system.svg
-rw-r--r-- 1 2558197760 2848915456 0 Jul 17 07:41 cs-xlet-update.svg
$ sudo rm -f cs-xlet-update.svg
rm: cannot remove 'cs-xlet-update.svg': Operation not permitted
$ lsattr .
--------------e--- ./cs-xlet-danger.svg
--------------e--- ./cs-xlet-system.svg
lsattr: No data available While reading flags on ./cs-xlet-update.svg
--------------e--- ./cs-xlet-running.svg
Zum Schluss versuche ich es mit inode ohne Erfolg zu löschen:
$ ls -i cs-xlet-update.svg
220926 cs-xlet-update.svg
$ find . -inum 220926 -exec sudo rm -i {} \;
rm: remove regular empty file './cs-xlet-update.svg'? y
rm: cannot remove './cs-xlet-update.svg': Operation not permitted
Wie kann ich diese Datei entfernen?
linux
filesystems
linux-mint
file-corruption
filesystem-corruption
Adam Griffin
quelle
quelle
Antworten:
Nach dem Erzwingen eines fsck (mit seinem
-f
Flag) und es erscheint immer noch sauber Etwas ist lustig. Könnten auch einige erweiterte Attribute sein, die überprüft werden müssen, wenn diese nicht funktionieren.Vielleicht versuchen Sie es mit einer Auflistung nach Inode
und dann löschen durch inode, mit find und rm
oder ein anderes Beispiel empfahl, einige finden "Sicherheit" und find's -delete
Um noch mehr "Sicherheit" zu gewährleisten, überprüfen Sie zuerst, welche Datei gefunden wurde, indem Sie die Option -delete weglassen. Verwenden Sie dazu die Standardeinstellung "print".
Wenn diese immer noch nicht funktionieren,
debugfs
gibt es einige Befehle, die funktionieren sollten, und viele dieser Befehle verwenden eine Inode als Argumentoder vielleicht
Und selbst wenn erweiterte Attribute Probleme verursachen, können Sie versuchen
getfacl
, sie aufzulisten undsetfacl
zu ändern. Die-b, --remove-all
Option klingt praktisch. Oder imattr
Paket gibt es auchgetfattr
undsetfattr
.Oder debugfs hat auch einige erweiterte Attributbefehle wie:
quelle
-delete
was anderes gemacht. Letztendlich hat es