为什么 ext3 中超过 2043G 的大小截断会失败?

为什么 ext3 中超过 2043G 的大小截断会失败?

为什么这有效:

truncate -s 2043G foo

...虽然这失败了:

truncate -s 2044G foo

为什么是 2043 GB?

答案1

这是您使用的文件系统的限制。这里 ZFS 创建了一个高达 7 艾字节的稀疏文件:

$ truncate -s 7E foo
$ ls -l foo
-rw-r--r--   1 jlliagre 8070450532247928832 Nov  9 16:49 foo

答案2

您可能使用的文件系统的最大文件大小为 2TB(例如,块大小为 4KB 或 8KB 的 ext3)。truncate不会让您指定的目标文件大小大于文件系统支持的最大值; 2044GB 非常接近 2TB。我不知道为什么不是 2048GB 导致了这个问题;这可能是 ext3 存储文件方法的内部内容

相关内容