从18.04开始,Ubuntu在升级到新内核时删除了旧内核。据我所知,这个过程是安装过程的一部分。我目前在我的机器上安装了3个不同的内核版本。
在内核更新似乎破坏了我的系统,要求我手动启动一个旧内核之后,我现在想知道Ubuntu使用什么逻辑来决定保留哪些内核和删除哪些内核。具体来说,我想知道工作内核最终是否会从内核中旋转以保持运行。
发布于 2019-01-31 14:15:19
内核安装相关的任务由/etc/内核中的脚本处理,您可以自己直接浏览逻辑。
Ubuntu如何确定要删除哪些内核?它是简单地保留了n个最近的内核,还是逻辑比它更复杂?内核在更新时是否保证在下一次更新之前一直运行?
内核由脚本/etc/kernel/postinst.d/apt-auto-removal选择。该脚本顶部的评论特别有启发性:
# Mark as not-for-autoremoval those kernel packages that are:
# - the currently booted version
# - the kernel version we've been called for
# - the latest kernel version (as determined by debian version number)
# - the second-latest kernel version
#
# In the common case this results in two kernels saved (booted into the
# second-latest kernel, we install the latest kernel in an upgrade), but
# can save up to four. Kernel refers here to a distinct release, which can
# potentially be installed in multiple flavours counting as one kernel.我说得对吗?所有内核清理任务都是在安装时执行的,在重新启动系统之前没有任何延迟?(与后一种情况一样,这些延迟任务理论上可以删除除新安装的内核之外的任何内核。)
不完全是。较老的内核(S)可以立即由/etc/kernel/postinst.d/apt-auto-removal自动删除。在下一次apt运行自动删除之前,旧包实际上不会被删除。在无人值守的系统中,安装升级通常意味着第二天。
Ubuntu是否有任何跟踪机制来检测哪些内核已经干净地引导,并确保它们不是全部被删除?
不知道你所说的“干净地引导”是什么意思。Ubuntu假设当前引导的内核可以工作,并且不会使当前引导的内核符合autoremoval...but (您已经知道了)。
https://askubuntu.com/questions/1114359
复制相似问题