無法刪除檔案:“結構需要清潔”

無法刪除檔案:“結構需要清潔”

我有一個透過 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

有誰知道我可以做什麼來刪除檔案並修復磁碟機/檔案系統的相關問題(如果有)?

答案1

這強烈表示檔案系統損壞。您應該卸載磁碟,對磁碟進行磁區級備份,然後執行 e2fsck 以查看發生了什麼。如果有嚴重損壞,您可能會慶幸在讓 e2fsck 竄改資料之前進行了磁區級備份。

答案2

如果它對任何人有幫助,我也遇到了類似的問題(受影響文件上的 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/[email protected]/[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/[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!!

[另請參閱:https://www.reddit.com/r/linuxquestions/comments/4b47r2/has_anyone_ever_gotten_struct_needs_cleaning/]

我的備份磁碟機是/dev/sda1。

sudo umount /dev/sda1

sudo fsck.ext4 /dev/sda1  ## << accepted suggested fixes
  • 編輯 (2023-02):注意事項:您不能fsck在 NAS - 網路關聯 (RAID) 硬碟 - 通常在網路上出售(亞馬遜;...),並且看起來像普通 HDD 上運行;修復 NAS 驅動器需要特殊軟體。如果您應用fsck到 NAS HDD,則可能會損壞它。

重新啟動:一切似乎都很好。進入備份驅動器,刪除有問題的檔案:

/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

量子ED?

[更新:是的;有效:我的備份再次正常運作! :-)]

答案3

檔案系統有時不正常,需要清理。這可以透過以下方式完成FSCK命令。但請記住,您必須僅對已卸載的分割區執行 fsck,以避免檔案損壞的風險。

如果您的檔案系統是 ext4,請嘗試執行以下命令:

fsck -AR -t ext4 -y

答案4

當我嘗試刪除檔案時,我從 rsync 收到相同的錯誤訊息,從 rm 收到相同的錯誤訊息。由於檔案系統是根檔案系統,因此無法使用 fsck。但是當我重新啟動系統時,檔案就消失了,備份成功了。我不知道為什麼會這樣,但至少這是一個簡單的修復,值得先嘗試重新啟動。

相關內容