これが機能する理由:
truncate -s 2043G foo
...失敗しても:
truncate -s 2044G foo
なぜ2043GBですか?
答え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のファイルを保存する方法は内部的な問題でしょう。