ファイルを削除できません: 「構造をクリーンアップする必要があります」

ファイルを削除できません: 「構造をクリーンアップする必要があります」

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_structure_needs_cleaning/ ]

バックアップドライブは /dev/sda1 です。

sudo umount /dev/sda1

sudo fsck.ext4 /dev/sda1  ## << accepted suggested fixes
  • 編集 (2023-02): 注意事項: fsckNAS (ネットワーク関連 (RAID) ハードディスク ドライブ) では実行できません。これは一般にオンライン (Amazon など) で販売されており、通常の HDD のように見えます。NAS ドライブの修復には特別なソフトウェアが必要です。NAS fsckHDD に適用すると、破損する可能性があります。

再起動しました: すべて正常のようです。バックアップ ドライブにアクセスし、問題のあるファイルを削除しました:

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

[更新: はい、うまくいきました。バックアップが再び正常に実行されています! :-) ]

答え3

ファイルシステムが整頓されていないため、クリーニングが必要な場合があります。これは次のように行うことができます。スキャンコマンド。ただし、ファイル破損のリスクを回避するために、マウントされていないパーティションに対してのみ fsck を実行する必要があることに注意してください。

ファイルシステムが ext4 の場合は、次のコマンドを実行してみてください。

fsck -AR -t ext4 -y

答え4

ファイルを削除しようとしたときに、rsync から同じエラー メッセージが表示され、rm からも同じエラー メッセージが表示されました。ファイル システムがルート ファイル システムだったため、fsck を使用する方法はありませんでした。しかし、システムを再起動すると、ファイルは消え、バックアップは成功しました。なぜこれが機能したのかはわかりませんが、少なくともこれは簡単な修正方法であり、最初に再起動してみる価値はあります。

関連情報