当我在我的系统上运行'df -ha'为一个空分区时,报告使用了33 MB:
/dev/sdb2 16G 33M 16G 1% /mypartition
但分区上没有文件:
ls -lha /mypartition/ total 0 drwx------ 2 root root 6 Feb 16 21:09 . drwxr-xr-x 5 root root 57 Feb 17 06:26 ..
什么可能导致“DF”报告使用的一些空间?
这是非常正常的。 当我们创build一个文件系统(比如说ext4)时,会在创build任何文件之前创build大量的开销。 这是保留空间 ,其目的是为了降低碎片机会并为fsck留有一定的空间,主要是为了root用户,以确保使用该分区上的文件的服务不能被填充所有空间的本地用户排除在外。 不同的文件系统保留不同的空间
形成man tune2fs
-m保留块百分比
Set the percentage of the filesystem which may only be allocated by privileged processes. Reserving some number of filesystem blocks for use by privileged processes is done to avoid filesys‐ tem fragmentation, and to allow system daemons, such as sys‐ logd(8), to continue to function correctly after non-privileged processes are prevented from writing to the filesystem. Nor‐ mally, the default percentage of reserved blocks is 5%.
所以当你创build一个文件系统时,默认是5%的保留块。 在创build文件系统mkfs.ext4 -m <X> /dev/sdaX可以根据需要调整这个保留块。 您也可以在使用tune2fs -m <X> </dev/sdaX>命令创build文件系统后调整此值。
就像如果你想删除保留的块:
tune2fs -m 0 /dev/sdaX
我强烈build议不要使用-m 0.保留空间是有原因的。 即使没有保留块(-m 0),也总是有一部分空间用于文件系统内部pipe理。
而且,开销来自inode表,它完全取决于你在文件系统中分配多less个inode。 inode的默认大小是256个字节。
而且在CLI上无法确认。 你可以做的是在不同的Linux发行版上创build不同大小和保留空间的不同文件系统,并比较结果。
确认保留空间仅用于root用户