压缩的硬盘驱动器图像非常大

chr*_*137 20 compression disk-image

我刚刚使用这个命令制作了一个新安装的双启动(Ubuntu 和 Windows)的图像(我已经使用了一段时间来制作较小的图像):

dd if=/dev/sda | gzip > /mnt/drive.img.gz
Run Code Online (Sandbox Code Playgroud)

在这个驱动器上,使用了 500G 中少于 60G 的数据。不过那个图像文件现在是 409G 大。

那个怎么样?gzip 不应该设法压缩所有这些零吗?正如我所说,这是一个全新安装的系统。不能这么乱。

现在我没想到文件是 60G,但 400G 对我来说似乎非常大。

Nom*_*mal 29

那个怎么样?gzip 不应该设法压缩所有这些零吗?

是的,如果它们是零

未使用的磁盘空间并不意味着它包含零;这意味着它未使用,并且可能包含任何内容

有些程序可以将未使用的磁盘空间擦除为零。我建议您在制作磁盘映像之前使用它们。(我不记得任何副手;在Linux中,我只用dd if=/dev/zero bs=1048576 of=somefile创建仅包含零的文件,填补了每个文件系统;然后使图像之前删除它们还有,我喜欢xzgzip。)

  • 每次要进行克隆时写入 400G 的零在 SSD 上似乎不是一个好主意。另一种解决方案(使用文件系统感知克隆程序)似乎更好。 (12认同)
  • @FedericoPoloni:不,但生成的图像是完美的[原始磁盘图像](https://wiki.archlinux.org/index.php/disk_cloning)。[磁盘克隆实用程序](https://en.wikipedia.org/wiki/List_of_disk_cloning_software) 使用各种格式,因此您需要该实用程序来恢复映像。我不知道(但也没有检查是否)任何可以在用零替换图像中未使用的块时实际生成原始图像的东西;那将是真正有用的。在 Linux 中使用 `dd` 是解决原始图像大小问题的最简单和最容易的方法,并且一次性使用,即使在 SSD 上也可以。 (4认同)
  • @Gilles 修剪后的空间在读取时不能保证为零。一些控制器提供,其他控制器没有。 (3认同)

小智 14

对于单个分区的备份,您可以改用partclone

Partclone 读取文件系统以查看文件的存储位置,并仅备份分区的那些部分。

  • 此外,[Clonezilla](http://clonezilla.org/) 是执行此操作的出色 GUI。 (3认同)