
Tengo un disco duro externo cifrado mediante LUKS. Contiene un fs ext4.
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 me sale 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 los hay)?
Respuesta1
Esto es un fuerte indicativo de corrupción del sistema de archivos. Debe desmontar, hacer una copia de seguridad a nivel de sector de su disco y luego ejecutar e2fsck para ver qué sucede. Si hay una corrupción importante, es posible que más adelante esté satisfecho de haber realizado una copia de seguridad a nivel de sector antes de permitir que e2fsck altere los datos.
Respuesta2
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 de rsnapshot (rsync) en el sistema arch linux x86_64; un archivo corrupto y profundamente anidado arrojaba ese error, que también se muestra cuando intenté 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
- Edición (2023-02): una nota de precaución: no se puede ejecutar
fsck
en NAS, unidades de disco duro asociadas a la red (RAID), que se venden comúnmente en línea (Amazon; ...) y que parecen discos duros normales; Las reparaciones de unidades NAS requieren un software especial. Si aplicafsck
a un disco duro NAS, probablemente lo dañará.
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
¡¿QUÉ?!
[Actualización: sí; Eso funcionó: ¡mis copias de seguridad se están ejecutando normalmente, otra vez! :-) ]
Respuesta3
A veces los sistemas de archivos no están en orden y necesitan limpieza. Esto se puede hacer porfsckdominio. Pero recuerde, debe ejecutar fsck sólo 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
Respuesta4
Recibí el mismo mensaje de error de rsync y el mismo mensaje de error de rm cuando intenté eliminar el archivo. Debido a que el sistema de archivos era el sistema de archivos raíz, no había forma de usar fsck. Pero cuando reinicié el sistema, el archivo desapareció y la copia de seguridad se realizó correctamente. No tengo idea de por qué funcionó, pero al menos es una solución fácil y vale la pena intentar reiniciar primero.