
ドライブをバックアップするときは、イメージを圧縮したいので、最初にすべて同じ値で埋めて、空き領域がほとんどなくなるようにします。
cat /dev/zero > ~/zeros
sync
rm ~/zeros
機械式/磁気式ドライブの場合、これはビットごとに 1 回の操作ですべての空き領域に 0 を書き込むだけですが、SD カードや SSD などのソリッド ステート/フラッシュ デバイスの場合、0 を書き込むには実際にはビットごとに 2 つの操作が必要です。
- 一括消去は、ブロック全体を一度にすべて1に設定します。
- 選択したビットを0に戻す個別の書き込み
つまり、ソリッドステート/フラッシュデバイスに0の代わりに1を詰め込むことでこの回答はやり方を説明しています書き込みプロセスの 2 番目のステップを回避することで、プロセスが高速化されるか、デバイスの寿命が延びますか?
答え1
これはXY問題のようです - 正解はそれはおそらく全く問題ではないただし、後で行う方が合理的です。
ほとんどの SSD は、ウェアレベリングの目的でデータを暗号化またはスクランブルするので、おそらくドライブの消耗が少し早まるだけだと思います。SD カードについてはよくわかりません。書き込みがほとんどないシナリオ以外で、ブート ドライブとして SD カードを使用することはほとんどありません。
比較的小さなバックアップであれば、イメージを作成してからマウントし、イメージ上のスパース領域をゼロにするのが「賢い」方法だと思います。それから圧縮は賢いやり方のように思えます。比較的高速なストレージで作業し、フラッシュストレージの書き換えを最小限に抑え、ドライブ全体を読み出して、とにかく圧縮されていないイメージから始めます。まずイメージングそれからゼロにするそれから圧縮することで摩耗を抑えます。
私の記憶が正しければ、noobsはとにかくfat32ドライブ上のディスクイメージから動作するので、SSDをマウントして、ディスクイメージ内そこでそれらの操作を実行します。その後、必要に応じてディスク イメージを交換します。または、ドライブの内容をコピーして「必要に応じて」圧縮し、古いドライブの内容を新しいドライブの内容に置き換えます。
答え2
アーロンD
使用されて再充填されるブロックが少なくなるため、空き領域を消去するときに 0 のパターンを使用する方がよいのか、それとも 1 のパターンを使用する方がよいのかを尋ねているの
でしょうか。
0 を空、1 を使用とみなすと、そのロジックによって SSD ドライブの寿命が延びたり縮んだりします。2 番目のロジックでは、ブロックを未使用に縮小します。削除または除去されたアイテムを含む空き領域ではなく、スペースを使用するデータが多くなり、ブロックが増え、書き込みが増えるため、劣化が早くなります。
Ramhound があなたの質問を理解しない理由の要点を理解していません。
それはあなたの論理で、空き領域を消去して作成し、それをパイプすることで
猫 > ~/ゼロ
使用済みブロックを削除して書き込みを作成すると、そのドライブへの書き込みは依然として行われるため、バックアップ イメージを小さくするのに役立つかどうかに関係なく、悪いアイデアですが、悪いロジックを持つ良い考えです。このプロセスは、圧縮されたバックアップ イメージを小さくするのに役立ちますが、その過程でドライブが破壊されます。
出力ファイルを同じドライブにパイプして空き領域をクリアすると、空き領域であってもドライブにデータが書き込まれるため、同じドライブに > という大きなファイルが作成されます。ドライブへの書き込みは書き込みであり、大量の書き込みです。
あなたの質問は意味をなさない質問だと思います。つまり、あなたが尋ねている論理は理にかなっていますが、それは間違っており、100% 逆効果で、ドライブの消耗を 10 倍も早める可能性があります。
ドライブの空き容量はありますが、ファイル サイズが大きいファイルを使用して書き込みが作成されます。書き込みは書き込みであるため、全体的なロジックは理解できますが、バックアップ イメージを最小にすることが役立つと考えると、それは本当です。空き領域を消去すると、バックアップ イメージの空き領域がある場合よりもはるかに多くの書き込みが作成されます。このプロセスを何度も繰り返しても、わずかな量の空き領域に書き込みを行い、ドライブの空き領域全体にファイル書き込みを作成すると、空き領域がわずかな領域しか使用しない場所に大量の書き込みが作成されます。ファイルを書き込むため、ドライブの状態はさらに悪くなります。消去するとファイルがクリアされますが、ファイルを書き込むことになります。