
Eu tenho um disco rígido externo criptografado via LUKS. Ele contém um ext4 fs.
Acabei de receber um erro do rsync para um arquivo localizado nesta unidade:
rsync: readlink_stat("/home/some/dir/items.json") failed: Structure needs cleaning (117)
Se eu tentar excluir o arquivo, recebo o mesmo erro:
rm /home/some/dir/items.json
rm: cannot remove ‘//home/some/dir/items.json’: Structure needs cleaning
Alguém sabe o que posso fazer para remover o arquivo e corrigir problemas relacionados ao drive/fs (se houver)?
Responder1
Isso é fortemente indicativo de corrupção do sistema de arquivos. Você deve desmontar, fazer um backup em nível de setor do seu disco e, em seguida, executar o e2fsck para ver o que está acontecendo. Se houver uma grande corrupção, mais tarde você ficará satisfeito por ter feito um backup em nível de setor antes de permitir que o e2fsck adulterasse os dados.
Responder2
Se ajudar alguém, tive um problema semelhante (backups rsync/rsnapshot, em um arquivo afetado). Postei meu problema/solução aqui:
https://ubuntuforums.org/showthread.php?t=2348768&p=13627299#post13627299
RESUMO:
erro de backup rsnapshot (rsync) no sistema arch linux x86_64; um arquivo corrompido e profundamente aninhado estava gerando esse erro, também mostrado quando tentei excluir esse arquivo:
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
Aqui está o 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!!
[Veja também: https://www.reddit.com/r/linuxquestions/comments/4b47r2/has_anyone_ever_gotten_structure_needs_cleaning/ ]
Minha unidade de backup é /dev/sda1.
sudo umount /dev/sda1
sudo fsck.ext4 /dev/sda1 ## << accepted suggested fixes
- Editar (2023-02): uma nota de precaução: você não pode executar
fsck
em NAS - unidades de disco rígido associadas à rede (RAID) - comumente vendidas online (Amazon; ...) e que se parecem com HDD normais; reparos em unidades NAS requerem software especial. Se você aplicarfsck
a um HDD NAS, provavelmente irá corrompê-lo.
Reinicializado: tudo parece bem. Entrei na unidade de backups e excluí o arquivo 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?!
[Atualização: sim; funcionou: meus backups estão funcionando normalmente, de novo! :-) ]
Responder3
Às vezes, os sistemas de arquivos não estão em ordem e precisam de limpeza. Isto pode ser feito porfsckcomando. Mas lembre-se, você deve executar o fsck apenas em partições desmontadas para evitar o risco de corrupção de arquivos.
Se o seu sistema de arquivos for ext4, tente executar este comando:
fsck -AR -t ext4 -y
Responder4
Recebi a mesma mensagem de erro do rsync e a mesma mensagem de erro do rm quando tentei excluir o arquivo. Como o sistema de arquivos era o sistema de arquivos raiz, não havia como usar o fsck. Mas quando reiniciei o sistema, o arquivo desapareceu e o backup foi bem-sucedido. Não tenho ideia de por que isso funcionou, mas pelo menos é uma solução fácil e vale a pena tentar reiniciar primeiro.