web-dev-qa-db-ja.com

起動するように複数のパーティションを1つのRAWイメージファイルにDDする方法はありますか?

これまでのところ、USBプロジェクトは大きく進歩しましたが、再配布のために複数のパーティションを1つのRawイメージファイルにDDする方法があるのではないかと考えていました。以下は、usbからusbへの完全なクローンを作成するために使用しているコマンドです。

  DD if=/dev/sd[x] status=progress | gzip > newredhat.raw.gz

ただし、これに関する唯一の問題は、USBスティック全体をコピーすること(つまり、ボリュームを28GBとしてコピーすること)であり、小さなUSBスティックに移動しようとすると機能しない場合があります。私はこれを回避するために次のことを試みました:

dd if=/dev/sdb1 | dd if=/dev/sdb2 | dd if=/dev/sdb3 | gzip > newredhat.raw.gz

驚いたことに、これはうまくいきましたが、私が想像する方法でファイルを保存しているとは思いません。ディスクドライブ(SDB)全体のコピーを回避し、必要なパーティションSDB1、SDB2、およびSDB3のみをコピーして、1つのイメージファイルに保存してから、そのファイルを新しいファイルにzcatする方法はありますか?それを実行するための可変サイズのUSB?

事前にすべての助けをありがとう!

2
RickwhoPrograms

最後に空白スペースをコピーすることだけを避けようとしている場合は、次のように機能するはずです。

  • デバイスでfdiskを実行します。
  • 単位がセクターに設定されていることを確認します(最近のバージョンのfdiskではデフォルトで設定されています)
  • Pを押してパーティションテーブルを印刷します。
  • 最後のパーティションのエンドセクターを読み取ります。
  • 1を追加
  • メガバイトに変換するには、2048で除算します
  • 円形 アップ 最も近い整数に(必要なセクターをコピーしないよりも、いくつかの不要なセクターをコピーする方が良い)
  • DD if =/dev/sd [x] bs = 1M count = <計算したメガバイト単位のサイズ> status = progress | gzip> newredhat.raw.gz
1
plugwash