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

22

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)?

Rotareti
la source

Réponses:

23

Cela indique fortement une corruption du système de fichiers. Vous devez démonter, effectuer une sauvegarde au niveau sectoriel de votre disque, 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.

DépriméDaniel
la source
A fait ce que vous avez suggéré. e2fsck a corrigé quelques erreurs fs. On dirait que je suis revenu à la normale. Thx =)
Rotareti
Je suggère fortement aux gens d'utiliser des interfaces graphiques comme par exemple gpartedpour le faire. Gparted encapsule toujours e2fsck (dans le cas de la vérification d'une partition), mais l'interface graphique facilite beaucoup la sélection du disque dur approprié et garantit que vous exécutez ces outils avec les arguments corrects. Avec les mauvais arguments, vous risquez une perte de données importante!
Qqwy
7

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

SOMMAIRE:

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. Je suis allé dans le lecteur de sauvegardes, j'ai 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

QED?!

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

Victoria Stuart
la source
2

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 rappelez-vous, 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
Ayush Goyal
la source
0

C'est une erreur habituelle lorsque vous essayez de supprimer .Trash-0 si vous essayez de supprimer des fenêtres dans le système de fichiers CP1251 d'encodage 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.

Coup de fouet
la source
1
Ce n'est pas une solution: c'est un lecteur LUKS chiffré avec LUKS. Y accéder (ou du moins essayer d'y accéder) à partir de Windows n'est pas à mon avis la meilleure idée.
mrc02_kr
-1

tout!! je résout ce problème avec cette commande dans mon shell proxmox

pct stop 100 ## arrêter le conteneur

pct fsck 100 ## fsck container, cela répare le problème, sur certains fichiers problèmes qui sont corrompus sur le système de conteneur

pct start 100 ## démarrer le conteneur, ok, maintenant sauvegarde et tout va bien !!

Merci à tous, Chuck

Mandrin
la source
1
Votre réponse est donc: arrêtez tout logiciel qui pourrait utiliser le disque, exécutez fscket recommencez à utiliser le disque. En quoi cela diffère-t-il de la réponse de DepressedDaniel ?
G-Man dit `` Réintègre Monica ''