
ディスクイメージを持っています。それは「全体の」ディスクイメージで、例えば複数のパーティションを含んでおり、クローンを作成したいのですが1つそれらの 1 つ (最初の 1 つではありません) を、複数のパーティションがある外付けドライブのパーティションにコピーします (ディスクの最初のパーティションにクローンを作成するわけでもありません...)
イメージを FDisk すると次のようになります:
# fdisk -l 2013-02-09-wheezy-raspbian.img ディスク 2013-02-09-wheezy-raspbian.img: 1939 MB、1939865600 バイト 255 ヘッド、63 セクター/トラック、235 シリンダー、合計 3788800 セクター 単位 = 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: 8014 MB、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 リナックス #
イメージの 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
つまり、その数の入力ブロックをスキップして、パーティションが配置されている場所から読み取りを開始できます。ただし、ループ デバイスを使用して実際のパーティションを確認する方が便利です。
答え2
次のようなものが機能するはずです:
dd if=/path/to/2013-02-09-wheezy-raspbian.img2 of=/dev/sdc2 bs=4096 conv=notrunc,noerror
もし= 複製したい画像を設定します
の= イメージをクローンするターゲットパーティションを設定します
答え3
- イメージをループバック デバイスとしてマウントします。
losetup -fP yourImage.img
- これで、イメージの各パーティションに直接アクセスできるようになりました。 を使用する必要がある場合は
dd
を実行できますdd if=/dev/loop0p1 of=image.img
が、 の方が良いと思いますcat
。ルートシェルでは、 を実行するだけですcat /dev/loop0p1 > image.img
。どちらの例でも、最初のパーティションが必要で、割り当てられたループバックデバイスが/dev/loop0
- ループバック デバイスの使用が終わったら、 を使用して切断できます
losetup -d /dev/loop0
。ここでも、 が/dev/loop0
ループバック デバイスであると想定しています。
答え4
2番目のパーティションだけを別のイメージにコピーするには、
dd if=2013-02-09-wheezy-raspbian.img of=second.img bs=512 skip=122880
その後、ディスク上のパーティションの代わりにコピーすることができます
dd if=second.img of=/dev/sdc2 bs=512
あるいは1つのコマンドで実行することもできます
dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdc2 bs=512 skip=122880
書き込む前に、必ず /dev/sdc2 をアンマウントしてください。