使用dd命令克隆SD卡


48

我正在尝试克隆可能包含许多分区的SD卡,其中一些分区是Ubuntu无法识别的。通常,我要克隆整个卷,而不仅仅是部分分区。因此,我安装了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

已创建7.9 GB(7,944,011,776字节)文件sdimage.img(SD卡为8 GB)。现在,我挂载另一个SD卡并执行:

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

问题是第二个dd命令挂在某个阶段,并且永远不会成功。此后,我无法重新启动或关闭计算机,而只需要关闭电源即可。

这是正确的方法吗?也许还有另一种克隆SD卡的方法?

操作系统:32位Ubuntu 12.04(精确的穿山甲)。


您可以挂载创建的img文件并查看其是否正确创建吗?
米兰Todorovic

@MilanTodorovic-我该怎么做?
亚历克斯F

如果我没记错的话:mount -o loop sdimage.img / path / to / mount。然后检查是否可以正确浏览img文件。
米兰Todorovic

@MilanTodorovic:我尝试了sudo mount -o sdimage.img / dev / mydisk并得到:mount:在/ etc / fstab或/ etc / mtab中找不到/ dev / mydisk可能我需要在之前创建一些dev条目。您可以将其作为答案发布一些细节吗?谢谢。
亚历克斯F

1
您不应在已安装的设备上使用dd。首先卸载所有分区,然后您的命令应该起作用。
ubfan1 2012年

Answers:


29

您不应在已安装的设备上使用dd。首先卸载所有分区,然后您的命令应该起作用。


2
为什么对我来说相反?我已经安装了Ubuntu 12.10,并且该命令仅适用于已分区的分区...
Luca Davanzo 2014年

1
@Velthune您确定吗?如果是这样,我建议您提出自己的问题。
Vreality 2014年

25

插入原始SD卡并检查设备的名称(通常是mmcblkXsdcX):

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 -继续读取错误后


这不需要两个SD卡读卡器吗?
Peter Mortensen

1
@PeterMortensen是的,我们很多人使用那些4合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的步骤恢复镜像文件(~/raspberrypi2.img背在我的情况),以新的SD卡(通过上述阿龙的回答很大程度上启发):

  1. 通过读卡器插入micro 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上也是如此)。确保不要通过任何会调用挂载的操作(打开“文件或磁盘”应用程序)来中断它

感谢大家的回答。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.