跳转至

11. 内核与模块管理

本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 进行内核和模块管理,配合 SecureFX 传输配置文件。内容涵盖内核版本管理(查看、更新、回滚)、内核模块管理(加载、卸载、自动加载)和内核参数调整(sysctl 和 GRUB 配置),全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。


11.1 前提条件

  • RHEL 9 已安装(参考第 1 章),主机名设置为 LinuxDC
  • 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
  • 使用 SecureFX 传输文件(SFTP 协议)。
  • 具有 root 或 sudo 权限。
  • 系统已订阅并启用 RHEL 仓库(参考第 2 章)。

💡 提示:内核管理需谨慎操作,建议在测试环境中实践,并创建快照备份。在 RHEL 10 中,内核更新支持更多实时补丁(kpatch)和自动化回滚选项,提升系统稳定性。


11.2 内核管理

11.2.1 查看内核版本

  • 检查当前内核版本:

    uname -r  # 显示当前运行的内核版本
    

  • 列出所有安装内核:

    rpm -qa | grep kernel  # 查看已安装内核包
    dnf list installed kernel*  # 列出内核相关包
    

检查点:输出示例:5.14.0-162.6.1.el9.x86_64

11.2.2 更新内核

  • 更新到最新内核:
    dnf update kernel -y  # 更新内核包
    reboot  # 重启系统应用新内核
    

🧠 知识点:RHEL 9 支持多个内核共存,便于回滚。更新后验证:uname -r 显示新版本。

11.2.3 回滚内核

  • 临时回滚:

    grubby --set-default /boot/vmlinuz-<old_version>  # 设置默认内核
    reboot  # 重启
    

  • 或使用 GRUB 菜单回滚(开机时选择旧内核)。

💡 提示:在 RHEL 10 中,回滚工具如 grubby 支持更多自动化脚本集成,便于 CI/CD 环境。


11.3 内核模块管理

11.3.1 查看模块

  • 检查已加载模块:
    lsmod  # 列出加载模块
    modinfo vfat  # 查看 vfat 模块详情
    

11.3.2 加载与卸载模块

  • 加载模块:

    modprobe vfat  # 加载 vfat 模块
    

  • 卸载模块:

    modprobe -r vfat  # 卸载 vfat 模块
    

⚠️ 注意:卸载前确认无依赖进程(lsmod | grep vfat)。

11.3.3 配置自动加载

  • 永久自动加载:

    vim /etc/modules-load.d/vfat.conf  # 创建配置文件
    # 添加:
    vfat
    

  • 或使用 modprobe.d:

    echo "vfat" > /etc/modules-load.d/vfat.conf
    

检查点:重启后 lsmod | grep vfat 显示已加载。


11.4 内核参数调整

11.4.1 临时调整 sysctl 参数

  • 临时设置:
    sysctl -w kernel.sysrq=1  # 启用 sysrq
    

11.4.2 永久调整 sysctl 参数

  • 永久配置:
    vim /etc/sysctl.d/99-custom.conf  # 创建配置文件
    # 添加:
    kernel.sysrq=1
    sysctl --system  # 应用所有 sysctl 配置
    

🧠 知识点:sysctl 管理运行时参数。查看:sysctl kernel.sysrq

11.4.3 GRUB 配置调整

  • 编辑 GRUB:
    vim /etc/default/grub
    # 修改:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet sysrq=1"
    grub2-mkconfig -o /boot/grub2/grub.cfg  # 更新 GRUB 配置
    reboot  # 应用
    

💡 提示:GRUB 参数影响引导。在 RHEL 10 中,GRUB 支持更多安全引导选项,如增强的 UEFI 集成。


11.5 常见问题与排查

🔍 故障排查

  • 问题 1:内核更新失败
    解决:检查仓库(dnf repolist)、空间(df -h /boot),或日志(journalctl -u dnf)。

  • 问题 2:模块加载失败
    解决:确认模块存在(modinfo vfat)或是否有依赖问题。

  • 问题 3:参数未生效
    解决:检查配置文件(/etc/sysctl.d//etc/default/grub)或重启系统。


11.6 实践任务

  1. 使用 SecureCRT 通过 SSH(端口 2222)登录 LinuxDC,检查当前内核版本。
  2. 更新内核并验证新版本。
  3. 加载 vfat 模块并配置其自动加载。
  4. 配置 sysrq=1 参数(临时和永久),验证生效。

检查点uname -r 显示新内核,lsmod 显示 vfat,sysctl kernel.sysrq 输出 1。


11.7 自测问题

  • 问题 1:如何查看当前内核版本?
    答案uname -r

  • 问题 2:如何配置模块自动加载?
    答案:编辑 /etc/modules-load.d/<模块>.conf,添加模块名(如 vfat)。

  • 问题 3:如何临时回滚到旧内核?
    答案grubby --set-default /boot/vmlinuz-<旧内核版本>,然后 reboot


🧾 总结
本章完整介绍了 RHEL 9 内核与模块管理的核心操作,包括版本控制、模块操作和参数调整。掌握这些技能可优化系统性能与稳定性,为后续安全加固和端口管理提供坚实基础。