1

在寻找长期存储大量数据(主要来自数值计算)的好选择时,我开始使用xz存档格式 ( tar.xz)。tar.gz与更常见的(都具有合理的压缩选项)相比,那里的默认 LZMA 压缩提供了明显更好的存档大小(对于我的数据类型)。

然而,关于长期使用的安全性的第一次谷歌搜索xz,到达了以下具有标题的网页(来自 的开发者之一)lzip

Xz 格式不适合长期存档

列出几个原因,包括:

  • xz是一种容器格式,而不是前面有必要标头的简单压缩数据
  • xz格式碎片
  • 不合理的可扩展性
  • 糟糕的报头设计和缺乏字段长度保护
  • 4 字节对齐和到处使用填充
  • 无法将尾随数据添加到已创建的存档中
  • xz错误检测的多个问题
  • 没有数据恢复选项

虽然有些担忧似乎有点人为,但我想知道,是否有充分的理由不将xz其用作长期存档的存档格式。

xz如果我选择作为文件格式,我应该注意什么?(我想,即使 30 年后,访问xz程序本身也不应该成为问题)

几点注意事项:

  • 存储的数据是数值计算的结果,其中一些在不同的会议和期刊上发表。虽然存储结果并不一定意味着研究可重复性,但它是一个重要组成部分。
  • 虽然使用更标准tar.gz甚至更普通zip的可能是一个更明显的选择,但能够减少大约 30% 的存档大小对我来说非常有吸引力。
4

2 回答 2

0

也许正确的问题是,“当存在设计合理的格式时,是否有充分的理由使用 xz 这样设计不佳的格式进行长期存档?”

例如,IANA 时区数据库正在使用 gzip 和 lzip 分发他们的 tarball,这些 tarball 被永久存档。 http://www.iana.org/time-zones

于 2018-06-14T22:50:01.633 回答
0

如果您仔细阅读您链接的页面,您会发现如下内容: https ://www.nongnu.org/lzip/xz_inadequate.html#misguided

“xz 格式规范对填充的完整性比对有效载荷的完整性提出了更严格的要求。该规范不保证解压缩数据的完整性将得到验证,但它要求必须尽快中止解压缩因为发现了损坏的填充字节。”

以下任何一种压缩格式是什么?

  • 使用填充。
  • 使用 CRC 保护填充。
  • 如果填充损坏,则中止。
于 2018-06-15T15:13:44.363 回答