使用 dd 命令克隆 SD 卡 - 更多问题

使用 dd 命令克隆 SD 卡 - 更多问题

这与此处的另一个用户的问题有些相似: 使用 dd 命令克隆 SD 卡

我曾使用 dd 命令克隆或备份 SD 卡,但收效甚微。这些是用于我的单板计算机项目,偶尔完全备份 SD 卡是明智之举。我说收效甚微是因为有时我能够使用在线找到的建议完全恢复系统(卡)。

但请注意,在其他时候情况并非如此,我想知道这是否与安装有关(或者理想情况下是卸载卡,因为这里存在一些混淆(至少对我来说)。

问题 1:当我运行 umount(如上述论坛页面中所述)时,系统报告设备未安装。这是因为它刚刚卸载了设备,还是因为我指定要卸载的设备根本不存在,无法卸载?

要卸载,我使用以下命令:sudo umount /dev/sdc

问题 2:在 Ubuntu 16.04(文件)GUI 实用程序中,插入 USB 的 USB 记忆棒或 SD 卡右侧有一个向上的小箭头。如果单击此箭头,则会有效地断开设备连接并使其可以安全移除。这与 CLI 中的卸载相同吗?似乎不是这样,因为当我这样做时,dd 命令会引发一个错误,它找不到要创建映像的设备。如果我拔下 SD 卡(USB)然后重新插入,SD 卡会再次显示小箭头,我可以使用 DD 毫无问题地创建映像(尽管映像是否有用是另一个问题,因为我仍然不知道在生成映像之前它是否真的被卸载了!)

向上的箭头断开 HDD、SD 等。卸载?

问题 3:当我运行 时sudo fdisk -l,我看到我的卡被列为sdb,但是如果我使用磁盘实用程序,我会看到 SD 卡实际上至少包含 3 个分区(SDB 重复了 2 个分区,SDB1 是主分区或大分区)。我应该选择哪个分区作为 dd 操作的一部分?dd 不会限制自己只制作该分区的映像,而忽略 SD 卡的其余部分吗?如果是这样,那么将其称为磁盘映像工具就没什么意义了……

最后,这是我运行的 dd 命令来创建 SD 卡的压缩映像(当我正确完成它时,它可以完美运行,并且 Etcher 读取压缩映像也没有问题)

sudo dd if=/dev/sdc | pv | gzip > FileNameHere.img.gz

尽管已经使用并体验了数年 Linux,但是对于那些仍在学习 Linux 的人来说,我们非常感谢您的帮助。

答案1

当使用dd它复制块设备时,我们需要意识到它是一个逐位复制数据的低级工具。

这个非常强大的工具将会把每一个位从源复制到任何目的地。

  • 任何目的地这一部分是决定性的,因为这意味着如果你不小心在错误的地方输入,它可能会无情地覆盖那里的数据。

  • 每一点部分还意味着它将复制任何位置上的每个位。它还将复制 NULL 位和垃圾内容。这对于创建用于恢复的映像非常有用,但对于简单的备份来说,它可能不是您所需要的。

因为dd也不允许增量备份,而且需要相当长的时间,我建议你看看这些许多不同的备份解决方案我们也许能找到一个比 更能满足您需求的dd

仍然回答您的问题:

  1. 是的,您可以从 Nautilus 和命令行卸载分区(即不是驱动器!)。
  2. 是的,需要卸载分区(例如/sdb1)才能使用 复制它们dd
  3. 是的,您可以复制整个块设备(在您的情况下/sdb),包括所有分区、分区表、已删除的文件、引导记录、已删除的分区以及它可能包含的其他内容,dd但您不能跳过“未使用”的区域。

答案2

1. 卸载

命令

sudo umount /dev/sdc

会卸载直接“在整个驱动器中”创建的文件系统,就像在旧软盘中一样。如今,我们通常创建分区/dev/sdxn 并在分区中创建文件系统,其中x是驱动器号,n是分区号,因此更相关的命令是

sudo umount /dev/sdc1

或所有分区sdc

sudo umount /dev/sdc?

2. 弹出符号

您指的“箭头”是弹出符号,它不仅会卸载 USB 闪存盘或存储卡,还会关闭其电源。您需要拔下闪存盘或存储卡并重新插入才能恢复电源,这样您就可以再次安装它(也许它会自动安装)。

这和你用命令执行的操作不同umount。我认为 udisks软件是通过弹出符号调用的。请参阅

man udisksctl

它描述了它的命令行实用程序。

3. 磁盘所见的哪个分区...

克隆一个整个驱动器克隆整个操作系统。您应该使用源设备/dev/sdx,否则您只是克隆一个分区,它不会包含整个系统。应该有一个驱动器号,但没有分区号。您也可以使用克隆兹拉或者韓國以更安全的方式克隆(dd很危险)。

如果你仍然想使用dd,你应该首先卸载驱动器上的所有分区,

sudo umount /dev/sdc?

然后你在编辑的问题中显示的命令行就可以完成这项工作了,

sudo dd if=/dev/sdc | pv | gzip > FileNameHere.img.gz

如果我理解正确的话,它对您有用(创建一个压缩图像文件,可用于恢复系统)。

  • 如果存在 MSDOS 分区表(MBR),它应该直接与逆命令行一起工作来创建工作系统。

  • 如果有 GUID 分区表 (GPT),则必须修复驱动器末尾的备份分区表(如果目标驱动器大小与源驱动器大小不完全相同)。此操作会自动完成,方法是韓國,也可以手动完成gdisk或者使用脚本gpt-fix

相关内容