如何使用 dd 轻松克隆和还原 Linux 磁盘映像

当需要在 Linux 上擦除、备份或恢复数据时,您可以选择几个应用程序。 GParted 是最成熟的选择之一。 GNOME 磁盘是一种更现代的替代品,在 GNOME 桌面环境中看起来很棒。 但无论您运行哪种 Linux 操作系统,总有一个选项可以正常工作——dd.

您无需进入终端即可使用 Linux。 但是,一旦您将某些命令添加到您的曲目中,您不仅可以节省时间,而且您将学习可以在任何版本的 Linux 中使用的技能。

为什么要使用dd?

无论您是在桌面还是服务器上,dd 都可以正常工作。 dd 最初是一个 Unix 命令,因此除了 Linux 之外,它还支持其他类 Unix 操作系统,例如 FreeBSD 和 macOS。

dd 也只需几秒钟即可启动擦除或创建磁盘映像。 一旦您知道要输入什么,您就可以在输入在线搜索指令的时间内打开终端并擦除驱动器。

拥有权利的同时也被赋予了重大的责任。 克隆驱动器的命令与擦除驱动器的命令并没有什么不同。 在使用可以删除文件的命令时,您需要特别注意键入的内容。

你紧张吗? 好的。 即使您是 dd 专家,您也总是希望仔细输入命令。 在最坏的情况下,心不在焉会破坏硬件,更有可能导致数据丢失。 现在,让我们开始吧。

使用 dd 克隆驱动器

克隆驱动器是备份计算机的可靠方法。 您可以将数据备份到便携式硬盘驱动器或 Dropbox,但这只会保存您的文件。

要保存您的应用程序,您必须学习如何备份每个单独的应用程序。 对于某些人来说,这意味着导出特定文件。 对于其他人来说,这意味着复制隐藏文件夹。 然后是那些您根本无法备份的应用程序。

dd 通过创建整个硬盘驱动器或分区的精确副本来解决此问题。 当您恢复此副本时,您的计算机将恢复到原来的状态。 您将取回您的文件、您的应用程序、您的浏览历史记录,甚至您的系统设置。 一切。

要克隆您的驱动器,您需要第二个驱动器,该驱动器的空间比您要复制的驱动器大。 这可能是便携式硬盘驱动器或大型闪存驱动器。

首先打开终端。 您需要管理员权限才能执行任何 dd 命令。 你可以输入 以管理员身份登录或键入 sudo 在 dd 命令的开头。

准备好复制时,键入以下命令。 请注意,它将擦除第二个驱动器上的所有预先存在的数据,因此请务必事先备份所有数据。

dd if=/dev/sdX of=/dev/sdY

现在,让我们弄清楚发生了什么。 dd 是命令。 如果 是输入,如您要复制的位置。 是您要替换为副本的输出或位置。

sdXsdY 参考您正在与之交互的驱动器。 驱动器通常有一个名称,例如 /dev/sda, /dev/sdb, 或者 /dev/sdc. 您可以使用分区编辑器找出名称。 或者,由于您已经在终端中,您可以使用 lsblk 命令。

创建磁盘映像

克隆驱动器的另一种方法是创建一个磁盘映像,您可以像使用可启动 USB 一样移动和恢复该磁盘映像。

创建映像文件允许您将多个备份保存到单个目标,例如大型便携式硬盘驱动器。 同样,这个过程只需要一个命令:

dd if=/dev/sdX of=path/to/your-backup.img

为了节省空间,您可以使用 dd 压缩备份。

dd if=/dev/sdX | gzip -c > path/to/your-backup.img.gz

此命令将您的备份压缩为 IMG.GZ 文件,这是 Linux 可以处理的众多压缩格式之一。

使用 dd 恢复驱动器

如果您不能使用备份,它们有什么用? 当您准备好使用 dd 恢复映像时,您有两个选择。 如果您使用第一种方法,只需交换两个目的地。

dd if=/dev/sdY of=/dev/sdX

从图像文件恢复时,同样的概念适用:

dd if=path/to/your-backup.img of=/dev/sdX

如果您的图像文件被压缩,那么情况会有所不同。 请改用此命令:

gunzip -c /path/to/your-backup.img.gz | dd of=/dev/sdX

要清楚, 枪弹 是“g unzip”,与“g zip”相反。 此命令解压缩您的备份。 然后 dd 用此映像替换现有驱动器。

要考虑的参数

您可以通过在末尾添加一个参数来更改您的命令。 默认情况下,dd 传输数据可能需要一段时间。 您可以通过增加块大小来加快该过程。 通过添加来做到这一点 bs= 在末尾。

dd if=/dev/sdX of=/dev/sdY bs=64

这 example 将默认块大小从 512 字节增加到 64 KB。

转换=无错误 告诉 dd 继续尽管发生任何错误。 默认行为是停止,从而导致文件不完整。 请记住,忽略错误并不总是安全的。 生成的文件可能已损坏。

转换=同步 每当有任何读取错误时,添加带有零的输入块。 这样数据偏移保持同步。

您可以将最后两个组合为 转换=无错误,同步 如果你愿意的话。 逗号后没有空格。

认识dd

如果你有兴趣,dd的名字指的是 IBM 作业控制语言的声明. 如果你不明白那里发生了什么,那就不要出汗。 这不会使命令更难使用。

需要更多信息来帮助 dd? 这 维基页面 非常彻底。 还有一篇很棒的文章 Arch Linux 维基. 同样,您是否使用 Arch 并不重要。 无论您的 Linux 操作系统如何,dd 的工作方式都相同。

如果事实证明 dd 不适合您,那么您并没有不走运。 还有其他方法可以克隆硬盘!