根文件系统磁盘空间不足错误

系统给我以下错误信息:
存储卷“文件系统根目录”只剩下 713.9 MB 的磁盘空间。您可以通过删除未使用的程序或文件,或将文件移动到另一个磁盘或分区来释放磁盘空间。
我的问题是,我应该移动哪些文件以及从哪里移动?如何避免再次出现错误?
我之前清除了一个旧内核 [3.13.0.45],现在有两个内核 [3.17 和 3.8]。我必须清除 3.13 内核,因为巧合的是,上述错误中的剩余空间已经变成了 0 字节,并且关机过程也无法正常进行。 df -Th 的结果如下:
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda6      ext4       19G   17G  601M  97% /
none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev           devtmpfs  1.9G  4.0K  1.9G   1% /dev
tmpfs          tmpfs     386M  1.2M  385M   1% /run 
none           tmpfs     5.0M     0  5.0M   0% /run/lock
none           tmpfs     1.9G  188K  1.9G   1% /run/shm
none           tmpfs     100M   76K  100M   1% /run/user
/dev/sda5      ext4      453M  193M  233M  46% /boot
/dev/sda7      ext4       92G  788M   87G   1% /home

这是磁盘分析:
--- /------------------------
12.7GiB /usr                     
2.7GiB  /lib
1.2GiB  /var
877.9MiB  /home
190.4MiB  /boot
12.4MiB  /etc
11.9MiB  /sbin
9.6MiB  /bin
1.3MiB  /run
324.0KiB  /root
20.0KiB  /tmp
16.0KiB  /lost+found
12.0KiB  /media
4.0KiB  /dev
4.0KiB  /lib64
4.0KiB  /srv
4.0KiB  /opt
4.0KiB  /mnt
4.0KiB  /cdrom
0.0  B  /proc
0.0  B  /sys
0.0  B  initrd.img.old
0.0  B  vmlinuz.old

usr/ 目录下:
10.1GiB /src
1.4GiB  /lib
1.0GiB  /share
100.6MiB  /bin
14.4MiB  /sbin
9.6MiB  /include
520.0KiB  /games
112.0KiB  /local

在 src/ 目录下:
9.9GiB  /linux-3.17.6
94.1MiB  /linux-headers-3.13.0-45
90.4MiB  /linux-headers-3.8.0-29
13.8MiB  /linux-headers-3.13.0-45-generic
12.1MiB  /linux-headers-3.8.0-29-generic

请帮忙。

1你在 / 上有 601MB 的可用空间,在 /boot 上有 233MB 的可用空间,其中存放着内核映像。如果你有多个内核版本,选择一个旧版本进行启动是完全正常的。请问你有什么问题? - jmiserez
2系统给出了一个错误提示:“文件系统根目录”只剩下713.9 MB的磁盘空间。您可以通过删除未使用的程序或文件,或将文件移动到另一个磁盘或分区来释放磁盘空间。” 我的问题是,我应该从哪里移动哪些文件?如何进一步释放根文件系统的空间? - complextea
我的问题是,我应该移动哪些文件以及从哪里移动?如何进一步释放根文件系统的空间?你应该知道在操作系统中不属于其中的内容放在哪里。17G 是很大的...至少在过去的10年里,我在我的 / 目录下从未有过这么多的空间。你在这台机器上运行 MySQL 吗? - Rinzwind
我已经更新了我的回答。现在它基本上包括了你可能做的一切来释放空间。而且我同意@Rinzwind的观点,可能有一些东西在没有你知情的情况下占用了磁盘空间。 - jmiserez
@Rinzwind 不,我的机器上没有安装MySQL。但是,我已经更新了我的问题,并详细分析了磁盘空间。请看一下。当前内核本身使用了约10G的空间。这是我最近下载和重新编译的内核。 - complextea
我不喜欢./src。du -ks src显示了795632 src。那个3.17是什么意思?我最高只有3.16,而且我使用的是14.10版本。 - Rinzwind
我下载了最新的内核源代码[3.17],并进行了系统重新编译的过程。最初是3.8和12.04版本,后来当内核自动升级到3.13时,我升级到了14.04版本。但由于某些原因,我需要3.17版本,所以我后来进行了3.17版本的安装,并清除了3.13版本。 - complextea
1那就是你的问题所在。你怎么可能没有注意到呢?删除/usr/src并使用存储库提供的预编译内核。编译内核不是普通用户需要做的事情。如果你真的坚持要编译自己的内核(并且有必要的专业知识来修复问题),你应该在你的主目录下进行。在这里查看更多信息:http://askubuntu.com/questions/115955/compile-linux-source-in-home - jmiserez
好的,谢谢,我会尝试做这个。我不知道我们可以在主目录中编译,然后只需要以root身份安装,对吗? - complextea
是的,但实际上你并不需要自己编译内核。你可以在Ubuntu的这里获取(不受支持的).deb文件,更多信息和指导请参考这里这里。还可以阅读这个。请注意,如果你真的想要一个大于等于3.17的版本,3.17.0发布已经过时了,你应该使用一个更新的版本(至少3.17.8)。 - jmiserez
1个回答

