压缩的硬盘图像很大


20

我只是使用此命令制作了一个新安装的双引导(Ubuntu和Windows)的映像(我已经使用了一段时间以获取较小的映像):

dd if=/dev/sda | gzip > /mnt/drive.img.gz

在该驱动器上,使用不到500G中的60G。不过,该映像文件现在为409G。

那个怎么样?gzip是否不应该压缩所有这些零?如我所说,它是一个全新安装的系统。不会那么混乱。

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


Answers:


29

那个怎么样?gzip是否不应该压缩所有这些零?

是的,如果它们为零

未使用的磁盘空间并不意味着它包含零。这表示它尚未使用,可能包含任何东西

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


哦,谢谢,在安装驱动器之前,我什至没有考虑过驱动器上的内容!我猜想现在解压缩该图像并将其缩小(似乎也有解决方案)会更快。我还将考虑使用xz。谢谢!
chris137 '16

12
每次要克隆时都写入400G零在SSD上似乎不是一个好主意。其他解决方案(使用支持文件系统的克隆程序)似乎更好。
Federico Poloni

4
@FedericoPoloni:否,但是生成的映像是完美的原始磁盘映像磁盘克隆实用程序使用各种格式,因此您需要该实用程序来还原映像。我不知道(但也没有检查过)在将图像中未使用的块替换为零时,实际上可以生成原始图像的任何图像;那将是真正有用的。dd在Linux中使用它是解决原始图像大小问题的最简单,最容易的方法,并且一次性使用,即使在SSD上也可以。
Nominal Animal

1
@FedericoPoloni:是的,可以使用nbdkit 挂载 gzip和xz压缩的图像。(我并不真正担心这些格式,如果它们是开放的并且由多个工具支持的话;我只是担心这些工具在新系统上变得难以维护且存在故障。我很乐意使用SquashFS而不是xz或gzip的,例如)。
标称动物

3
@Gilles修剪的空间在读取时不保证为零。一些控制器给出了,其他控制器则没有。
deviantfan '16

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.