あるディレクトリから別のディレクトリに良いファイルだけをコピーするには?

あるディレクトリから別のディレクトリに良いファイルだけをコピーするには?

私のファイルシステムが破損しています。残りの良いファイルである「サバイバー」をコピーしたいです。だから私の質問は - あるディレクトリから別のディレクトリに良いファイルだけをコピーする方法です。

たとえば、ファイルサイズは10 GBで、5 GBをコピーできます。したがって、コピーを担当するツールがコピー先のディレクトリを使用して即座にコピーされたコンテンツを保存する場合、ファイル全体をコピーできないことが明らかになるとすぐに(読み取れないため)、その部分ファイルを削除する必要があります。

良い文書- I / Oエラーなしで最初から最後まで読み取ることができるファイル。

重要:自動的に実行する必要があります。つまり、ユーザー対話なしで(私はすでにユーザー対話としてMidnight Commanderを使用しています)。

修正する:実用的な理由でファイルを読み取る最大試行回数を指定する必要があります。そうしないと、ツールは簡単に無限ループに陥り、ファイルを読み続けようとします。たとえば、指定されたファイルブロックを読み取ることができず(I / Oエラーのため)、X試行が行われた場合 - ファイルが間違っているとします。

答え1

ddrescueまたはというユーティリティがありますdd_rescue。これらは、同じタスクを実行するために異なる方法を使用する2つの異なるユーティリティです。 AからBにデータをコピーしますが、cpとは異なり、失敗せずにデータを読み取れない場合は、スキップして繰り返し試してください。これらのユーティリティは
ファイルシステムをサポートしていませんが、手動でまたはfind。そこからファイル。画像はエラーなく読み取ることができます。まず、dd_recueを使用してください。
dd_rescue

答え2

最も簡単な方法は、破損したファイルシステムで実行するか、fsck -aルートfsck -yファイルシステムの場合はLive CDから起動して外部ボリュームとしてマウントすることです。回復可能なすべてのファイルは元の場所に保存され、他のファイルは元の場所に保存されます。/lost+found必要に応じて、そのファイルから何かを修復してみることができます。

上記のオプションは次のように動作します。

さまざまなファイルシステムに固有のfsckオプションは標準化されていません。不明な場合は、ファイルシステム固有のチェッカーのマニュアルページを参照してください。保証されていませんが、ほとんどのファイルシステムチェッカーは次のオプションをサポートしています。

-ㅏ 間違いなくファイルシステムを自動的に修復します(このオプションは慎重に使用してください)。 e2fsck(8) は、以前のバージョンとの互換性のためにのみ -a をサポートします。このオプションは e2fsck の -p オプションにマップされ、一部のファイルシステムチェッカーでサポートされている -a オプションとは異なり、安全に使用できます。

(...)

- ワイ 一部のファイルシステム関連チェッカーでは、-yオプションを使用すると、fs関連fsckは常に検出されたファイルシステムの破損を自動的に回復しようとします。時には、専門家がfsckを手動で実行する方が良いかもしれません。すべてのファイルシステム固有のチェッカーがこのオプションを実装するわけではありません。特に、この記事を書いている時点では、fsck.minix(8)とfsck.cramfs(8)は-yオプションをサポートしていません。

関連情報