ddrescue
を使用して、--sparse
オプションを使用して、ドライブを大きなディスクから小さなディスクに複製できますか?
このディスカッション ドライブのクローンを作成するためにddrescue
を使用する手順と、同じサイズを使用することの重要性について概説しますが、この機能をddrescue
何らかの方法でvsTrue Image.
などのより堅牢なツールに依存する必要がある
短い一般的な答え:いいえ。
--sparse
オプションは、この機能をサポートするファイルシステムにスパースファイル(イメージ)を書き込みます。から ウィキペディア :
スパースファイルは、ファイル自体がほとんど空のときにファイルシステムスペースをより効率的に使用しようとするタイプのコンピュータファイルです。これは、より少ないディスクスペースを使用して、ブロックを構成する実際の「空の」スペースではなく、空のブロックを表す簡単な情報(メタデータ)をディスクに書き込むことによって実現されます。ブロックに「実際の」(空でない)データが含まれている場合にのみ、完全なブロックサイズが実際のサイズとしてディスクに書き込まれます。
スパースファイルを読み取る場合、ファイルシステムは、実行時に空のブロックを表すメタデータをゼロバイトで満たされた「実際の」ブロックに透過的に変換します。アプリケーションはこの変換を認識していません。
私は、主にdd
を使用して、スパースファイルを画像として頻繁に使用します。確かに、スペースを節約でき、そのために最適化できます( 別の質問に対する私の回答 を参照してください。ドライブに障害があると思われるためにddrescue
を使用する場合、またはフォレンジックまたはデータリカバリを行う場合は、この方法で「最適化」しないでください)。スパースイメージがかなり小さいパーティションでも保存できるほど小さい場合があることも事実ですが、これはクローン作成ではありません。これは、大きなファイルを巧妙な方法で保存するだけです。
ディスク上のファイルシステム内に存在するスパースファイルは、基になるパーティションをマウントして操作できるため、データを格納する正しい方法です(少なくとも、Linuxでは、Windowsはそれほどスマートではないようです。いくつかの便利なツール:kpartx
、mount -o offset=…
)。それでも、ファイルもそれを保持するディスクもBIOS/UEFIのソースドライブを置き換えることはできません。つまり、ファイルから起動して、ソースドライブにあったオペレーティングシステムを実行することはできません(仮想化を使用しない限り)。起動するには、1つのデバイスを別のデバイスに本当に複製する必要があります。 この場合、スパースファイルを理解するファイルシステムレイヤーがないため、ターゲットドライブは少なくともソースドライブと同じ大きさである必要があります。(驚くべきことにより大きなドライブでも問題が発生する可能性があります。セカンダリGUIDパーティションテーブルは最後にあるはずです。より大きなドライブに単純にクローンを作成すると、間違った位置に配置されます。)
つまり、一方のディスクをもう一方のディスクに交換して後者から起動するか、Windowsを使用するためにクローンを作成する必要がある場合、「スパースファイル」の概念は役に立ちません。一方、データ、メタデータ、パーティションテーブル、MBRをすべて一緒にアーカイブする場合は、スパースファイルを作成することをお勧めします。後で十分な大きさのディスクに間接的にクローンを作成する場合は、スパースファイルを一時ストレージとして使用することもお勧めします。
すべてのデータをソースディスクを置き換える小さなディスクに収めるには、パーティションとファイルシステムを理解し、それらを縮小する機能を備えたツールが必要です。 (厳密に言えば、これはcloningでもありません。)ddrescue
はそのようなツールではありません。
ddrescue
またはdd
がデータをより小さなディスクに正常にコピーする可能性がある2つのシナリオ:
これらのシナリオはどちらも、スパースファイルとは何の関係もありません。