unf*_*nfa 7 compression disk-image
我经常处理全盘映像,我经常需要使用 USB-3 磁盘作为临时介质在不太强大的笔记本电脑上读写全盘映像。
复制原始图像可能是最快的方法,但我必须处理有限的可用存储空间。
我需要的是高吞吐量和低 CPU 使用率 - 压缩比对我来说不是那么重要。
我想要一个工具可以非常轻松地压缩创建的图像 - 主要是编码磁盘上的空白空间,以便我只能存储有用的数据,同时使其尽可能快 - 希望几乎和原始dd
复制一样快。
我绑定了 use pxz -1
,因为它可以使用多个 CPU 内核来加速压缩,希望最快的压缩仍然有用。然而,这似乎没有我想要的那么胖。
压缩 500 GB 磁盘映像估计需要 21 小时:
mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G | pxz -1 > Lenovo-Win8-sda.dd.xz
0:09:21 [9.26MiB/s] [6.54MiB/s] [> ] 0% ETA 21:34:46
Run Code Online (Sandbox Code Playgroud)
完全没有压缩预计需要 3 小时才能完成成像:
mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G > Lenovo-Win8-sda.dd
0:00:20 [80.2MiB/s] [49.8MiB/s] [> ] 0% ETA 2:50:20
Run Code Online (Sandbox Code Playgroud)
在 15 小时时使用lbzip2 -1
for compresson 似乎比pxz -1
使用 ETA稍快,这仍然很慢。
mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G | lbzip2 -1 > Lenovo-Win8-sda.dd.bz2
0:00:22 [9.07MiB/s] [9.76MiB/s] [> ] 0% ETA 14:33:38
Run Code Online (Sandbox Code Playgroud)
有没有更快的 Linux 压缩工具?
LZ4
apt install liblz4-tool
然后你可以用lz4
命令压缩并用lz4 -d
.
它默认为最快的压缩模式。
通过 USB 3.0 从内部硬盘驱动器到外部驱动器的 500 GB 估计需要 2 到 3 小时:
mint Backup # dd if=/dev/sda bs=100M | pv -ptera -s500G | lz4 > Lenovo-Win8-sda.dd.lz4
0:02:47 [97.5MiB/s] [58.1MiB/s] [> ] 1% ETA 2:24:11
Run Code Online (Sandbox Code Playgroud)
那么,这会不会是绝对的最快的(这是慢于LZ4,LZOP和斯纳皮),但可能是足够快的使用情况,并会得到的方式更好的比率比LZ4(转移较少的数据,将节省您的时间太)。
官网:https : //facebook.github.io/zstd/
Debian 软件包被称为 zstd
与 LZ4 不同的是,它是多线程的(用于压缩和解压),并且使用最低的压缩设置,它可以轻松地使 USB 3.0 链接饱和(您对 LZ4 的测试可能已经这样做了),同时获得与默认值相同的压缩率Gzip 中的设置。