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


48

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:Ubuntu 12.04(Precise Pangolin)、32ビット。


作成したimgファイルをマウントして、正しく作成されているかどうかを確認できますか?
ミラノトドロビッチ

@MilanTodorovic-どうすればいいですか?
アレックスF

正しく覚えている場合:mount -o loop sdimage.img / path / to / mount。次に、imgファイルを正しく参照できるかどうかを確認します。
ミラノトドロビッチ

@MilanTodorovic:sudo mount -o sdimage.img / dev / mydiskを試してみました:mount:/ etc / fstabまたは/ etc / mtabで/ dev / mydiskが見つかりません。これをいくつかの詳細とともに回答として投稿できますか?ありがとう。
アレックスF

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

回答:


29

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


2
なぜ私にとって反対ですか?私は... montedのUbuntu 12.10とコマンドがあるが、パーティションでのみ動作しました
ルカDavanzo

1
@Velthune確かですか?もしそうなら、あなた自身の質問をすることをお勧めします。
Vreality 14

25

元の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

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


4
大量のデータをコピーするときは、デフォルトのブロックサイズよりも大きい値を設定する必要があります。そうしないと、非常に長く待たなければならない場合があります。sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img bs=4M
xaedes

13

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

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

NOTRUNC -出力ファイルの切り捨てられません
NOERRORを -読み取りエラーの後に続けます


これには2つのSDカードリーダーが必要ではありませんか?
ピーターモーテンセン

1
@PeterMortensenはい、そうです、私たちの多くはそれらの4-in-1タイプのアダプターを使用しています。
Teque5

9

ddは大丈夫ですが、cat /dev/sdc/ > ~/backup.iso もう一度SDカードに追加したい場合は、実行するだけですcat ~/backup.iso > /dev/sdc


両方のSDは8 GBです。catはSDイメージの作成に使用できますが、別のSDを作成するにはddを使用する必要があります。
アレックスF

0

Ubuntuで画像ファイル(私の場合)を新しいSDカードに復元するために働いた手順を以下に示します(~/raspberrypi2.img上記の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でも)。マウントを起動する操作(ファイルアプリまたはディスクアプリを開く)によって中断されないようにしてください

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.