ddを使用して使用しているハードドライブの部分のみを複製できますか?

ddを使用して使用しているハードドライブの部分のみを複製できますか?

300GBハードディスクの3分の1しか使用していません。 ddを使用してドライブを複製できますか(ただし100 GBのみ使用されます)。

dd if=/dev/sda of=clone.img

答え1

ファイルシステムの一部を追加できません。

これを使用して、ddハードドライブの一部である可能性があるパーティション全体をコピーできます。

ddパーティションの一部のコピーが利用可能かどうかを尋ねました。

一般的な場合、これは機能しません。
これは、ファイルシステムの一部だけをコピーすることを意味します。実際のデータが利用可能なスペースの先頭にある理由はありません。それでも、一般的に他のセクションには関連情報があります。

このような操作は、ddパーティション内のデータがどのように構成されているかを理解する必要がある他のツールを使用して機能できます。つまり、ファイルシステムを理解する必要があります。

一般的なファイルシステムドライバがデータをディスクに配置する方法を理解し、tarそのデータを他の場所に保存するためにパッケージ化する方法や同様の方法を使用する方が便利です。

ファイルシステムのサイズを変更し、ddを使用します。

要求されたものと同様の操作を実行する1つの方法は、パーティションのサイズを変更することです。

最初のステップは、300 GBのパーティションを1/3だけ満たしたもので、100 GBのビットを少し超えていっぱいのパーティションにサイズ変更することです。

gpartedGNOME中心のライブラリGUIフロントエンドlibpartedであり、一般に推奨されるパーティションマネージャですが、partedCLIフロントエンドも存在します(実際にはlibpartedのリファレンス実装)。cfdiskなどもfdiskCLIオプションであり、ほとんどのLinuxディストリビューションほどユーザーフレンドリーではありませんが、コアユーティリティgpartedパッケージの一部として含める必要があります。

ddサイズ変更した後は、ファイルシステム全体を含むパーティション全体で標準的な方法で使用できます。

ファイルシステムアーカイブツール

やりたいことに応じて、次のことが役に立ちます。

fsarchiver同じツールを使用して解凍する必要がある圧縮形式のファイルシステムからカスタムイメージを生成するツール。

通常、ユーザー定義の形式のためにイメージを生成するためにこのツールを使用することはお勧めできませんが、中間状態では意味がある可能性があります。ファイルシステムの空の部分にスペースを必要としない既存のパーティションのイメージを作成します。その後、それを使用して別のパーティションや別のファイルシステムに抽出できます。ファイルシステムはfsarchiver解凍の一部として作成されます。

答え2

partclone(CloneZillaと同じ作成者)がこれを行うことができます。しかし、DD互換の画像フォーマットを使用していないようです。

partimageサポートレベルの低いファイルシステムを使用してこれを実行することもできます。

画像をファイルに復元して、画像をDD互換形式に変換できる必要があります。(あなたが望むかもしれませんまた、スパースファイルに変換します。)

イメージはまだブロックイメージであるため、より小さいディスクに復元することはできませんが、ファイルシステムの知識を使用して未使用の部分をスキップします。

partimageファイルシステム固有のバージョンがあるため、正確なコマンドにはソースファイルシステムなどの追加情報が必要です。

答え3

バックアップのためにさらに200 GBのスペースを無駄にしたくない場合は、GNUユーティリティを使用してzerofreeファイルシステムで使用されていないすべてのスペースを指定された値に設定できます。0xFFSSDの摩耗を減らし、パフォーマンスを向上させるには、この値を使用してください。 (フラッシュメモリから消去されたページはデフォルトですべて0xFFであるためです。これにより、ドライブでの操作の実行速度も大幅に向上します。)一度完了すると、パーティションで使用されていないすべてのバイトは0xFFバイトになります。これで、実行長圧縮をサポートする圧縮アルゴリズムを使用すると、0xFFバイトのすべてのチャンクが数メガバイトに減少します。したがって、あなたのコマンドは次のようになります:(ルートとして)

zerofree -v -f 0xFF /dev/nvme1n1p4
dd if=/dev/nvme1n1p4 | lzma > ./backup-image.img.lzma

結果のイメージは、ドライブで使用されているスペースよりはるかに大きくまたは小さくしてはいけません。

後でこのバックアップをディスクに復元するには、次の手順を実行します。

dd if=./backup-image.img.lzma | unlzma | dd of=/dev/sda1

関連情報