我有一个空的ext4格式的硬盘,并且想创建一个占用所有可用磁盘空间的文件。而且我想在创建该文件之前先知道它的大小。
我的方法是运行'df -k'以获取可用空间,然后使用fallocate分配文件。但是,我无法创建大小等于可用空间“ df -k”报告的文件。 Fallocate失败并创建了一个小于预期的文件。
这是我的输出(翻译):
#df -k /media/hlx24
FileSystem 1K-Blocks Used Available Avail% Mounted on
/dev/sdx 7813225344 94232 7813114728 1% /media/hlx24
#fallocate -l 8000629481472 /media/hlx24/test.dat
fallocate: fallocate failed: Insufficient disk space
# df -k /media/hlx24
FileSystem 1K-Blocks Used Available Avail% Mounted on
/dev/sdx 7813225344 7813208960 0 100% /media/hlx24
# ls -l /media/hlx24
Total 7813114744
drwx------ 2 root root 16384 Mär 15 17:33 lost+found
-rw-r--r-- 1 root root 8000628617216 Mär 23 16:41 test.dat
df似乎没有考虑某些元数据/开销。知道如何解决这个问题吗?
文件系统是使用以下方法创建的: mkfs.ext4 -m 0 -i 67108864 -O ^ has_journal / dev / sdx