我在使用 Ubuntu 14.04,并且有很多想要删除的旧内核。
这个问题可以帮助找到并删除它们,但是存在一个问题:
每次
dpkg
删除一个内核,它都会运行/etc/kernel/postinst.d/zz-update-grub
并update-initramfs
结束所有内核目前剩余。
因此,卸载需要很长时间!
我想一次性删除所有软件包,然后update-grub
在最后运行一次。如何才能禁用不必要的步骤?
(我使用unattended-upgrades
。也许这就是我陷入这种情况的原因。)
答案1
这是我所做的:
编辑该文件
/usr/sbin/grub-mkconfig
(以 root 身份)并在顶部添加以下行:(*)exit 0
然后按照链接问题中的建议运行
apt-get purge
或dpkg -P
删除不需要的包。例如,我运行了:sudo apt-get purge $(dpkg --list | grep -E 'linux-(image|signed-image|headers)' | awk '{ print $2 }' | sort -V | grep -vF "$(uname -r | grep -o '[0-9.-]*' | sed 's/-$//')")
(感觉紧张?
echo
在真正运行之前,先放在前面看看它会清除什么。)然后别忘了再次编辑
grub-mkconfig
并删除该行:exit 0
然后最后运行:
sudo update-grub
使你的引导加载程序保持最新。
此过程在 30 分钟内恢复了 11GB 的空间。
我也关注了这个很好的建议以防止unattended-upgrades
将来再次建立我的内核包。
(*) 我也考虑过禁用
/usr/sbin/dkms
和/usr/sbin/extlinux-update
使用/usr/sbin/update-initramfs
这个exit 0
技巧,但是这些并没有节省太多时间,而且它们留下了文件/lib/modules/[kernel_version]/
,/boot/initrd.img-[kernel_version]
所以不是一个好的选择。