gzip 压缩文件的奇怪行为

Jmo*_*y38 3 filesystems rhel nfs mount

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

我无法进行太多调试,因为这是一个我无法直接访问的远程系统。我不是在寻找直接的答案,因为我没有提供很多信息。但是,我想有人可能会提到一些我还没有想到的东西,以激发进一步的独立调查。这有点具体,因此为了使其成为更一般的讨论:

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

msw*_*msw 7

因此,如果我正确阅读您的问题,您正在做:

$ cp /nfs/mnt/foo.tar.gz /local/ext3/drive
Run Code Online (Sandbox Code Playgroud)

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

$ cat /nfs/mnt/foo.tar.gz > /dev/null
Run Code Online (Sandbox Code Playgroud)

检查它是否是 NFS 系统,然后

$ dd if=/dev/zero of=/local/ext3/drive/zeros bs=1K count=8000
Run Code Online (Sandbox Code Playgroud)

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

  1. cp 不知道它正在复制的数据是压缩的
  2. ext3 文件系统也没有
  3. NFS 不应该在意,但我可以想象它可能出现的一些晦涩的场景,但是cat上面的测试应该会捕捉到它。