为什么删除文件不会增加可用空间?

最近我收到了一条关于某个分区“可用空间为0字节”的消息。
于是我查看了一下,果然如此:
$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1       65190604  10920296  50959160  18% /
udev              966544         4    966540   1% /dev
tmpfs             389532       744    388788   1% /run
none                5120         0      5120   0% /run/lock
none              973828       152    973676   1% /run/shm
/dev/sda5      397327316 391010276         0 100% /media/8b5e40d0-95b3-4e60-831c-e9b9aeadbfa4

该分区上有0字节可用。

所以我删除了一堆在这台机器上不需要的文件,并清空了回收站。 我预期"已使用"会减少,而"可用"会以同样的数量增加。

但实际发生的是

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1       65190604  10921184  50958272  18% /
udev              966544         4    966540   1% /dev
tmpfs             389532       744    388788   1% /run
none                5120         0      5120   0% /run/lock
none              973828       152    973676   1% /run/shm
/dev/sda5      397327316 390986836         0 100% /media/8b5e40d0-95b3-4e60-831c-e9b9aeadbfa4

"Used"实际上确实变小了,但是"Available"仍然是零。

我重新启动了机器,但是在"Available"列中仍然显示为0。

为什么"Available"总是零,即使我删除了很多文件以使"Used"变小?

为什么删除文件不会增加可用空间?

我正在运行Ubuntu 12.04 LTS。

$ df -hi
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/sda1        4.0M  512K  3.5M   13% /
udev             205K   486  204K    1% /dev
tmpfs            208K   390  208K    1% /run
none             208K     3  208K    1% /run/lock
none             208K     7  208K    1% /run/shm
/dev/sda5         25M  975K   24M    4% /media/8b5e40d0-95b3-4e60-831c-e9b9aeadbfa4

那是什么类型的分区(NTFS、ext4、FAT32)?你的磁盘工具显示了什么?你尝试使用Bleachbit(Linux版的Ccleaner)或其他工具进行清理了吗? - riimzzai
这两个答案都没有解决我的问题。我正在使用v13.10版本,但在删除SD卡上的文件时仍然存在问题。删除更多文件并不是一个可接受的答案,所以它根本不在考虑范围内。运行tune2f命令和删除垃圾文件是目前唯一被考虑的两个答案,但它们都无法解决这个问题。 - user264679
3个回答

逐步教程

  1. 在终端中运行sudo tune2fs -m 0 /dev/sda5,假设/dev/sda5是您的驱动器。
  2. 输入密码(您输入时不会看到它)。
  3. 再次检查您的空间,应该是空闲的。

来自man tune2fs

-m reserved-blocks-percentage
  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  filesystem fragmentation, and to allow system 
  daemons, such as syslogd(8), to continue to function correctly after non-privileged 
  processes are prevented from writing to the filesystem.  Normally, the default
  percentage of reserved blocks is 5%.

1"lsblk" 列出所有驱动器及其大小。 - Nearoo

简单的答案是删除更多的文件。您正在看到“保留”块正在自行回收。通常,文件系统的5%被保留给特权进程,当达到该限制时,文件系统被认为是已满的。您可以使用tune2fs -m命令调整限制。有关更多信息,请参阅tune2fs的man页面。

当你在Ubuntu没有安装的分区中删除文件时,它会创建一个名为.Trashes/.Trashes-1000的文件夹,相当于回收站。这个数字可能因Ubuntu版本而异。一旦你进入该分区,按下Ctrl+h可以查看以.开头的隐藏文件。如果你删除这个文件,实际上你已经删除了所有文件,并且会获得更多的空间。

他说他已经倒掉了垃圾,所以这不可能是原因。 - Mechanical snail
1我遇到了同样的问题。尽管回复3中的人说不可能是因为空了垃圾箱,但你错了。那正是我的问题所在。从50GB增加到500GB的可用空间。 - user262604
其他答案没有解决问题的根源,但这个答案做到了。谢谢。 - Miladiouss