<基础版本>-<补丁号>.tl<发行版标识>.<架构>,例如 5.4.241-24.0017.14.tl3.x86_64字段 | 含义 | 示例 |
基础版本 | 大版本号 | 5.4.241 |
补丁号 | 小版本迭代 | 24.0017.14 |
发行版标识 | tl3/tl4 | tl3(TencentOS Server 3)/tl4(TencentOS Server 4) |
架构 | CPU 架构标识 | x86_64、aarch64 |
sudo 提权。cat /etc/rpm/macros.dist 确认发行版标识(tl3 或 tl4),确保下载的内核包后缀与系统匹配,tl3 与 tl4 包不互通。df -h /boot 检查)。dnf repolist 确认源可用性。scp kernel-*.rpm root@<目标 IP>:/root/),或通过云服务器控制台 VNC 登录后传输文件。# 确认当前用户权限whoami # 预期输出:root# 确认系统发行版标识(tl3 或 tl4)cat /etc/rpm/macros.dist 2>/dev/null || rpm --eval '%{dist}'# 预期输出:.tl3 或 .tl4# 确认 /boot 分区空间(至少 300MB)df -h /boot# 预期输出:Avail 列不低于 300M# 备份 GRUB 配置(修改默认启动内核前执行)cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak.$(date +%Y%m%d)
uname -r 查看)。至少保留一个备用内核,以便系统无法启动时可以回退。--force --nodeps 强制安装,可能导致依赖问题,请确保有备用启动方案(如 GRUB 菜单可回退到旧内核)。系统版本 | 内核系列 | 基础内核版本 |
TencentOS Server 3 | Linux 5.4 LTS | 5.4.x |
TencentOS Server 4 | Linux 6.6 LTS | 6.6.x |
包名 | 说明 | 适用版本 |
kernel-<版本> | 主包 | 所有版本 |
kernel-<版本>-core | 核心模块包 | 所有版本 |
kernel-<版本>-modules | 驱动模块包 | 所有版本 |
操作 | 命令 | 说明 |
安装(保留旧内核) | rpm -ivh | 推荐方式,可在 GRUB 菜单中回退到旧内核 |
升级(替换旧内核) | rpm -Uvh | 会删除旧内核,不推荐用于生产 |
强制安装(降级) | rpm -ivh --force --nodeps | 用于回退到更低版本,可能导致依赖问题 |
# 查看运行中的内核版本uname -r# 预期输出示例:5.4.241-24.0017.14.tl3.x86_64# 查看所有已安装内核rpm -qa | grep kernel | sort# 预期输出:列出所有已安装的 kernel RPM 包# 查看发行版信息(判断 .tl3 还是 .tl4)cat /etc/rpm/macros.dist 2>/dev/null || rpm --eval '%{dist}'# 预期输出:%dist .tl3 或 %dist .tl4(tl4 可用 rpm --eval 替代)
# 查看可用内核版本dnf list kernel* --showduplicates | head -20# 预期输出:列出所有可用的内核版本包# 升级到最新内核dnf update kernel -y# 预期输出:显示安装/升级过程,最终提示 Complete!# 或安装特定版本(将 <版本号> 替换为实际版本)dnf install kernel-<版本号> -y# 升级完成后重启(重启将导致业务中断,请确认已安排维护窗口后再执行)reboot
# 查看发行版标识(tl3 或 tl4)cat /etc/rpm/macros.dist 2>/dev/null | grep dist || rpm --eval '%{dist}'# 预期输出:%dist .tl3 或 %dist .tl4(tl4 可用 rpm --eval 替代)
.tl3 或 .tl4 后缀匹配的 RPM 包。kernel-*(主包)、kernel-*-core(核心模块包)、kernel-*-modules(驱动模块包),安装时必须同时安装。使用 dnf 安装时会自动处理依赖,无需手动指定三个包。-ivh 保留旧内核、-Uvh 替换旧内核:# 新增安装(保留旧内核,推荐——可在 GRUB 菜单回退)rpm -ivh kernel-5.4.241-24.0017.14.tl3.x86_64.rpm \\kernel-core-5.4.241-24.0017.14.tl3.x86_64.rpm \\kernel-modules-5.4.241-24.0017.14.tl3.x86_64.rpm# 预期输出:三个包依次安装完成,最终提示 ##### [100%]
# 重启系统(重启将导致业务中断,请确认已安排维护窗口后再执行)reboot# 重启后验证内核版本uname -r# 预期输出:显示新安装的内核版本号,例如 5.4.241-24.0017.14.tl3.x86_64
grubby 工具设置 GRUB 默认启动的内核版本。# 查看当前 GRUB 默认启动的内核grubby --default-kernel# 预期输出:/boot/vmlinuz-5.4.241-24.0017.14.tl3.x86_64
# 列出所有已安装的内核镜像ls /boot/vmlinuz-*# 预期输出:# /boot/vmlinuz-5.4.119-19.0009.13.tl3.x86_64# /boot/vmlinuz-5.4.241-24.0017.14.tl3.x86_64# 或通过 rpm 查看rpm -qa | grep kernel | sort
# 设置指定内核为默认启动(将 <kernel-path> 替换为实际内核路径)grubby --set-default /boot/vmlinuz-<kernel-version># 示例:grubby --set-default /boot/vmlinuz-5.4.241-24.0017.14.tl3.x86_64# 预期输出:The default is set to a nonzero entry. Success!
# 重启系统(重启将导致业务中断,请确认已安排维护窗口后再执行)reboot# 重启后确认当前运行的内核为设定的默认内核uname -r# 预期输出:5.4.241-24.0017.14.tl3.x86_64(与设置的默认内核一致)# 再次确认默认启动内核配置grubby --default-kernel# 预期输出:/boot/vmlinuz-5.4.241-24.0017.14.tl3.x86_64
# 尝试常规安装低版本内核会报错:# "package xxx (which is newer than xxx) is already installed"# 需使用 --force --nodeps 强制安装rpm -ivh --force --nodeps kernel-5.4.119-19.0009.13.tl3.x86_64.rpm# 预期输出:显示安装进度,最终提示 ##### [100%]
# 查看所有已安装内核rpm -qa | grep kernel | sort# 预期输出:列出所有已安装的 kernel RPM 包# 删除指定旧内核(确保不删除当前运行的内核)rpm -e kernel-5.4.119-19.0009.13.tl3.x86_64# 预期输出:提示卸载完成# 查看 /boot 使用情况df -h /boot# 预期输出:可用空间有所增加
# 1. 确认新内核正在运行uname -r# 预期输出:5.4.241-24.0017.14.tl3.x86_64(与目标安装版本一致)# 2. 确认系统启动正常systemctl --failed# 预期输出:0 loaded units listed(无失败服务)# 3. 确认内核引导顺序grubby --default-kernel# 预期输出:/boot/vmlinuz-5.4.241-24.0017.14.tl3.x86_64
操作步骤 | 预期输出 | 验证方法 |
在线升级内核 | dnf update 提示 Complete! | rpm -q kernel-$(uname -r) |
离线安装内核 | rpm -ivh 提示 100% | ls /boot/vmlinuz-* 列出新内核 |
设置默认启动内核 | grubby 提示 Success! | grubby --default-kernel 显示目标内核 |
降级安装 | rpm -ivh --force 提示 100% | uname -r 显示降级后版本 |
删除旧内核 | rpm -e 卸载完成 | rpm -qa | grep kernel 不再列出 |
# 1. 确认新内核已安装rpm -qa | grep kernel | sort# 2. 查看当前默认启动内核grubby --default-kernel# 3. 设置新内核为默认启动grubby --set-default /boot/vmlinuz-<kernel-version># 示例:grubby --set-default /boot/vmlinuz-5.4.241-24.0017.14.tl3.x86_64# 4. 重启并验证(重启将导致业务中断,请在维护窗口内执行)rebootuname -r
rpm -ivh 不允许安装更低版本。需要您详细评估风险后,使用强制命令安装。# 如需安装更低版本(降级),使用 --force --nodeps 强制安装rpm -ivh --force --nodeps kernel-<版本号>.tl3.x86_64.rpm# 如需升级替换为更高版本,使用 -U 参数rpm -Uvh kernel-<版本号>.tl3.x86_64.rpm
--force --nodeps 强制安装可能导致依赖冲突或系统不稳定,请确保有备用启动方案(如 GRUB 菜单可回退)kernel-core 和 kernel-modules,会导致异常报错,例如:网卡无法初始化(ip addr 无网络接口)、存储驱动加载失败(无法识别磁盘设备)、lsmod 显示模块列表不完整、dmesg 中出现驱动加载错误信息。# 安装全部三个包(将 <版本号> 替换为实际版本)rpm -ivh kernel-<版本号>.tl3.x86_64.rpm \\kernel-core-<版本号>.tl3.x86_64.rpm \\kernel-modules-<版本号>.tl3.x86_64.rpm# 或通过 dnf 自动处理依赖dnf install kernel-<版本号> -y
/boot 分区可用空间不足 300MB,无法容纳新内核镜像。# 1. 查看 /boot 可用空间df -h /boot# 2. 清理旧内核(保留最近 2 个)package-cleanup --oldkernels --count=2# 3. 或手动删除不使用的旧内核(先确认当前运行内核)uname -r # 记录当前内核,切勿删除rpm -e kernel-<旧版本号>.tl3.x86_64# 4. 若清理后空间仍不足,可扩容 /boot 所在分区(谨慎操作,操作前务必备份)# 云服务器 /boot 通常位于根分区,可先在控制台扩容系统盘,再扩展分区与文件系统:growpart /dev/vda 1 # 扩展分区(假设根分区为 /dev/vda1)xfs_growfs / # 扩展文件系统(xfs);ext4 使用 resize2fs /dev/vda1# 5. 重新安装目标内核rpm -ivh kernel-<版本号>.tl3.x86_64.rpm
Esc 或 Shift 进入 GRUB 引导菜单# 查看上次(失败的)启动日志journalctl -b -1 | tail -50# 预期输出:显示 panic 或驱动加载失败信息# 确认系统启动状态systemctl --failed
<旧版本号> 替换为实际内核版本(rpm -qa | grep kernel 可查):grubby --set-default /boot/vmlinuz-<旧版本号>
文档反馈