我知道默认情况下,新创建的文件系统将使用为 root 分配的空间的 5% 创建。我也知道您可以通过以下方式更改定义的空间:
tune2fs -m 1 /dev/sdXY
Run Code Online (Sandbox Code Playgroud)
不过,我很好奇的是,这个保留空间的实际用途是什么。它是否有任何实际用途,在某些情况下值得超过 5% 的空间?
我偶然发现这个问题的原因是我们最近构建了一个 1TB 的文件存储,并且无法弄清楚为什么 df -h 让我们丢失了 5% 的容量。
我今天刚从 Ubuntu 11.04 收到一条消息,说我只剩下 100 MB,所以我清理了一些文件,我得到了 200 MB。然后,几个小时后,突然我只有 26 MB?!我试过df,du通过mount --bind,/forcefsck重新启动 - 罪魁祸首是什么 - 最后我搜索了大文件,意识到 /var/log/syslog 是 100MB+ 和 /var/log/kern.log 是 200MB+ - 将它们清空sudo bash -c 'echo > ...'并重新启动,然后现在我有一些空闲的 MB。
但是现在,我意识到我还有另一个问题df:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 9,7G 8,8G 385M 96% /
none 963M 696K 962M 1% /dev
none 969M 12K 969M 1% /dev/shm
none 969M 252K 969M 1% /var/run
none 969M 0 …Run Code Online (Sandbox Code Playgroud) 这是一个 RHEL 服务器,我在它上面运行一个 MySQL 服务器,数据库和日志文件(但是,日志被禁用)位于/srv有足够空间可用的目录中。
最近我有一个崩溃的表,所以我尝试修复它,但第二天我发现 MySQL 无法响应许多查询,并显示一个错误,表明没有磁盘空间:
ERROR 1030 (HY000): Got error 28 from storage engine
Run Code Online (Sandbox Code Playgroud)
所以我运行以下命令来查看什么占用了空间
[root@tms /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/server-slash
9.9G 9.5G 0 100% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/sda1 485M 58M 402M 13% /boot
/dev/mapper/server-var
739G 252G 450G 36% /srv
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是它是/目录。但更令人惊讶的是,在该目录/并不表示已用空间超过2 GB,而df节目总面积9.9 GB的/。
[root@tms /]# du -sh /*
7.5M /bin
48M /boot
200K …Run Code Online (Sandbox Code Playgroud) 在我的Amazing 2GB EeePC Surf 上,我没有更多的空间了!
这很正常,而且时不时发生。只需删除一些不需要的大文件,一切都会好起来的,对吧?
所以我去/tmp 中找到一个2MB 的文件,然后rm -rf它。再次检查可用空间,然后——还是什么都没有?!
在注册一些可用空间之前,我不得不删除大约30MB的文件。
现在,我的问题是,这种奇怪的行为是怎么回事?