web-dev-qa-db-ja.com

実際のパーティションが収まる場合、ddを使用して大きなSDカードを小さなSDカードに複製できますか?

いくつかのパーティションがある16GB SDカードを持っています(実際にはRaspberry Pi用のカードです)。プライマリカードのクローンを作成したい他の4GBカードがいくつかあります。プライマリカードの3つのパーティションは次のとおりです。

  • Raspブートパーティション、FAT、60MB
  • Linuxパーティション、ext2、1GB
  • 追加の「ストレージ」パーティション、FAT、1GB

ddを使用してカードの画像を作成する場合:

dd if=/dev/sdb of=~/sd-card.bin

結果の.binのサイズは16GBです。 ddを使用して実際に使用されているものだけをコピーする方法はありません。つまり、4GB未満で、これをddを新しい4GBカードにコピーできますか?または、私が使用すべきより良い解決策はありますか?

9

Raspberry Pi自体ではなく、PCのLinuxまたはMacコンピューターを使用してコピーを実行していると思います。おそらく、ブロックサイズを追加する必要があります。

Bs = 1Mまたはbs = 4Mを指定して、Raspberry Piディスクに使用される1メガと4メガを確認しました。大きな転送は小さな転送より速いので、ディスクを書き込むときはブロックサイズがより重要だと思います。これはディスクのブロックサイズを設定するのではなく、ddが使用する転送のサイズに影響を与えるだけです。大きなブロックサイズを設定する理由の1つは、フラッシュを書き込む前にフラッシュを消去する必要があることです。これは自動的に行われますが、最小消去サイズより大きい転送の場合は高速です。

「count」を使用して、ddによってコピーされるデータの総量を制限できます。 「カウント」はブロック単位です。ソースディスクの最後のパーティションの最後が宛先のサイズより前の場合は、必要な操作を実行できます。

何かのようなもの dd if=/dev/sdb of=~/sd-card.bin bs=1M count=4000は、4000MBのサイズのイメージを作成します。

詳細は http://en.wikipedia.org/wiki/Dd_(Unix) および http://elinux.org/RPi_Easy_SD_Card_Setup を参照してください。最後のパーティションの終わりやカードの合計サイズを見つける方法がわかりません。ただし、ディスクをフォーマットした場合は、おそらくこれを行う方法を知っているでしょう。

9

William's answer を拡張すると、fdiskと計算機を使用して、最後のパーティションの終わりを計算できます。

$ fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00057540

Device         Boot  Start     End Sectors  Size Id Type
/dev/mmcblk0p1        2048  186367  184320   90M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      186368 3667967 3481600  1.7G  5 Extended
/dev/mmcblk0p5      188416 3667967 3479552  1.7G 83 Linux

合計使用容量(バイト)=最後のパーティションの最終セクターXセクターサイズ(ここでは3667967 x 512)。

総使用容量(GB)=総使用容量(バイト)/ 1024 (ここでは1.749023 GBです)。

通常、データの最後の有用なビットまで切り詰められたイメージを作成することは重要ではないため、上記の例では、Williamが説明した方法を使用して2 GBのイメージを作成します 以前の回答と同じ

dd if=/dev/mmcblk0 of=/path/to/pi_updated.img bs=1M count=2048

画像の最後に含まれるのは、最後の有用なデータの後の役に立たないガフの小さな部分ですが、それは原則として、画像をメディアに書き戻すときに上書きされる役に立たないガフと同じです。

この方法は、ダースほどのクローンで私のために働いています。この方法に致命的な欠陥がある場合、それらはまだ表面化されていません。

3
Crumeniferus