Não é possível remover o arquivo: "A estrutura precisa de limpeza"


21

Eu tenho um disco rígido externo que é 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 algum)?

Respostas:


23

Isso é fortemente indicativo de corrupção no sistema de arquivos. Você deve desmontar, fazer um backup em nível de setor do seu disco e executar o e2fsck para ver o que está acontecendo. Se houver uma grande corrupção, mais tarde você poderá ficar feliz por ter feito um backup em nível de setor antes de permitir que o e2fsck adultere os dados.


Fiz o que você sugeriu. O e2fsck corrigiu alguns erros do fs. Parece que estou de volta ao normal. Thx =)
Rotareti

Eu sugiro fortemente que as pessoas usem GUIs como, por exemplo, gpartedpara fazer isso. O Gparted ainda envolve o e2fsck (no caso de verificar uma partição), mas a interface gráfica facilita muito a seleção do disco rígido adequado, além de garantir que você execute essas ferramentas com os argumentos corretos. Com os argumentos errados, você corre o risco de severa perda de dados!
Qqwy

6

Se isso 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 do rsnapshot (rsync) no sistema arch linux x86_64; um arquivo corrompido e profundamente aninhado estava lançando 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/victoria.a.stuart@gmail.com/[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/victoria.a.stuart@gmail.com/\[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

Reinicializado: tudo parece bem. Entrou na unidade de backups, excluiu 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/victoria.a.stuart@gmail.com/[Gmail]/LINUX/rsync, rsnapshot; Other backups/19.bak

QED ?!

[Atualização: sim; que funcionou: meus backups estão funcionando normalmente, de novo! :-)]


2

Às vezes, os sistemas de arquivos não estão em ordem e precisam de limpeza. Isso pode ser feito pelo comando fsck . 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

0

É um erro comum ao tentar remover .Trash-0 se você tentar remover janelas na codificação do sistema de arquivos CP1251 no sistema Linux. Então fs está corrompido, mas isso não é importante. O FS do Windows sempre está corrompido como no Linux. Mas não é assim. Você pode tentar abrir esse arquivo no Windows. Tudo ficará bem. E depois remova-o nas janelas. E somente depois desse lixo limpo.


11
Não é uma solução: é a unidade LUKS criptografada com LUKS. Acessá-lo (ou pelo menos tentar acessá-lo) no Windows não é, na minha opinião, a melhor idéia.
Mrc02_kr 23/1018

-1

todos!! eu corrijo esse problema com esse comando no meu shell proxmox

pct stop 100 ## parar o contêiner

pct fsck 100 ## container fsck, isso corrige o problema, em alguns arquivos de problemas que estão corrompidos no sistema de container

pct start 100 ## inicie o container, ok, agora faça backup e está tudo bem !!

Obrigado a todos, Chuck


11
Portanto, sua resposta é: pare qualquer software que possa estar usando o disco, execute fscke continue usando o disco. Como isso difere da resposta de DepressedDaniel ?
G-Man Diz 'Reinstate Monica'
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.