使用dd命令进行SD卡克隆
我正在尝试克隆可能包含许多分区的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
创建文件sdimage.img,创建7.9 GB(7,944,011,776字节)(SD卡为8 GB)。 现在我挂载另一张SD卡并执行:
dd if=sdimage.img of=/dev/sdc bs=4M
问题是第二个dd命令在某个阶段挂起,并且永远不会成功。 在此之后,我无法重启或关闭计算机,我只需关闭电源即可。
这是正确的方法吗? 也许有另一种克隆SD卡的方法?
操作系统: Ubuntu 12.04 (精确穿山甲),32位。
您不应该在已安装的设备上使用dd。 首先卸载所有分区,然后你的命令应该工作。
插入原始SD卡并检查设备名称(通常为mmcblkX
或sdcX
):
sudo fdisk -l
在我的情况下,SD卡是/dev/mmsbkl0
。 现在您必须卸载设备:
sudo umount /dev/mmcblk0
现在创建设备的图像:
sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img
这需要一段时间。
完成后,插入空SD卡。 如果设备不同(USB或其他类型的SD卡读卡器),请validation其名称并确保卸载它:
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 – 读取错误后继续
dd很好,但我更喜欢cat /dev/sdc/ > ~/backup.iso
如果你想再把它放在SD卡上,只需运行cat ~/backup.iso > /dev/sdc
以下是在Ubuntu上为我恢复图像文件(在我的情况下为~/raspberrypi2.img
)恢复到新SD卡的步骤(受到Alon上面的回复的激励):
- 通过读卡器插入micro SD卡。
- 打开磁盘应用程序。
- 快速格式化整张卡(不是特定分区)。
- 关闭磁盘。
-
打开终端并执行:
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上)。 确保不会通过任何调用挂载 (打开文件或磁盘应用程序)的操作来中断它 。
谢谢大家的回答。