/usr/src 占用了所有 inode

/usr/src 占用了所有 inode

看起来/usr/src(显然是旧内核) 用完了我的所有 inode:

Filesystem             Inodes  IUsed     IFree IUse% Mounted on
/dev/sda4              489600   489600       0  100% /
devtmpfs               219658      539  219119    1% /dev
none                   219844      474  219370    1% /run
none                   219844        3  219841    1% /run/lock
none                   219844        8  219836    1% /run/shm
/dev/sda6             5963776     8361 5955415    1% /home

我尝试了各种方法删除/清除旧内核,但都没有成功。dpkg 不再工作。我尝试了一些手动命令,但 12.04 没有任何效果。由于硬盘空间不足,apt-get 等无法使用,这显然不是问题所在。但是我无法安装或删除任何东西!我读到了很多用户遇到同样问题的文章,但他们的解决方案对我没有用。

请帮忙。非常感谢!

答案1

尝试这个。

打开终端并输入:

~$ cd /usr/src
/usr/src$ ls

你会看到类似这样的内容:

total 16K
drwxr-xr-x 24 root root 4,0K Σεπ  29 22:35 linux-headers-3.2.0-54/
drwxr-xr-x  7 root root 4,0K Σεπ  29 22:35 linux-headers-3.2.0-54-generic/
drwxr-xr-x  3 root root 4,0K Σεπ  29 22:56 nvidia-319-319.32/

输出可能会(并且将会)根据您的设置而有所不同。

仔细查看名为 的文件夹linux-headers-*。这些是所有已安装的 Linux 映像的标头。如果它们太多,它们将占用大量空间和 inode。您只需保留最新的一个你从启动

假设您有一个较旧的内核,例如 3.2.0-53。要删除它,请输入:

sudo apt-get remove --purge linux-image-3.2.0-53-generic linux-headers-3.2.0-53 linux-headers-3.2.0-53-generic

对于他们每一个人来说。

如果以上方法均失败,请尝试删除旧内核手动删除 headers 文件夹:

sudo rm -rf /usr/src/linux-headers-3.2.0-53{,-generic}

答案2

您可以尝试使用 Ubuntu Tweak 来清理旧内核。首先使用这些命令安装它

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

运行该程序然后:

  1. 选择“看门人”标签
  2. 选中“旧内核”复选框
  3. 选择要删除的内核版本(至少保留 2 个 - 以防万一)
  4. 按“清除”

在此处输入图片描述

答案3

我刚刚遇到了同样的问题

在 Ubuntu Linux 16.04.1 上,似乎sudo apt autoremove将清理所有不必要的/usr/src/linux-headers-文件并释放相应的 inode

答案4

另一种方法是搜索占用了 inode 数量的文件夹。请参见此处:更新后损坏的软件包:linux-headers,错误:BrokenCount >0

这是最重要的部分:

在终端中,cd 到 root 来启动:

# cd /

然后搜索占用最多 inode 的文件夹:

# for i in `ls -1A`; do echo "`find $i | sort -u | wc -l` $i"; done | sort -rn | head -20

依此类推,您将能够找到已删除的文件夹或需要卸载的软件包、内核头文件和图像。

相关内容