Skip to content

12. 内核与模块管理

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

12.1 前提条件

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

12.2 内核管理

12.2.1 查看内核版本

  • 检查当前内核版本:
    bash
    uname -r  # 显示当前运行的内核版本

12.2.2 更新内核

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

12.2.3 回滚内核

  • 查看可用内核:
    bash
    grubby --info=ALL  # 列出所有可用内核
  • 设置下次启动使用的内核:
    bash
    grubby --set-default /boot/vmlinuz-<旧内核版>  # 设置旧内核为默认启动项
    reboot  # 重启系统以回滚内核
  • 临时选择内核(单次启动):
    bash
    grub2-reboot <旧内核索>  # 设置下次启动的内核索引(从 grubby --info=ALL 获取)
    reboot  # 重启系统以使用指定内核

12.3 模块管理

12.3.1 加载和卸载模块

  • 加载内核模块(以 vfat 为例):
    bash
    modprobe vfat  # 加载 vfat 文件系统模块
  • 卸载内核模块:
    bash
    rmmod vfat  # 卸载 vfat 模块

12.3.2 配置模块自动加载

  • 配置模块自动加载:
    bash
    vim /etc/modprobe.d/vfat.conf  # 创建模块配置文件
    # 添加以下内容:
    install vfat /sbin/modprobe --ignore-install vfat
  • 检查模块是否加载:
    bash
    lsmod | grep vfat  # 查看 vfat 模块是否已加载

12.4 参数调整

12.4.1 修改 sysctl 参数

  • 临时设置参数:
    bash
    sysctl -w kernel.sysrq=1  # 启用 sysrq 魔术键(临时)
  • 永久设置参数:
    bash
    vim /etc/sysctl.d/99-custom.conf  # 创建 sysctl 配置文件
    # 添加以下内容:
    kernel.sysrq=1
    sysctl -p /etc/sysctl.d/99-custom.conf  # 应用配置

12.4.2 配置 GRUB 内核参数

  • 编辑 GRUB 配置:
    bash
    vim /etc/default/grub  # 编辑 GRUB 配置文件
    # 在 GRUB_CMDLINE_LINUX 添加参数,例如:
    GRUB_CMDLINE_LINUX="... quiet sysrq=1"
  • 更新 GRUB 配置:
    bash
    grub2-mkconfig -o /boot/grub2/grub.cfg  # 更新 GRUB 配置文件
    reboot  # 重启系统以应用参数

12.5 验证

  • 验证内核版本:
    bash
    uname -r  # 检查当前内核版本
    grubby --info=DEFAULT  # 检查默认启动内核
  • 验证模块加载:
    bash
    lsmod | grep vfat  # 检查 vfat 模块是否加载
  • 验证 sysctl 参数:
    bash
    sysctl kernel.sysrq  # 检查 sysrq 参数是否为 1
  • 验证 GRUB 参数:
    bash
    cat /proc/cmdline  # 检查当前内核启动参数
  • 常见问题:
    • 内核更新失败:检查 RHEL 仓库是否启用(参考第 4 章)或磁盘空间(df -h)。
    • 模块加载失败:确认模块存在(modinfo vfat)或是否有依赖问题。
    • 参数未生效:检查配置文件(/etc/sysctl.d/, /etc/default/grub)或重启系统。

12.6 实践任务

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

12.7 自测问题

  • 问题:如何查看当前内核版本?
    • 答案uname -r
  • 问题:如何配置模块自动加载?
    • 答案:编辑 /etc/modprobe.d/<模块>.conf,添加 install <模块> /sbin/modprobe --ignore-install <模块>
  • 问题:如何临时回滚到旧内核?
    • 答案grubby --set-default /boot/vmlinuz-<旧内核版本>grub2-reboot <索引>,然后 reboot

Released under the MIT License.