删除多个内核包需要很长时间

删除多个内核包需要很长时间

我在使用 Ubuntu 14.04,并且有很多想要删除的旧内核。

这个问题可以帮助找到并删除它们,但是存在一个问题:

每次dpkg删除一个内核,它都会运行/etc/kernel/postinst.d/zz-update-grubupdate-initramfs结束所有内核目前剩余。

因此,卸载需要很长时间!

我想一次性删除所有软件包,然后update-grub在最后运行一次。如何才能禁用不必要的步骤?

(我使用unattended-upgrades。也许这就是我陷入这种情况的原因。)

答案1

这是我所做的:

  1. 编辑该文件/usr/sbin/grub-mkconfig(以 root 身份)并在顶部添加以下行:(*)

    exit 0
    
  2. 然后按照链接问题中的建议运行apt-get purgedpkg -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在真正运行之前,先放在前面看看它会清除什么。)

  3. 然后别忘了再次编辑grub-mkconfig并删除该行:

    exit 0
    
  4. 然后最后运行:

    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]所以不是一个好的选择。

相关内容