跳转至

29. 系统迁移与升级

本章节基于 RHEL9-Installed-Base 快照,聚焦 RHEL 9 主版本内的系统迁移与安全补丁升级。涵盖 虚拟机克隆离线数据同步安全补丁升级回滚机制。适合生产环境标准化运维与平滑过渡到 RHEL 10 的准备。


29.1 前提条件

项目 要求
基线快照 RHEL9-Installed-Base(第 1 章创建)
源系统 RHEL 9(LinuxDC
目标系统 克隆虚拟机(主机名 LinuxDC-Migrate
网络 可选联网(在线升级)或离线包(ISO/USB)
用户 testuser(具有 wheel 组权限)
工具 rsync、dnf、grubby 已安装(RHEL 9 默认包含)
磁盘空间 源系统 /boot 和根分区剩余空间 ≥ 5GB

💡 提示:建议在克隆前创建快照。RHEL 10 升级路径已公开,支持从 RHEL 9.4+ 直接原地升级,推荐在 RHEL 9.5+ 版本上执行本章操作,为后续升级做准备。


29.2 系统迁移(虚拟机克隆方式)

29.2.1 克隆虚拟机

  1. 在 VMware 中克隆 LinuxDC 虚拟机:
  2. 选择“完整克隆”(Full Clone)
  3. 新主机名:LinuxDC-Migrate
  4. 新 MAC 地址:自动生成或手动指定

  5. 启动克隆后的虚拟机,登录并修改主机名与 IP:

    hostnamectl set-hostname LinuxDC-Migrate
    nmcli con mod ens33 ipv4.addresses 192.168.1.101/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8"
    nmcli con up ens33
    exec bash
    

检查点hostnamectl 显示新主机名,ip addr 显示新 IP。

29.2.2 使用 rsync 同步关键数据(可选)

  • 在源系统(LinuxDC)执行:

    rsync -avz --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found} / root@192.168.1.101:/
    

  • 在目标系统(LinuxDC-Migrate)执行:

    rsync -avz --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found} root@192.168.1.100:/ /
    

⚠️ 注意:rsync 同步适合小规模迁移,大规模推荐重新部署或 Image Builder。


29.3 安全补丁升级

29.3.1 在线安全补丁升级

  • 检查可用安全更新:

    dnf updateinfo list security
    

  • 仅安装安全补丁:

    dnf update --security -y
    

  • 完整更新(包含功能修复):

    dnf update -y
    reboot
    

🧠 知识点--security 仅更新安全相关包,不会升级到 RHEL 10。

29.3.2 离线安全补丁升级(模拟场景)

  1. 在联网机器下载补丁:

    dnf download --resolve --security kernel*  # 示例:下载内核安全补丁
    

  2. 使用 SecureFX 传输到目标系统 /tmp/patches/

  3. 安装补丁:

    dnf localinstall /tmp/patches/*.rpm -y
    reboot
    

检查点dnf updateinfo list security 显示已安装。


29.4 回滚机制

29.4.1 使用 dnf history 回滚

  • 查看历史事务:

    dnf history
    

  • 回滚某次事务(示例:回滚 ID 15):

    dnf history undo 15
    

⚠️ 注意:回滚仅适用于 dnf 事务,不包括手动 rpm 安装。

29.4.2 使用 grubby 回滚内核

  • 查看可用内核:

    grubby --info=ALL
    

  • 设置默认旧内核:

    grubby --set-default /boot/vmlinuz-<old_version>
    reboot
    

💡 提示:RHEL 9 支持多内核共存,RHEL 10 进一步优化了内核切换与 kpatch 实时补丁。


29.5 常见问题与排查

🔍 故障排查

  • 问题 1:克隆后网络不通
    解决:检查 MAC 地址冲突,重新配置 IP(nmcli)。

  • 问题 2:补丁安装失败
    解决dnf history 查看事务,journalctl -u dnf 检查日志,确认订阅(subscription-manager status)。

  • 问题 3:回滚失败
    解决:确认事务 ID(dnf history),检查依赖冲突。

  • 问题 4:内核未切换
    解决grubby --default-kernel 查看当前内核,重新设置并重启。


29.6 实践任务

  1. 在 VMware 中克隆 LinuxDCLinuxDC-Migrate,修改主机名和 IP。
  2. 使用 rsync 备份 /etc/var 到备份盘。
  3. 模拟离线安全补丁升级:下载安全包 → 传输 → 安装 → 重启。
  4. 使用 dnf history undo 回滚一次补丁升级。

检查点:克隆系统正常运行,补丁安装/回滚成功。


29.7 自测问题

  • 问题 1dnf update --security -y 会升级到 RHEL 10 吗?
    答案:不会,仅在 RHEL 9 内安装安全补丁。

  • 问题 2dnf update -y 会升级哪些内容?
    答案:所有可用软件包、内核、安全补丁、功能修复。

  • 问题 3:如何回滚 dnf 补丁升级?
    答案dnf history 查看 ID,dnf history undo <ID>


🧾 总结
本章完整介绍了 RHEL 9 系统迁移与升级的标准化流程,包括克隆迁移、补丁升级和回滚机制。这些技能确保系统安全、可控地演进,为后续 Git 自动化部署与 RHCE 考点总结提供稳定基础。