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ビット。
マウントされたデバイスでddを使用しないでください。最初にすべてのパーティションをアンマウントすると、コマンドが機能します。
元の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
書き込み操作は以前よりはるかに遅くなります。
私はddツールを使用して複数のパーティションを持つUSBスティックをクローンしています、ここに私のコマンドがあります:
Sudo dd if=/dev/sdb of=/dev/sdc bs=4096 conv=notrunc,noerror
notrunc-出力ファイルを切り捨てません
noerror-読み取りエラー後に続行
Ubuntuで復元イメージファイル(私の場合は~/raspberrypi2.img
)から新しいSDカードに戻るための手順を次に示します(上記のAlonの回答に大きく影響を受けました)。
ターミナルを開いて実行します:
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でも)。 マウントを呼び出す操作によって中断されないようにしてください(ファイルまたはディスクアプリを開く)。
みんなの回答をありがとう。