ファイルシステム内のすべてのファイルがエラーなく読み取れることを確認する方法


1

私はバックアップを作成するためにext4ファイルシステムの外付けハードドライブを使用しています。私が使っているバックアップソフトウェア(faubackup)は、ファイル階層1:1をハードドライブのタイムスタンプ付きのフォルダにコピーし、内容が同じファイルに変更されていないファイルの新しいコピーをハードリンクするように増分バックアップを作成します。前回のバックアップの対応するサブフォルダにあります。私は最近バックアップドライブが死んでしまったので、書き込まれたすべてのファイルが実際にI / Oエラーなしで読めることを確認したいので、バックアップに頼ることができます。

そのための1つの方法は、パーティション全体を読むことです。によって dd それに /dev/null。ただし、ディスクは3TBの大きさであり、そのためには約7時間かかります(USB 3.0経由)。

別の方法は使用することです e2fsck とともに -c オプションが、これも年齢がかかります。

ディスク全体をチェックするのではなくファイルだけをチェックすることで、プロセスを高速化することが可能であるべきだと私は思います。これは可能である。すべてのファイルをtarアーカイブに書き込みます。これはディスクには書き込まれませんが、 /dev/null。ここで問題はハードリンクです。私が10の増分バックアップを言ったとしたら、そのための記憶域はディスクのほんの一部に過ぎませんが、それはそれより約10倍大きいように見えます。

私の質問: ディスク上のファイルだけを読み取る方法はありますか。同じ記憶領域にハードリンクしているファイルの各セットに1つだけ読み取る方法はありますか?または作る方法はありますか e2fsck -c それとも似たようなものだけがファイルシステムの使用された部分(割り当てられたブロック)をチェックしますか?

回答:


2

GNU tarはハードリンクファイルの内容を複数回コピーしません。の最初の答えを読む この質問 または 公式文書 このトピックにおいて。これをテストするには、以下の出力(アーカイブ)をパイプします。 タール スルー トイレ tar cf - -C <mountpoint of your disk> . | wc -c アーカイブサイズをバイト単位で確認します(これを次の値と比較することができます)。 タール オプション --hard-dereference

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.