安装内核
100%

内核 · 第 4 课

安装内核

学习如何安装、启动和验证发行版内核,并保留经过测试的备用内核。

发行版会将内核与模块、initramfs 集成、引导加载程序更新、签名和支持策略一起打包。除非你有意开发或测试自定义内核,并具备恢复计算机的能力,否则应使用这种受管理的工作流程。

正在运行和已安装的内核

显示当前运行内核的版本:

$ uname -r
6.8.0-00-generic

该命令不会列出所有已安装的内核,而且安装较新的软件包后,其输出也不会立即改变。系统必须启动新映像,uname -r 才会报告新版本。应使用发行版自己的工具查询已安装软件包和启动项。

uname -r 显示什么?

优先使用发行版跟踪软件包

安装或保留发行版支持的内核跟踪包或元软件包,以便继续接收未来的安全更新。软件包名称取决于发行版版本、架构、硬件类别和内核变体。例如,Ubuntu 通常提供 linux-generic,但云、低延迟、HWE、OEM、实时和特定架构系统会使用其他软件包。

不要直接把 uname -r 的版本字符串用作 apt install 的操作数,并想当然地认为它有效。安装前应查阅当前发行版文档,并使用软件包管理器检查候选版本。

受支持的内核元软件包为什么有用?

变更前检查

执行内核事务前:

  1. 确认受支持的仓库、软件包签名、版本生命周期和预期内核变体。
  2. 确保 /boot 或 EFI 系统分区具有足够空间。
  3. 至少保留一个确认可用的已安装内核,以及可选择的启动项。
  4. 验证控制台、远程管理、救援介质、加密恢复和回滚通道。
  5. 检查树外模块、存储和网络驱动程序、安全启动签名、休眠以及虚拟化兼容性。

软件包事务应通过发行版钩子生成匹配的 initramfs 并更新启动项。必须阅读每条错误;如果 initramfs 或加载程序生成失败,仅仅显示软件包已安装并不足以证明成功。

为什么出现 initramfs 生成错误时不能认定安装成功?

启动并验证

安排一次受控重启,同时考虑相关人员和活动工作负载。确保默认项失败时可以通过控制台选择旧启动项。启动后执行:

$ uname -r
$ journalctl -k -b
$ systemctl --failed

在非 systemd 系统上使用等效工具。验证存储、文件系统、网络、图形、输入、安全模块、外部模块、容器、虚拟机和应用程序健康状况。只看到登录提示符并不等于完成验证。

新安装的普通内核软件包何时会成为正在运行的内核?

移除旧内核

只有新内核通过验证后,才能使用软件包管理器支持的清理流程。绝不能移除当前运行的内核、唯一确认可用的备用内核,或活动跟踪软件包所需的软件包。应检查确切的拟移除内容和最终启动项。

手动删除 /boot 中的文件会使软件包状态与加载程序状态不一致。如果空间已经耗尽,应先制定恢复方案再更改文件,而不是随意删除映像。

初步验证新内核期间,应保留哪个内核?

课程已完成

你已完成 安装内核

现在,你可以把内核更新视为启动链与兼容性变更。

  • 区分正在运行的版本与已安装映像。

  • 通过正确的发行版软件包跟踪受支持更新。

  • 预先检查存储空间、initramfs、签名、模块和恢复通道。

  • 启动后验证硬件与应用程序行为。

  • 在证明新内核可用前,保留一个已知可用的备用内核。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 内核