バックアップを使用してディスクの磁気状態を更新するにはどうすればよいですか?


8

私には、バックアップ/アーカイブ資料が入った大きなディスクがいくつかあります。それらはext4です。ディスク全体を再度読み取ることなく数年間保存されるものについては、ディスクの磁気状態をリフレッシュする方法を考えていました。ドライブの保存期間は、私が答えを探し求めているあらゆる場所で議論の余地があるようですが、数年(たとえば5年程度)のストレージの後で、何らかの方法でデータを更新するのが賢明だと思います(? )

私はこれが提案されているのを見ました:

dd if=/dev/sda of=/dev/sda

安全ですか?役に立ちましたか?

私がやろうとしていることは、fsckまたは以外のことですdd if=/dev/sda of=/dev/null。どちらもおそらく、ディスク上の既存の磁気ドロップアウトを検出します。

私がやりたいことは、ディスクの磁気電荷が読み取り可能なレベルを下回る前に磁気データを更新することです。これどうやってするの?

回答:


8

一般に、ディスク全体を読み書きしないと、ディスク全体を実際に更新することはできません。fsck必要なものを提供する可能性は低いです。これは、基礎となるデバイスではなくファイルシステムで動作するため、ほとんどの場合、ファイルシステムメタデータ(inodeおよびその他のファイルシステム構造)のみをスキャンします。

badblocks -nのオプションかもしれませんdd if=X of=X。いずれにせよ、速度を上げるために大きなブロックを使用したいと思うでしょう(のddようなものbs=16Mbadblocksこれがを読むもの-b 16777216、または-b $((1<<24))適切なシェルで)。おそらくconv=fsync、と一緒に使用することもできますdd

dd同じ入力デバイスと出力デバイスを使用した場合の安全性については、入力からブロックを読み取って出力に書き込むため、安全である必要があります(このような暗号化されたパーティションは、同じ基本デバイスと異なるパスワードを使用し、次にdd1つから別のパスワードに変更します)-少なくとも一部の種類の物理メディアの場合:たとえば、シングルドライブでは、100%の耐障害性があることは明らかではありません。


ご回答有難うございます!それではconv=fsync、「終了前に物理的に出力ファイルデータとメタデータを書き込む」とはどういう意味ですか?安全ですか、それともなぜ使用するのですか?
PetaspeedBeaver 2013年

1
終了する前に、すべてのカーネルキャッシュがメディアにフラッシュされることを確認すると期待します。同じデータを書き換えるだけなので、実際にはそれほど問題になりません。これは、dd終了時にプラグを引き抜くことができることを保証するだけです(HDDにキャッシュがある可能性がありますが、ソフトウェアの管轄外です)。
peterph 2013年

つまり、要約すると、完全なddコマンドは、進捗状況を示すためのdd if=/dev/sda of=/dev/sda bs=16M conv=fsyncプラスのようなものになるはずstatus=progressです。ドライブのサイズと速度に応じて、これにはしばらく時間がかかります。Ctrl + Cなどでこの途中のプロセスをキャンセルしても安全だと思いますか?
Martin Spacek

1
はい、どのような方法でもプロセス全体を中断することは、理論的には安全です。少なくとも、屋根板ない回転磁気ドライブの場合 -これは、使用される正確な物理原理と技術が重要な領域です。
peterph

1

私は* nixの中から任意のネイティブツールでこれを行う方法を知らないが、私はかなりの数年間のために行っている何かをからの代わりに、SpinRiteと呼ばれる製品を実行しているGRC.com

これにはいくつかのモードがあり、そのうちの1つは、すべてのセクターを介して実行し、各ビットの状態を数回反転させて、元の状態に戻すことによって、サーフェス/データを更新するためのものです。

私はドライブでこれを年に数回実行しますが、大声で言いたいわけではありませんが、ハードドライブに関する問題はほとんどなく、かなりあります。

IIRCの費用は約80〜90ドルですが、その費用はすべて、データの価値に応じて相対的に異なります。

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