web-dev-qa-db-fra.com

Impossible de supprimer le fichier: "La structure doit être nettoyée"

J'ai un disque dur externe qui est crypté via LUKS. Il contient un ext4 fs.

Je viens de recevoir une erreur de rsync pour un fichier qui se trouve sur ce lecteur:

rsync: readlink_stat("/home/some/dir/items.json") failed: Structure needs cleaning (117)

Si j'essaie de supprimer le fichier, j'obtiens la même erreur:

rm /home/some/dir/items.json
rm: cannot remove ‘//home/some/dir/items.json’: Structure needs cleaning

Quelqu'un sait-il ce que je peux faire pour supprimer le fichier et résoudre les problèmes liés au lecteur/fs (le cas échéant)?

24
Rotareti

Cela indique fortement une corruption du système de fichiers. Vous devez démonter, effectuer une sauvegarde de votre disque au niveau du secteur, puis exécuter e2fsck pour voir ce qui se passe. S'il y a une corruption majeure, vous serez peut-être plus tard satisfait d'avoir effectué une sauvegarde au niveau du secteur avant de laisser e2fsck altérer les données.

25
DepressedDaniel

Si cela aide quelqu'un, j'ai eu un problème similaire (sauvegardes rsync/rsnapshot, sur un fichier affecté). J'ai posté mon problème/solution, ici:

https://ubuntuforums.org/showthread.php?t=2348768&p=13627299#post13627299

RÉSUMÉ:

erreur de sauvegarde rsnapshot (rsync) sur le système Arch Linux x86_64; un fichier corrompu et profondément imbriqué lançait cette erreur, également affiché lorsque j'ai essayé de supprimer ce fichier:

Sudo rm -fR hourly.5/

rm: cannot remove 'hourly.5/snapshot_root/mnt/Vancouver/temp/temp - old/temp - 09 (Dec 07, 2014 - Sep 02, 2015)/a_OLD-gmail/[email protected]/[Gmail]/LINUX/rsync, rsnapshot; Other backups/19.bak': Structure needs cleaning

Voici le problème:

cd mnt/Vancouver/temp/temp\ -\ old/temp\ -\ 09\ \(Dec\ 07\,\ 2014\ -\ Sep\ 02\,\ 2015\)/a_OLD-gmail/[email protected]/\[Gmail\]/LINUX/rsync\,\ rsnapshot\;\ Other\ backups/

ls -l

ls: cannot access '19.bak': Structure needs cleaning
total 0
-????????? ? ? ? ?  ? 19.bak        ## << THAT IS THE PROBLEM!!

[Voir aussi: https://www.reddit.com/r/linuxquestions/comments/4b47r2/has_anyone_ever_gotten_structure_needs_cleaning/ ]

Mon lecteur de sauvegarde est/dev/sda1.

Sudo umount /dev/sda1

Sudo fsck.ext4 /dev/sda1  ## << accepted suggested fixes

Redémarré: tout semble aller bien. Entré dans le lecteur de sauvegardes, supprimé ce fichier problématique:

/mnt/Backups/rsnapshot_backups/hourly.5/snapshot_root/mnt/Vancouver/temp/temp - old/temp - 09 (Dec 07, 2014 - Sep 02, 2015)/a_OLD-gmail/[email protected]/[Gmail]/LINUX/rsync, rsnapshot; Other backups/19.bak

Q.E.D.?!

[Mise à jour: oui; cela a fonctionné: mes sauvegardes fonctionnent normalement, encore une fois! :-)]

8
Victoria Stuart

Les systèmes de fichiers ne sont parfois pas en ordre et doivent être nettoyés. Cela peut être fait par la commande fsck. Mais n'oubliez pas, vous devez exécuter fsck uniquement sur les partitions non montées pour éviter tout risque de corruption de fichiers.

Si votre système de fichiers est ext4, essayez d'exécuter cette commande:

fsck -AR -t ext4 -y
2
Ayush Goyal

C'est une erreur habituelle lorsque vous essayez de supprimer .Trash-0 si vous essayez de supprimer des fenêtres lors du codage du système de fichiers CP1251 sur le système Linux. Donc, fs est corrompu mais ce doseur n'est pas. Les Fs de Windows sont toujours corrompus comme le voit Linux. Mais ce n'est pas le cas. Vous pouvez essayer d'ouvrir ce fichier à partir de Windows et tout ira bien. Et puis supprimez-le dans les fenêtres. Et seulement après cette poubelle propre.

0
Fillip