文档简介:本文档旨在为需要在 Ubuntu 22.04 或麒麟 V10 SP3 操作系统上进行内核管理(安装、切换、卸载)的用户提供一份清晰的命令行操作指南。文档将分为两大部分,分别对应不同系统,确保步骤独立、逻辑清晰。

目录

Ubuntu 22.04 内核操作指南

本部分适用于 Ubuntu 22.04 系统,涵盖内核安装、引导配置及验证操作。

安装指定版本内核

目标:安装 5.15.0-94-generic 版本内核

执行以下命令安装内核镜像、头文件及必要模块包:

apt install linux-image-5.15.0-94-generic \
            linux-headers-5.15.0-94-generic \
            linux-modules-5.15.0-94-generic \
            linux-modules-extra-5.15.0-94-generic
目标:安装 5.15.0-179-generic 版本内核

执行以下命令安装另一指定版本内核:

apt install linux-image-5.15.0-179-generic \
            linux-headers-5.15.0-179-generic \
            linux-modules-5.15.0-179-generic \
            linux-modules-extra-5.15.0-179-generic

修改 GRUB 引导配置

安装新内核后,需修改 GRUB 引导配置以指定默认启动项。

#1. 使用编辑器(如 vi)打开 GRUB 配置文件:
vi /etc/default/grub

#2. 找到 GRUB_DEFAULT 行,根据安装的内核版本进行修改,若要默认启动 5.15.0-94-generic 内核:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-94-generic"

#若要默认启动 5.15.0-179-generic 内核:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-179-generic"

#3. 保存文件并退出编辑器
#4. 执行 sudo update-grub 更新 GRUB 配置。

验证已安装内核

执行以下命令可以查看当前系统中已安装的所有内核镜像包列表:

dpkg --list | grep linux-image

图1:dpkg --list | grep linux-image 命令输出示例,显示已安装的内核包。


麒麟 V10 SP3 内核操作指南

本部分适用于麒麟 V10 SP3 系统,涵盖内核安装与卸载操作。

安装指定版本内核

目标:安装 4.19.90-89.17.v2401.ky10.x86_64 版本内核

执行以下命令安装指定版本的内核及相关开发包:

yum install -y kernel-4.19.90-89.17.v2401.ky10.x86_64 \
               kernel-core-4.19.90-89.17.v2401.ky10.x86_64 \
               kernel-modules-4.19.90-89.17.v2401.ky10.x86_64 \
               kernel-modules-extra-4.19.90-89.17.v2401.ky10.x86_64 \
               kernel-devel-4.19.90-89.17.v2401.ky10.x86_64 \
               kernel-headers-4.19.90-89.17.v2401.ky10.x86_64

若当前再用的是高版本内核,降级至kernel-4.19.90-89.17.v2401.ky10.x86_64版本时,会有下图报错

卸载指定版本内核

操作目标:卸载高版本内核 4.19.90-89.38.v2401.ky10.x86_64,确保系统稳定运行在低版本 4.19.90-89.11.v2401.ky10.x86_64 之上。


第一步:预处理与验证 (Pre-process & Verification)

在进行任何卸载操作前,务必确认当前运行的内核版本,避免误操作导致系统崩溃。

# 1. 确认当前正在使用的内核版本
uname -a

关键确认:若 uname -a 的输出中已显示 4.19.90-89.11.v2401.ky10.x86_64,则可安全进行下一步。这表明目标高版本内核并未被加载,系统处于安全状态。


第二步:执行内核卸载 (Execute Kernel Removal)

此步骤将系统性地移除目标内核及其所有关联的功能性包。请完整复制并执行以下命令块。

# 2. 使用 yum 卸载指定版本内核及其所有关联包
yum remove -y \
  kernel-4.19.90-89.38.v2401.ky10.x86_64 \
  kernel-core-4.19.90-89.38.v2401.ky10.x86_64 \
  kernel-modules-4.19.90-89.38.v2401.ky10.x86_64 \
  kernel-modules-extra-4.19.90-89.38.v2401.ky10.x86_64 \
  kernel-devel-4.19.90-89.38.v2401.ky10.x86_64 \
  kernel-headers-4.19.90-89.38.v2401.ky10.x86_64

核心要点:一次性移除所有同名版本的内核组件,防止因残留包导致后续模块或开发环境冲突。


第三步:故障排查与清理 (Troubleshooting & Cleanup)

卸载后执行 depmod -a 若出现如下报错,通常是第三方动态内核模块(DKMS,如 uds, kvdo)卸载不彻底导致的残留问题。

图1:因内核模块残留导致的 depmod 报错示意图

解决方案:手动进入当前内核的模块目录,查找并清理残留文件。

# 3. 切换到当前内核的模块目录
cd /lib/modules/$(uname -r)

# 4. 查找可能与残留相关的模块文件(例如 uds、kvdo)
find . -name "*uds*" -o -name "*kvdo*"

# 5. 【谨慎操作】如果确认是残留文件,执行删除
find . -name "*uds*" -o -name "*kvdo*" -delete

操作提示:建议先执行第4步命令查看具体文件,确认无误后再解除第5步的注释进行删除。


第四步:环境恢复与验证 (Environment Restoration & Verification)

在目标高版本内核被移除后,需要为当前运行的低版本内核重新安装开发包,并验证系统引导项状态。

4.1 重装开发包

# 6. 为当前运行的低版本内核安装开发与头文件包
yum install -y \
  kernel-devel-4.19.90-89.11.v2401.ky10.x86_64 \
  kernel-headers-4.19.90-89.11.v2401.ky10.x86_64

4.2 全面系统状态验证完成所有操作后,通过以下命令验证操作结果,确保系统干净且引导配置正确。

# 7. 验证:查看系统中现存的所有内核包
rpm -qa | grep kernel | sort

# 8. 验证:查看 GRUB2 引导菜单的详细条目及编号
# 适用于传统 BIOS 引导:
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
# 适用于 UEFI 引导(以 Kylin 为例):
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/kylin/grub.cfg

# 设为默认(例如编号 0)
grub2-set-default 0
# 检查默认是否生效
grub2-editenv list

#重建grub配置
# 传统 BIOS
grub2-mkconfig -o /boot/grub2/grub.cfg
# UEFI 启动
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg

通用操作注意事项

⚠️ 重要提示

  1. 权限要求:上述所有安装、卸载及配置文件修改操作,均需要管理员(root)权限。通常需在命令前添加 sudo(Ubuntu)或直接以 root 用户身份执行(Kylin)。
  2. 系统重启:内核安装或修改 GRUB 配置后,需要重启系统才能使新内核或配置生效。
  3. 内核兼容性:请确保安装的内核版本与您的系统架构(如 x86_64)和发行版版本完全兼容。安装不兼容的内核可能导致系统无法启动。
  4. 备份意识:在对系统进行内核升级或降级等重大操作前,建议做好重要数据的备份,或确保有可用的系统恢复方案。
  5. 命令验证:在执行批量安装或卸载命令时,请仔细核对包名和版本号,避免误操作。
  6. GRUB 配置:修改 /etc/default/grub 后,务必执行 update-grub(Ubuntu)或 grub2-mkconfig(某些 Kylin 版本)来更新引导菜单。

通过遵循以上步骤和注意事项,您可以安全、有效地管理您的系统内核。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