首先,你应该使用随Ubuntu一起提供的“磁盘使用分析器”工具来检查是什么占用了那么多空间。
从终端运行:
gksudo baobab /

那应该让你对占用了这么多空间的东西有个概念。然后:
  • 检查/root使用的空间。通常应少于1MB。如果有任何较大的文件,请将其移动到/home
  • 检查/tmp使用的空间。如果超过几MB,请重新启动系统。/tmp会在每次重启时清除,但随着时间的推移可能会填满。
  • 检查其他文件夹,如/opt,并检查是否将任何大文件放在那里,或者是否存在不属于软件包的大文件。某些安装程序会将一些东西安装到/opt中,并永远不会删除它们。在执行此操作时要小心。
  • 运行sudo apt-get clean。这将删除软件包缓存中的许多内容。在我的系统上,运行apt-get clean可以清理掉约1.5GB的旧下载的不需要的软件包。
  • 减少/dev/sdb6上保留空间的大小。通常为5%,为了在系统填满并需要以紧急用户登录时提供给root用户的。默认值为5%,在您的系统上表示1GB,您可以使用tune2fs将其安全地减少到1%(200MB):
  • $ sudo tune2fs -m 1 /dev/sda6
    tune2fs 1.42.9 (4-Feb-2014)
    设置保留块百分比为1%
    
  • 使用sudo apt-get remove卸载一些软件包。如果您使用LaTeX,小提示:一个主要的空间浪费者通常是texlive-full元软件包。它会安装数GB大小的文档和其他内容,尽管通常您不需要同时使用所有内容。安装texlive而不是texlive-full将仅安装最小配置,并在需要时下载其余部分。

如果你的空间还是不够用,作为最后的办法,你可以尝试以下方法:
- 使用Live CD和GParted来调整分区大小,将`/dev/sda6`分区扩大并缩小`/dev/sda7`分区。这个过程可能需要一些时间,并且很容易导致数据丢失,所以在操作之前务必要做好完整的备份。关于调整分区大小的更多细节,请参考this question
不过,我建议你不要这样做,因为对于大多数情况来说,20GB的空间应该足够了。而且,在调整分区大小时存在真实的数据丢失风险。

关于最后一个问题:我不会这样做。17Gb的使用量对于根目录来说是很多的。有些地方出了问题:用户可能把他的个人文件放在了/而不是/home/目录下。 - Rinzwind
@Rinzwind 你是对的,我已经添加了一个小注释来说明这一点。 - jmiserez
如何检查/root目录的内容?我无法通过图形界面查看,也无法在以root身份通过终端执行ls命令后看到任何内容。 - complextea
另外,我的 gksu baobab/ 没有显示任何内容。 - complextea
1@HobbitEesmereldatGoldworthy 你在baobab/之间缺少一个空格!如果你需要一个基于终端的工具(非图形界面),请安装ncdu并运行sudo ncdu / - jmiserez
是的 @jmiserez,我已经用分析更新了我的问题。请查看一下。而且我现在的系统上没有LaTeX。 - complextea
baobab工具刚刚显示我的/root目录占用了4 GB的空间,主要是一些旧的Matlab安装程序,显然以某种原因被处理为root。在我删除它之后,/root目录只剩下190 MB。 - Danijel