使用 dd 命令克隆 SD 卡

Ale*_*x F 72 clone sd-card

我正在尝试克隆可能包含多个分区的 SD 卡,其中一些分区是 Ubuntu 无法识别的。通常,我想克隆整个卷,而不仅仅是某些分区。所以,我挂载 SD 卡并在日志查看器中看到类似的内容:

kernel: [  262.025221]  sdc: sdc1 sdc2

alex@u120432:~$ ls /dev/sdc*
/dev/sdc  /dev/sdc1  /dev/sdc2
Run Code Online (Sandbox Code Playgroud)

由于我想复制整个磁盘,我执行:

dd if=/dev/sdc of=sdimage.img bs=4M
Run Code Online (Sandbox Code Playgroud)

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

dd if=sdimage.img of=/dev/sdc bs=4M
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 53

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

sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)

你可能会看到:

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
Run Code Online (Sandbox Code Playgroud)

在我的情况下,SD 卡是/dev/mmcblk0*p1*p2是分区)。

现在您必须卸载设备:

sudo umount /dev/mmcblk0
Run Code Online (Sandbox Code Playgroud)

现在创建设备的图像:

sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img bs=1M status=progress
Run Code Online (Sandbox Code Playgroud)

这将需要一段时间。

完成后,插入空的 SD 卡。如果设备不同(USB 或其他类型的 SD 卡读卡器),请验证其名称并确保将其卸载:

sudo fdisk -l
sudo umount /dev/mmcblk0
Run Code Online (Sandbox Code Playgroud)

将图像写入设备:

sudo dd if=~/sd-card-copy.img of=/dev/mmcblk0 bs=1M status=progress
Run Code Online (Sandbox Code Playgroud)

写操作比以前慢得多。

  • 复制大量数据时,您应该设置大于默认的块大小,否则您可能需要等待很长时间。`sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img bs=4M` (10认同)
  • `dd` 命令真正令人讨厌的一件事是默认情况下没有输出。您可以通过在命令末尾添加 `status=progress` 来更改它因此它会变成:`sudo dd if=/dev/mmcblk0 of=/media/data/sd-card-copy.img status=progress` (2认同)

ubf*_*an1 39

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

  • 为什么对我来说是相反的?我有 Ubuntu 12.10 并且该命令仅适用于安装的分区... (2认同)
  • @Velthune 你确定吗?如果是这样,我建议您提出自己的问题。 (2认同)

tom*_*myk 15

我正在使用 dd 工具来克隆具有多个分区的 U 盘,这是我的命令:

sudo dd if=/dev/sdb of=/dev/sdc bs=4096 conv=notrunc,noerror
Run Code Online (Sandbox Code Playgroud)

notrunc之外-不截断输出文件
NOERROR -读取错误后继续

  • @PeterMortensen 是的,我们很多人都使用那些 4 合 1 类型的适配器。 (2认同)

Vre*_*ity 11

dd 很好,但我更喜欢cat /dev/sdc/ > ~/backup.iso 如果你想再次把它放在 SD 卡上,只需运行cat ~/backup.iso > /dev/sdc