为什么压缩创建的磁盘映像会产生比管道更小的文件?

为什么压缩创建的磁盘映像会产生比管道更小的文件?

案例1.我用来dd创建图像:

dd if=/dev/rdiskx of=/path/to/image bs=1m. 

它的大小为 16 GB。我将其压缩,突然间大小达到 100 MB 左右。

案例 2. 我用来dd创建一个图像,通过 gzip 管道传输它:

 dd bs=1m if=/dev/rdiskx | gzip > image.gz. 

它的大小为 11 GB。

怎么会这样?我能做点什么吗?

答案1

我认为这与 gzip 有关放气算法及其使用的小字典大小(32K)。

bs也尝试尝试不同的值。例如尝试 32K。

还想知道第一个 dd 是否以某种方式将该图像存储为稀疏文件。

图像在压缩/解压缩之前/之后是否保留其大小?du -sm和的值有差异吗ls -la

相关内容