问题描述
我正在尝试克隆可能包含许多分区的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卡读卡器),请验证其名称并确保卸载它:
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