使用 dd 备份 Linux PC

我们也可以反向执行上述过程,将整个驱动器的内容写入镜像文件。
这是备份硬盘驱动器的一种非常方便和彻底的方法。

在这种情况下,我们基本上可以为我们的一个驱动器交换“输入文件”,并为图像交换“输出文件”:Drive

dd bs=64k if=/dev/nvme0n1 of=/home/aaron/nvmedrivebackup.img status=progress

在这里,我们选择笔记本电脑 NVMe 驱动器上的分区之一作为输入,并提供图像的路径和文件名作为输出。

我们使用较小的字节大小来避免副本出现任何问题,因为这将是我们在发生灾难时的恢复镜像。
为了恢复磁盘,只需反转输入和输出文件。

dd 命令的基本用法

dd 的基本用法使用以下语法:

dd option1=value1 option2=value2

dd 有很多选项可用,但以下是我们应该知道的开始:

  • bs :块大小描述了一次将读取和写入的数据量。使用此选项的权衡是完成操作的速度和发生故障时恢复的难易程度。更大的块大小完成得更快,但更难恢复。
  • if :输入文件是数据的来源。
  • of :输出文件是从输入源读入的所有数据的目的地。
  • status :这是一个可选标志,但很有用,它将在命令执行时为我们提供一些信息。我们将给它一个进度值,以便让我们知道该命令仍在工作。
Linux dd 命令

dd:“磁盘转储”命令

dd 的核心是将文件从一种格式复制和转换为另一种格式。
不是像 Word 或者 PDF 这样的格式,而是描述数据如何在磁盘上表示的非常低级的格式。

这是在大型机时代,当时不同的系统有自己的内部格式,解决交换问题是一项重大任务。

dd 命令从一个文件中获取位,并将它们移动到另一个文件中。
重要的是要理解 dd 只是将位从这里移动到那里,而不管文件系统格式、文件夹或者扩展名如何。
这意味着我们可以非常快速地完成很多工作,但这也意味着我们在运行它时需要小心。

考虑到这一点,Linux 社区中的聪明人将 dd 移植到另一个目的。
由于在 Linux 中“一切都是文件”,dd 提供了一种将 ISO 镜像刻录到闪存驱动器的简单方法。

它通过获取图像文件并将其“复制”到代表拇指驱动器的文件来完成此操作。
有各种各样的场景可以使用它,但我们在这里将重点关注两个:写入可移动媒体和进行备份。

使用 dd 写入可移动媒体

在第一个示例中,我们将尝试 dd 最常见的用例之一:写入可移动媒体。
例如,我们可以这样做以将 Linux 的安装镜像“刻录”到 USB 拇指驱动器上。

许多安装镜像以 .ISO 文件形式提供,旨在将其刻录到 CD 或者 DVD-ROM 驱动器,但我们可以使用如下命令将 .ISO 镜像刻录到 USB 驱动器:

dd bs=4M if=/path/to/imagefilename.img of=/dev/sda status=progress

在上面,我们将 imagefilename.img 的内容一次复制 4 MB 到 /dev/sda。
这是带有 /dev 文件子系统的文件,代表我们的 USB 驱动器。
我们在这里使用 4 MB 的块大小,因为大多数安装镜像都很大,如果我们使用较小的镜像,则需要很长时间才能完成。
在任何情况下出现问题都不是什么大问题,只需重新格式化拇指驱动器并再试一次。

确保输入和输出的值正确。
如前所述,dd 旨在将位从一个位置移动到另一个位置,它并不关心在此过程中可能会覆盖什么。
此外,请确保目标驱动器上没有我们需要的任何内容。
最好的情况是很难恢复,最坏的情况可能会一去不复返。

日期:2020-07-15 11:16:42 来源:oir作者:oir