web-dev-qa-db-ja.com

Linuxシステムで破損したファイルを削除します

破損しているファイルを削除するにはどうすればよいですか?

Linux(Fedoraベース)では、次のように入力すると:ls -l私は得る

drwxr-xr-x.  2 dmiller3 dmiller3     4096 Jul 26 13:57 SomeFile
??????????   ? ? ?                   4096 Jul 26 13:57 CorruptedFile  

このCorruptedFileでは何もできません。削除などには使えません。これは、システム全体でこのような唯一のファイルです。何が原因で、どうすれば削除できますか?

ファイルシステムはext2です。

5
Dennis Miller

ハードリセット中にファイルに書き込んでいた可能性があります。または、ハードドライブに問題がある可能性があります。 fsckで修正する必要があります(これを行うには、fsをumountする必要があります)。 dmesgsmartctl -a /dev/hdx(後者はsmartmontoolsの一部です)をチェックして、HDがエラーを報告しているかどうかを確認します。また、パーティションで非破壊のbadblocksを実行します。

ジャーナリングはこの種の問題に役立つ傾向があるため、ext2を実行している理由も自問する必要があります。

6
xenoterracide

私が見たファイルシステムに関するいくつかの面白い問題は次のとおりです。

  • 特に要求された場合にのみ表示されるファイル:「lsfile」はそれを表示しますが、プレーンな「ls」は表示しません。何が起こったのかというと、次のファイルの名前に「Go upaline」のエスケープシーケンスが含まれていました
  • 不可能な権限/タイプのファイル:fsck(8)で修正されるか、rm(1)でファイルを吹き飛ばします
  • 非常に深いディレクトリツリー。悪意のあるディレクトリを作成し、ループ内でそれらにcdすることによって作成されます。最後まで下がるプログラムを作成し、ループ内のディレクトリを削除することをバックアップする必要がありました。
0
vonbrand