gzip 压缩文件的奇怪行为

gzip 压缩文件的奇怪行为

我的 Redhat 系统出现了一个非常奇怪的问题。我们有一个 Gzip 压缩的 TAR 文件,其中包含数百个带有绝对路径的小文本文件。只有 8 MB。我们将此文件复制到已安装的 ext3 HDD,但它挂起,导致系统崩溃并重新启动。我认为操作系统最终会向“cp”进程发送一个 SIGTERM。系统日志中没有太多内容。

我无法进行太多调试,因为这是一个我无法直接访问的远程系统。我并不是在寻找直接答案,因为我没有提供太多信息。然而,我认为有人可能会提到一些我尚未想到的事情,以引发进一步的独立调查。这有点具体,因此为了使其成为更普遍的讨论:

  • Unix 中是否有任何东西会导致“cp”(或底层系统调用)以不同于任何其他文件的方式对待压缩档案?
  • ext3 安装的硬盘怎么样?任何理由都要处理压缩档案不同吗?
  • NFS...我们通过 NFS 源获取文件。 NFS 有什么理由要特别处理它吗?

答案1

所以,如果我正确地阅读你的问题,你正在做:

$ cp /nfs/mnt/foo.tar.gz /local/ext3/drive

并且系统崩溃了。我会尝试隔离:

$ cat /nfs/mnt/foo.tar.gz > /dev/null

检查是否是NFS系统,然后

$ dd if=/dev/zero of=/local/ext3/drive/zeros bs=1K count=8000

检查对本地文件系统的写入。如果这两件事都干净的话,我会感到惊讶,因为:

  1. cp不知道它正在复制的数据是压缩的
  2. ext3 文件系统也不
  3. NFS 不应该关心,但我可以想象一些它可能会发生的模糊场景,但cat上面的测试应该会捕获它。

相关内容