在 Linux Mint 20.2 Cinnamon 上,我想创建包含 Windows 10 的辅助磁盘驱动器 (SATA) 的磁盘映像,现在并不重要,直接gzip
使用Parallel gzip
=pigz
编辑到 NTFS 格式的外部 HDD 上(即时压缩)。
我的问题是在生成的压缩文件中,内容的大小有些扭曲(错误),我希望您看看:
1TB 驱动器未压缩磁盘仅显示 3.8GB,而其压缩大小为 193 GB。
$ gzip --list sata-disk--windows10--2021-Sep-24.img.gz
compressed uncompressed ratio uncompressed_name
206222131640 3772473344 -5366.5% sata-disk--windows10--2021-Sep-24.img
-rwxrwxrwx 1 vlastimil vlastimil 193G 2021-Sep-24 sata-disk--windows10--2021-Sep-24.img.gz
我刚刚运行的以下 shell 片段的注释
序列号被删减,当然 (
ABCDEFGHIJKLMNO
)我试图用
--size
ofpv
命令强制大小整个磁盘的确切字节大小来自
smartctl -i /dev/sdX
我刚刚运行的 shell 片段如下
dev=/dev/disk/by-id/ata-Samsung_SSD_870_QVO_1TB_ABCDEFGHIJKLMNO; \
file=/media/vlastimil/4TB_Seagate_NTFS/Backups/sata-disk--windows10--"$(date +%Y-%b-%d)".img.gz; \
pv --size 1000204886016 < "$dev" | pigz -9 > "$file"
我很确定问题出在我如何使用管道或pv
就此而言,但我无法证明这一点。使用常规文件 (~2GB) 的测试场景可以正常工作并且符合预期。这可能是一个错误gzip
...?
请问我在这里做错了什么?先感谢您。
也许最后要介绍的是pv
and的版本pigz
:
我使用的是打包版本
pv
:1.6.6-1我正在使用的编译版本
pigz
:2.6
我可能刚刚找到了这个奇怪的答案。
正如
gzip
手册页所说:它进一步指出:
就个人而言:可以找出实际大小的命令可能对像 1TB 这样的非常大的文件没有用,因为我真的无法想象它首先会在哪里解压缩此类文件。其次,这需要很长时间。即使空间不是问题,SSD也会存在磨损问题等。
很明显
gzip
实际上是导致问题的原因。它不会消失。实际上,它会导致无法观看解压进度。(当然,不喂pv
大小。)那么有什么可行的解决方案吗?
可悲的是,到目前为止,我什么也没找到。我刚刚尝试了Parallel
bzip2
(直接来自 Ubuntu 焦点宇宙),它还报告了无效的文件大小(这次是 202 GB)。我需要相对快速地完成,所以这些是我的候选人。如果我没有找到任何其他快速的替代方案,我会坚持使用它,gzip
因为它是最快的。以颜色开始/结束的示例:)
可以在此处找到我的压缩机候选者与他们的速度的列表。但如果它消失了,这里有一个截图(点击放大):