我经常处理完整的磁盘映像,我经常需要用USB-3磁盘作为临时介质,在功能不太强的笔记本电脑上读取和写入完整的磁盘映像。
复制原始图像可能是最快的方法,但我必须处理有限的存储空间可用。
我需要的是高吞吐量和低CPU使用率-压缩比对我来说并不重要。
我希望有一个工具可以非常轻松地压缩所创建的图像--主要是对磁盘上的空空间进行编码,以便我只能存储有用的数据,同时尽可能快地存储数据--希望它几乎与原始的dd复制一样快。
我决定使用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:463小时内完全没有预测的压缩来完成成像:
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在15小时内使用lbzip2 -1进行压缩似乎比使用ETA的pxz -1稍微快一些,而后者仍然非常慢。
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:38Linux有更快的压缩工具吗?
发布于 2018-06-06 14:40:48
apt install liblz4-tool
然后可以使用lz4命令进行压缩,用lz4 -d解压缩。
它默认为最快的压缩模式。
从内部硬盘驱动器到通过USB3.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发布于 2018-06-06 19:13:30
因此,这并不是绝对最快的(它比LZ4、LZOP和Snappy慢),但对于您的使用来说可能足够快,并且比LZ4得到更好的比率(传输更少的数据也可以节省您的时间)。
官网:https://facebook.github.io/zstd/
Debian包称为zstd。
与LZ4不同的是,它是多线程的(用于压缩和解压缩),使用最低的压缩设置,它可以轻松地填充USB3.0链接(您的LZ4测试可能已经做到了这一点),同时获得了与Gzip中默认设置相同的压缩比。
发布于 2018-06-06 17:11:32
这听起来像是一个XY问题. --一般的压缩工具不太可能在磁盘映像上做得很好,因为未使用的空间不一定是空的。(诚然,在文件系统中有一些方法可以清除未使用的空间。)
最好使用备份工具--例如rsync、Clonezilla、Time Machine、互斥性、dump,甚至tar,等等--它理解文件系统格式,只备份所使用的部分。请参见这个问题来讨论其中一些备份。这种方法的优点是可以更容易地将备份还原到不同大小的磁盘上。
https://unix.stackexchange.com/questions/448217
复制相似问题