dd 备份和恢复完整系统

Dan*_*ira 6 dd linux-mint

我使用装有 Mint Linux 的笔记本,几天后我将使用 Windows。所以我想“保存”我的操作系统,然后把它放回同一个驱动器上。

它使用全盘加密(Mint 安装时默认使用的加密)。

使用 Linux 启动 Live CD,然后使用以下内容创建副本:

dd if=/dev/sda of=/media/externalhd/mint.img
Run Code Online (Sandbox Code Playgroud)

[在这里我格式化并添加窗口] 完成后,我再次使用 Live CD 启动并执行以下操作:

dd if=/media/externalhd/mint.img of=/dev/sda
Run Code Online (Sandbox Code Playgroud)

应该工作吧?

Tim*_*her 5

您的命令很好,正如已经指出的那样,这也将节省驱动器上的所有空白空间。但是,如果您在安装系统时选择安全擦除选项,则驱动器的空白空间将充满随机噪音,因此压缩输出对您的帮助很小。

您应该为副本使用更大的块大小,并避免污染系统缓冲区缓存以使原始读取速度更快。

  • dd 选项 iflag=direct 或 oflag=direct 绕过 Linux 的缓存层从设备读取或直接读取。
  • dd 选项 bs(块大小)告诉 dd 一次读取或写入多少数据,现代磁盘驱动器在处理更大的数据块时工作得更快。

压缩是 CPU 密集型的,而 gzip 仅使用单核,这意味着这可能是复制速度的限制因素。使用使用所有 CPU 内核的 pigz 将使其更快,但仍可能受 CPU 限制。

作为一个带有现代 CPU 的粗糙球场,如果存储空间有问题,或者如果您通过比 USB2 慢的东西连接,我会使用压缩。USB3、SATA 或 100Mbit+ 网络几乎肯定会比 gzip 快,因此不会提高速度,但可能会节省一些空间。

在存储连接缓慢(即 10Mbit 以太网或 USB1/2)或空间不足的情况下,我将使用的命令是:

dd if=/dev/sda bs=1M iflag=direct | pigz -c > /media/external/image.sda.gz
Run Code Online (Sandbox Code Playgroud)

如果您可以快速连接到存储并且使用的空间不是问题,我将使用以下命令:

dd if=/dev/sda of=/media/external/image.sda.raw oflag=direct iflag=direct bs=1M
Run Code Online (Sandbox Code Playgroud)


Luc*_*ini 1

它有效,但不是最好的方法。由于原始数据的零,图像会非常大。如果你想避免这种行为,你可以这样做:

  dd if=/dev/sda | gzip > /media/externalhd/backup.img.gz
Run Code Online (Sandbox Code Playgroud)

Gzip 知道图像上不需要考虑零,而只是计算,因此图像会更小,特别是如果磁盘上有一些可用空间,加上 gzip 压缩,所以效果会好很多。