`scrub(1)`, しかしオフセットから回復できる

`scrub(1)`, しかしオフセットから回復できる

複数の非常に大きなハードドライブをスクラブする必要があります。ただし、デスクトップではこれを行うことはできません。移動中にラップトップでこれを行う必要があります。ハードドライブを一度に処理するには1日以上かかりますが、ラップトップを長くscrub(1)固定することはできません。

scrub(1)どの種類のオフセットコマンドライン引数もデフォルトでサポートされていません。

これを行う方法scrub(1)(任意のバイト書き込み)がありますが、回復可能な方法はありますか?デフォルトでは、コマンドは中断時にオフセットを印刷し、再開するにはオフセットパラメータを許可する必要があります。

答え1

dd進捗レポートは(に信号を送信して)生成されるように強制でき、SIGUSR1セクションの書き込みを開始するように指示できます(seekを使用して

その後、/dev/urandomなどのランダムバイトソースが必要です。

答え2

ddrescue以下を使用できますcryptsetup

truncate -s $(blockdev --getsize64 /dev/sdx) sdx-zero
cryptsetup open --type plain --cipher aes-xts-plain64 sdx-zero sdx-random
ddrescue /dev/mapper/sdx-random /dev/sdx sdx-scrub.map

復元して保存するには、sdx-scrub.map同じコマンドをもう一度繰り返します。

この方法は、毎回同じパスワードを使用しても機能します。

cmp /dev/mapper/sdx-random /dev/sdx && echo OK || echo FAIL

しかし、回復可能にするにはcmp -i SKIP -n LIMIT

検証を実行すると、プロセス時間が2倍長くなります。検証がなければシュレディンガースクラブになります。


上記の例では、/dev/sdxクリーニングするドライブです。

sdx-zero0のみを含み、サイズが0のスパースファイルです/dev/sdx。まれなファイルを正しくサポートするファイルシステムでサポートする必要があり、ext4/xfs/btrfsは機能しますが、tmpfs/fat/ntfsは機能しません。

cryptsetup0はランダムデータで暗号化されているため、/dev/mapper/sdx-randomナビゲーション可能なブロックデバイスもランダムデータで埋められます(/dev/urandomナビゲーション不可能なデバイスとは対照的に)。

ddrescueそれから任意のデータを読み書きsdx-random/dev/sdx、進行状況を追跡しながら整理しますsdx-scrub.map。また、進行状況バーとエラー(存在する場合)も表示されます。

毎回パスワードを入力したくない場合は、キーファイルを生成することもできます。

printf "%s" $(uuidgen) > sdx-scrub.key

キーファイルを一度だけ生成し、呼び出し間でアーカイブしてからコマンド--key-file sdx-scrub.keyに追加するだけです。cryptsetup


また、見ることができますhttps://unix.stackexchange.com/a/352378/30851

関連情報