Ubuntu

無法刪除文件:“結構需要清理”

  • December 23, 2021

我有一個通過 LUKS 加密的外部硬碟驅動器。它包含一個 ext4 fs。

我剛剛從 rsync 收到一個位於此驅動器上的文件的錯誤:

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

如果我嘗試刪除該文件,我會得到同樣的錯誤:

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

有誰知道我可以做些什麼來刪除文件並修復驅動器/fs 的相關問題(如果有的話)?

這強烈表明文件系統損壞。您應該解除安裝,對磁碟進行扇區級備份,然後執行 e2fsck 以查看發生了什麼。如果存在嚴重損壞,您稍後可能會很高興您在讓 e2fsck 篡改數據之前進行了扇區級備份。

如果它對任何人有幫助,我有一個類似的問題(rsync/rsnapshot 備份,在受影響的文件上)。我在這裡發布了我的問題/解決方案:

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

概括:

arch linux x86_64 系統上的 rsnapshot (rsync) 備份錯誤;一個損壞的、深度嵌套的文件引發了該錯誤,當我嘗試刪除該文件時也顯示了該錯誤:

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

這是問題所在:

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

[另見:https ://www.reddit.com/r/linuxquestions/comments/4b47r2/has_anyone_ever_gotten_structure_needs_cleaning/ ]

我的備份驅動器是 /dev/sda1。

sudo umount /dev/sda1

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

重新啟動:一切似乎都很好。進入備份驅動器,刪除了那個有問題的文件:

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

$$ Update: yes; that worked: my backups are running normally, again! :-) $$

引用自:https://unix.stackexchange.com/questions/330742