我的根文件系统已满时该怎么办?


33

我的/文件夹读取的内容已满,我无法更新软件或执行任何操作。

不知道我在做什么错。

$ df -h
Results:
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             5.7G  5.4G     0 100% /
udev                  1.9G  4.0K  1.9G   1% /dev
tmpfs                 770M  1.1M  769M   1% /run
none                  5.0M     0  5.0M   0% /run/lock
none                  1.9G  808K  1.9G   1% /run/shm
/dev/sda6             961M   18M  895M   2% /tmp
/dev/sda7             9.9G  2.9G  6.6G  31% /home
/dev/sda3             5.7G  140M  5.3G   3% /usr/local
/dev/sda4             2.9G  1.3G  1.4G  49% /var
/dev/sdb1              94G  1.3G   88G   2% /sites
/home/username/.Private  9.9G  2.9G  6.6G  31% /home/username
/dev/sdb5             282G   88G  180G  33% /mnt/multimedia


$ df -h /
Results:
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       5.7G  5.4G     0 100% /

$ du /mnt /media
Results:
4   /mnt/multimedia
8   /mnt
4   /media

这是Ubuntu 12.04的新安装,但我不确定根系统的安装方式。


嗯 我猜它已经满了。我用zwets的建议输出对问题进行了调整
Jesse

对我来说,它已被过时的内核所填满,我dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge 通过Ubuntu社区帮助中的
RajaRaviVarma 2015年

Answers:


30

分区溢出的一些可能措施是(根据情况):

1.核心转储将磁盘填满。

检查:

find / -xdev -name core -ls -o  -path "/lib*" -prune

2.不必要的包装填满了空间。

以下命令将删除所有不再需要的自动安装的软件包。(因为删除了过去强制安装的依赖项。)

apt-get autoremove --purge 

3.过时的内核包

检查安装了多少内核软件包,并删除过时的内核版本。您可以使用以下方法调查当前情况:

dpkg -l "linux*{tools}*" |grep ^.i

删除不再需要的任何内核版本

4.隐藏的存储

其他已安装的分区可能会隐藏已使用的存储。要研究此问题,请将根文件系统临时挂载在第二个位置:

mkdir /tmp/2ndRoot
mount /dev/sda1 /tmp/2ndRoot

现在查看每个目录,该目录通常被另一个安装隐藏,例如:

  • tmp
  • 变种
  • usr /本地

    并且在您的情况下:

  • 网站

警告

不要忘了使用以下命令控制安装的一致性:

apt-get install -f

笔记

预留存储

/dev/sda1       5.7G  5.4G     0 100% /

输出显示您仍有一些空间,但似乎是为root保留的。好处是,您的系统功能目前仍然可用。

但是您应该尽快解决问题。

Ubuntu 12.04的空间消耗

仅5.7 Gb的Ubuntu安装似乎有点太少了。您应该删除一些不必要的软件包。

我当前的安装具有10-14 Gb的根/usr分区和二进制(aka )分区。


谢谢,我最终只是破坏了根分区,我将继续关注它,如果我必须按技巧操作以查看所有文件夹(也许是本地/ bin吗?)。奇怪的是,磁盘空间分析器工具使我相信它是/ media /上的已安装驱动器,因为它们全部都是红色且已满。
Jesse 2013年

@ H.-Dirk Schmitt通过此命令“ apt-get autoremove --purge”减少了1.3 GB的空间。感谢您的详细信息。
sugunan

28

只是共享一个魔术命令来知道所有磁盘空间都在哪里:

sudo du -hsx /* | sort -rh | head -n 40

您最终得到一个非常简洁的报告,如下所示:

16G     /home
5.3G    /var
2.6G    /usr
840M    /run
277M    /root
171M    /lib
59M     /tmp
25M     /sbin
19M     /boot
16M     /bin
9.6M    /etc
136K    /ngx_pagespeed-latest-stable.zip
24K     /DEBIAN
16K     /lost+found
8.0K    /media
4.0K    /srv
4.0K    /opt
4.0K    /mnt
4.0K    /lib64

然后,您可以从另一个文件夹重新开始:

sudo du -hsx /home/* | sort -rh | head -n 35

删除不必要的东西,你应该会好的。这是我的Linux 备忘单的一部分


不错的帖子和有用的工具……
George Udosen

3
那隐藏的文件夹呢?以点开头的那些。
约翰·雷德

@JohnRed如您的主目录:du -hsx $(ls -A ~/) | sort -rh
ritiek

4

另一个解决方案是使用ncdu,例如:

sudo ncdu -x /

/是您要检查的分区/驱动器。对于我的示例,结果是

    4,0GiB [##########] /usr
  579,3MiB [#         ] /root
  487,4MiB [#         ] /opt
   41,7MiB [          ] /lib
   22,7MiB [          ] /sbin
   21,2MiB [          ] /boot
   18,6MiB [          ] /etc
    9,1MiB [          ] /bin
    3,6MiB [          ]  core
  260,0KiB [          ] /build
   88,0KiB [          ] /tmp
e  16,0KiB [          ] /lost+found
    8,0KiB [          ] /media
    4,0KiB [          ] /lib64
e   4,0KiB [          ] /srv
e   4,0KiB [          ] /mnt
>   0,0  B [          ] /var
>   0,0  B [          ] /sys
>   0,0  B [          ] /run
>   0,0  B [          ] /proc
>   0,0  B [          ] /ovhbackup
>   0,0  B [          ] /home
>   0,0  B [          ] /dev

然后,您可以使用键盘箭头浏览文件夹,只需D按键即可删除文件夹/文件。

ncdu可以从apt基于Debian的系统上的打包工具安装:

sudo apt install ncdu

0

使用“ du”命令检查“ / home /您的名字/.local/share/Trash”文件夹(请参见上文):

我遇到了同样的问题,并使用上面发布的技巧mickael来简洁地打印出磁盘使用情况。我发现,如果您使用窗口管理器删除内容,并且在执行该操作时没有足够的权限,那么您认为已删除的文件(都是通过命令行使用“ rm”和“ apt autoremove --purge”,并清空垃圾桶)可能已经在根分区的“ .local / share / ____”中结束了。

窗口管理器左窗格中的“文件系统”说,我为Ubuntu / Mint安装文件预留的50gb几乎已满。原来,当我将它们错误地复制到该分区时,将它们移到原本打算复制到的分区时,并没有删除它们。现在它是36GB的免费版本,这使它变得更有意义(我的设备很大,主要是因为我还在该分区上保留了高清图形,以便快速预览大量图像)。

在删除/管理文件之前,请务必确保您对权限有很好的了解,否则可能会导致认为删除的文件变得拥挤而使SSD拥挤。

附带说明一下,我的16g内存在引导时的加载率为92%,而我的根分区中存放的是所述已删除的文件,并且由于同样的问题,它也稳定地停留在该位置。ram用于在磁盘上缓存项目,以大大提高linux的性能。操作系统将假定您正确使用了安装分区(在这种情况下我不是这种情况),因此它将缓存可以加速系统响应速度的内容。现在,这只是要注意的一点,因为磁盘缓存不会在内存中保留该空间。它会将使用过的ram空间提供给需要它们的其他程序(这正是磁盘缓存的工作方式),但这是不必要的资源使用,每次引导时都会将14.5gb的已删除文件加载到ram中。

希望能帮助到你!非常感谢您以上的回答,非常有帮助!


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.