![/usr/src 占用了所有 inode](https://linux22.com/image/843765/%2Fusr%2Fsrc%20%E5%8D%A0%E7%94%A8%E4%BA%86%E6%89%80%E6%9C%89%20inode.png)
看起来/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
运行该程序然后:
- 选择“看门人”标签
- 选中“旧内核”复选框
- 选择要删除的内核版本(至少保留 2 个 - 以防万一)
- 按“清除”
答案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
依此类推,您将能够找到已删除的文件夹或需要卸载的软件包、内核头文件和图像。