DDを使用してディスクイメージからパーティションを複製する方法は?

DDを使用してディスクイメージからパーティションを複製する方法は?

「フル」ディスクイメージであるディスクイメージがあります。たとえば、複製する複数のパーティションが含まれています。一つ(最初のパーティションではありません。)複数のパーティションを持つ外部ドライブのパーティションに接続します(また、ディスクの最初のパーティションに複製していません...)。

イメージを FDisk して以下の結果を得る。

#fdisk -l 2013-02-09-wheezy-raspbian.img

ディスク 2013-02-09-wheezy-raspbian.img: 1939MB, 1939865600バイト
255ヘッド、63セクター/トラック、235シリンダー、合計3,788,800セクター
単位= 1 * 512 = 512バイトセクタ
セクタサイズ(論理/物理):512バイト/512バイト
I/Oサイズ(最小/最適): 512バイト/512バイト
ディスク識別子:0x00014d34

                         デバイス起動開始エンドブロックIDシステム
2013-02-09-wheezy-raspbian.img1 8192 122879 57344 c W95 FAT32(LBA)
2013-02-09-wheezy-raspbian.img2 122880 3788799 1832960 83 Linux
#

ブロックデバイスは次のとおりです。

#fdisk -l /dev/sdc

ディスク /dev/sdc: 8014MB, 8014266368バイト
247ヘッド、62セクター/トラック、1022シリンダー、合計15652864セクター
単位= 1 * 512 = 512バイトセクタ
セクタサイズ(論理/物理):512バイト/512バイト
I/Oサイズ(最小/最適): 512バイト/512バイト
ディスク識別子:0x00000000

   デバイス起動開始エンドブロックIDシステム
/dev/sdc1 2048 131071 64512 e W95 FAT16(LBA)
/dev/sdc2 131072 15652863 7760896 83 Linux
#

イメージの2番目のパーティションは、ブロックデバイスの2番目のパーティションを置き換えたいと思います。結局のところ、空き領域が損傷していることを心配しないでください。 GPartedを使用してクリーンアップし、とにかく他の作業に必要になります。

ベストアンサー1

# losetup --find --show --partscan --read-only 2013-02-09-wheezy-raspbian.img
/dev/loop7
# dd if=/dev/loop7p2 of=/dev/narnia bs=1M

それでも問題が解決しない場合は、次のいずれ--partscanかの方法を使用できます。

# partx -a /dev/loop7
# kpartx /dev/loop7

または同様のパーティションマッピングソリューション。

正しいかどうかを確認するには、まずインストールする必要があります。

もちろん、fdisk出力を読み取って直接提供することもできます。ddつまりskip=131072、パーティションのある場所を読み始めるために多くの入力ブロックをスキップしますが、実際のパーティションを表示するにはループデバイスを使用する方が良いです。

おすすめ記事