No se puede eliminar el archivo: "La estructura necesita limpieza"

22

Tengo un disco duro externo que está encriptado a través de LUKS. Contiene un ext4 fs.

Acabo de recibir un error de rsync para un archivo que se encuentra en esta unidad:

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

Si intento eliminar el archivo, aparece el mismo error:

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

¿Alguien sabe qué puedo hacer para eliminar el archivo y solucionar problemas relacionados con la unidad / fs (si hay alguno)?

Rotareti
fuente

Respuestas:

23

Eso es fuertemente indicativo de corrupción del sistema de archivos. Debe desmontar, hacer una copia de seguridad de su disco a nivel de sector y luego ejecutar e2fsck para ver qué está funcionando. Si hay una corrupción importante, puede estar contento de haber hecho una copia de seguridad a nivel de sector antes de permitir que e2fsck altere los datos.

Daniel deprimido
fuente
Hiciste lo que sugeriste. e2fsck corrigió algunos errores de fs. Parece que he vuelto a la normalidad. Thx =)
Rotareti
Recomiendo encarecidamente a las personas que utilicen GUI como, por ejemplo, gpartedhacer esto. Gparted todavía envuelve e2fsck (en el caso de verificar una partición), pero la interfaz gráfica hace que sea mucho más fácil seleccionar el disco duro adecuado, además de garantizar que ejecute estas herramientas con los argumentos correctos. Con los argumentos equivocados, corre el riesgo de una pérdida severa de datos.
Qqwy
7

Si ayuda a alguien, tuve un problema similar (copias de seguridad rsync / rsnapshot, en un archivo afectado). Publiqué mi problema / solución, aquí:

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

RESUMEN:

error de copia de seguridad rsnapshot (rsync) en el sistema arch linux x86_64; un archivo corrupto y profundamente anidado arrojaba ese error, que también se muestra cuando traté de eliminar ese archivo:

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

Aquí está el problema:

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!!

[Ver también: https://www.reddit.com/r/linuxquestions/comments/4b47r2/has_anyone_ever_gotten_structure_needs_cleaning/ ]

Mi unidad de respaldo es / dev / sda1.

sudo umount /dev/sda1

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

Reiniciado: todo parece estar bien. Entró en la unidad de copias de seguridad, eliminó ese archivo problemático:

/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 ?!

[Actualización: sí; eso funcionó: ¡mis copias de seguridad se están ejecutando normalmente, de nuevo! :-)]

Victoria Stuart
fuente
2

Los sistemas de archivos a veces no están en orden y necesitan limpieza. Esto se puede hacer mediante el comando fsck . Pero recuerde, debe ejecutar fsck solo en particiones desmontadas para evitar el riesgo de corrupción de archivos.

Si su sistema de archivos es ext4, intente ejecutar este comando:

fsck -AR -t ext4 -y
Ayush Goyal
fuente
0

Es un error habitual cuando intenta eliminar .Trash-0 si intenta eliminar Windows en la codificación del sistema de archivos CP1251 en el sistema Linux. Entonces fs está corrupto pero esto no importa. Fs de Windows siempre corrupto como se ve desde Linux. Pero no es así. Puede intentar abrir este archivo desde Windows OS Todo estará bien. Y luego eliminarlo en windows. Y solo después de esa basura limpia.

Estímulo
fuente
1
No es una solución: es un disco LUKS encriptado con LUKS. Acceder (o al menos intentar acceder) desde Windows no es, en mi opinión, la mejor idea.
mrc02_kr
-1

¡¡todos!! Arreglo este problema con este comando en mi shell proxmox

pct stop 100 ## detiene el contenedor

pct fsck 100 ## fsck container, esto repara el problema, en algunos archivos de problemas que están dañados en el sistema de contenedor

pct start 100 ## inicia el contenedor, ok, ahora copia de seguridad y todo está bien !!

Gracias a todos, Chuck

Arrojar
fuente
1
Entonces su respuesta es: detenga cualquier software que pueda estar usando el disco, ejecute fscky reanude el uso del disco. ¿Cómo difiere esto de la respuesta de DepressedDaniel ?
G-Man dice 'Restablecer a Monica' el