昨晚我们的系统用完了inode。幸运的是,我设法使用以下步骤删除了一些旧内核
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v \
uname -r | xargs sudo apt-get purge $1
sudo apt-get autoremove
sudo update-grub
我设法找回了一些 inode,但仍有超过 85 个 inode 被占用。
使用ncdu我发现/usr/src/linux-headers-3.16.0.[69|71|73|..]目录仍然包含一些旧的内核头文件。
鉴于我当前的 Linux 版本是3.19.0-80-generic.
所以我在这里有两个问题:
删除它们是否安全?
如果是如何删除它们?
这在Ubuntu wiki中有详细介绍;我在这里总结一下。
关于您问题的第一部分,Ubuntu 内核设置了适当的配置以确保apt autoremove不会删除正在运行的内核(以及最新的内核和一个备份内核);所以你可以通过将它们标记为自动安装来删除所有过时的内核(以防它们丢失了该标记):
sudo apt-mark auto '^linux-image-[34].*'
Run Code Online (Sandbox Code Playgroud)
(这将对所有未安装的内核包产生警告,但可以忽略它们),然后删除过时的包:
sudo apt autoremove
Run Code Online (Sandbox Code Playgroud)
内核头文件也可以安全删除,并受与内核映像相同的配置保护,因此适用相同的配方:
sudo apt-mark auto '^linux-headers-[34].*'
sudo apt autoremove
Run Code Online (Sandbox Code Playgroud)