web-dev-qa-db-ja.com

ddコマンドを使用したSDカードのクローン作成

Ubuntuが認識できないパーティションがいくつか含まれている可能性のあるSDカードのクローンを作成しようとしています。一般に、一部のパーティションだけでなく、ボリューム全体のクローンを作成します。そのため、SDカードをマウントすると、ログビューアーに次のようなものが表示されます。

kernel: [  262.025221]  sdc: sdc1 sdc2

alex@u120432:~$ ls /dev/sdc*
/dev/sdc  /dev/sdc1  /dev/sdc2

ディスク全体をコピーするため、次を実行します。

dd if=/dev/sdc of=sdimage.img bs=4M

ファイルsdimage.img、7.9 GB(7,944,011,776バイト)が作成されます(SDカードは8 GB)。次に、別のSDカードをマウントして実行します。

dd if=sdimage.img of=/dev/sdc bs=4M

問題は、2番目のddコマンドが何らかの段階でハングし、成功しないことです。この後、コンピューターを再起動したりシャットダウンしたりすることはできません。電源を切るだけです。

これは正しいアプローチですか? SDカードを複製する別の方法がありますか?

OS: buntu 12.04 (正確なセンザンコウ)、32ビット。

49
Alex F

マウントされたデバイスでddを使用しないでください。最初にすべてのパーティションをアンマウントすると、コマンドが機能します。

28
ubfan1

元のSDカードを挿入し、デバイスの名前を確認します(通常はmmcblkXまたはsdcX):

Sudo fdisk -l

あなたが見るかもしれません:

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *       2048  2099199  2097152    1G  c W95 FAT32 (LBA)
/dev/mmcblk0p2      2099200 31116287 29017088 13.9G 83 Linux

私の場合、SDカードは/dev/mmcblk0です(*p1*p2はパーティションです)。

次に、デバイスをアンマウントする必要があります。

Sudo umount /dev/mmcblk0

次に、デバイスのイメージを作成します。

Sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img

これにはしばらく時間がかかります。

完了したら、空のSDカードを挿入します。デバイスが異なる場合(USBまたは他の種類のSDカードリーダー)、デバイスの名前を確認し、必ずアンマウントします。

Sudo fdisk -l
Sudo umount /dev/mmcblk0

画像をデバイスに書き込みます。

Sudo dd if=~/sd-card-copy.img of=/dev/mmcblk0

書き込み操作は以前よりはるかに遅くなります。

25
Alon Fleider

私はddツールを使用して複数のパーティションを持つUSBスティックをクローンしています、ここに私のコマンドがあります:

Sudo dd if=/dev/sdb of=/dev/sdc bs=4096 conv=notrunc,noerror

notrunc-出力ファイルを切り捨てません
noerror-読み取りエラー後に続行

14
tommyk

Ubuntuで復元イメージファイル(私の場合は~/raspberrypi2.img)から新しいSDカードに戻るための手順を次に示します(上記のAlonの回答に大きく影響を受けました)。

  1. マイクロSDカードをカードリーダーから挿入します。
  2. ディスクアプリを開きます。
  3. 特定のパーティションではなく、カード全体をクイックフォーマットします。
  4. ディスクを閉じます。
  5. ターミナルを開いて実行します:

    Sudo fdisk -l
    

関連する出力(カード全体のクイックフォーマットによるパーティションがないことを示しました):

Disk /dev/sdb: 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: 0x6957f2f2

Sudo dd if=~/raspberrypi2.img of=/dev/sdb

このステップには数分かかります(USB3でも)。 マウントを呼び出す操作によって中断されないようにしてください(ファイルまたはディスクアプリを開く)。

みんなの回答をありがとう。

0
BoazC