为什么 tar 在有足够的磁盘空间时报告没有足够的磁盘空间?

Dev*_*eve 8 tar disk-usage ntfs

在 Ubuntu 14.04 系统上,我尝试提取 tar 存档:

/media/ntfs-drive/target-dir$ tar --extract -v --file ../source-dir/data.tar
Run Code Online (Sandbox Code Playgroud)

提取一些文件后,tar 报告剩余磁盘空间不足,而实际上有足够的空间。以下是df -m相关设备的输出,显示剩余大约 86 GB 的可用空间:

/dev/sdb5         226966  139075     87892   62% /media/ntfs-drive
Run Code Online (Sandbox Code Playgroud)

此外,如图所示,只有 2% 的驱动器 Inode 被使用df -i

/dev/sdb5      91114956  1086160 90028796    2% /media/ntfs-drive
Run Code Online (Sandbox Code Playgroud)

一些可能相关的更多信息:

  • 源目录和目标目录都位于同一个 NTFS 驱动器上
  • 存档data.tar包含大量小文件
  • 我的根分区快满了(1,4 GByte 免费)
  • mount 说相关的驱动器已经安装了选项 rw,nosuid,nodev,allow_other,default_permissions,blksize=4096

tar 的错误消息可能是什么原因,我该如何解决这个问题?

更新

看起来这并不是真正的 tar 问题,因为在 tar 提取失败后系统报告磁盘已满。例如

touch /media/ntfs-disk/test
Run Code Online (Sandbox Code Playgroud)

失败并显示剩余空间不足的错误。但是,正如我上面所描述的,根据df. 是否有任何隐藏的临时文件看不到df

更新 2

我意识到我可以更改和增加磁盘上的文件,但我无法创建新文件。我在这里读到NTFS 支持每卷超过 40 亿个文件。目前我的磁盘包含大约 100 万个文件。但是文件数量还有其他限制吗?

Tho*_*key 8

GNU tar$TMPDIR用于决定在哪里写入扩展头信息。您可以尝试设置TMPDIR为指向大型驱动器上的可写位置。