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

wit*_*enz 4 command-line mount dd sd-card

这是在此处找到的另一个用户问题的后续: SD card cloning using the dd 命令

我已经使用 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
Run Code Online (Sandbox Code Playgroud)

对于那些仍在学习 Linux 方面的人,即使到目前为止已经有几年的使用和经验,您的帮助是值得的。

Tak*_*kat 5

在使用dd复制块设备时,我们需要注意它是一种用于逐位复制数据的低级工具。

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

  • 任何目的地的部分是决定性的,因为它意味着,如果你不小心在错误的地方它可能会无情地重写数据类型有。

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

因为dd也不允许增量备份并且需要相当长的时间,所以我建议您查看许多不同的备份解决方案,我们可能会找到比dd.

仍然回答您的问题:

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