You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Ubuntu使用Zabbly内核后禁用官方通用内核更新的技术咨询

Ubuntu使用Zabbly内核后禁用官方通用内核更新的技术咨询

你好,针对你在Ubuntu 22.04.4 LTS上使用Zabbly内核时遇到的官方通用内核自动更新问题,我来逐一解答你的疑问,并结合你后续的更新反馈给出解决方案:

问题一:系统是否需要通用内核(模块、头文件)来运行某些功能?

通常来说,如果你全程使用Zabbly内核,且所有硬件驱动、软件都适配这个内核,那完全不需要保留官方通用内核及其组件

唯一需要注意的例外场景是:如果你使用了闭源驱动(比如NVIDIA显卡驱动),部分驱动可能默认会针对官方内核编译,但只要你已经为Zabbly内核安装了对应的驱动版本(比如通过Zabbly的源或者手动编译适配),就不会有问题。如果之前用过官方内核,残留的模块一般也不会影响系统运行,当然你也可以选择后续清理掉。

问题二:如何阻止安装新的Ubuntu通用内核?

Ubuntu的内核更新是通过「元包」(比如linux-genericlinux-image-generic)来管理的,这些元包会自动拉取最新的内核版本。要彻底阻止官方内核更新,需要锁定所有相关的元包,而不只是单个头文件包。结合你提到的更新反馈,具体操作如下:

  • 锁定所有通用内核元包
    执行以下命令,把所有管理官方内核更新的元包都锁定:

    sudo apt-mark hold linux-image-generic linux-headers-generic linux-generic linux-hwe-generic linux-headers-hwe-generic
    

    (注:linux-hwe-generic是针对HWE内核的元包,如果你的系统没启用HWE,这个包可能不存在,执行时忽略报错即可)

  • 检查已锁定的包
    可以用下面的命令确认所有目标包都已被锁定:

    apt-mark showhold
    

    输出列表里应该包含你刚才锁定的所有内核元包。

  • 可选:清理已安装的旧官方内核
    如果你确定不需要残留的官方内核,可以执行以下命令清理(替换版本号为你实际安装的官方内核版本,别误删Zabbly内核):

    sudo apt autoremove --purge 'linux-image-5.15.0-*' 'linux-headers-5.15.0-*'
    

针对你2024/04/24的更新反馈

我仍然被提示安装通用内核包:
apt wants to install
linux-headers-generic/jammy-updates 5.15.0.105.102 amd64 [upgradable from: 5.15.0.102.99]
执行apt-mark hold linux-headers-generic后显示:linux-headers-generic was already set on hold.

这种情况大概率是还有其他相关的元包没被锁定,比如linux-generic——这个元包是linux-headers-genericlinux-image-generic的依赖父包,即使你锁定了子包,父包如果没锁定,依然可能触发更新提示。按照上面的步骤把所有相关元包都锁定后,就不会再收到这类更新提示了。

备注:内容来源于stack exchange,提问作者mr.zog

火山引擎 最新活动