Skip to content

25. 系统迁移与升级(RHEL 8.10)

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


25.1 前提条件

项目要求
基线快照RHEL8.10-Installed-Base(第 1 章创建)
源系统RHEL 8.10(ZSLinux
目标系统克隆虚拟机(主机名 ZSLinux-Migrate
网络可选联网(在线升级)或离线包(ISO/USB)
用户testuserwheel 组)
工具rsyncdnfgrub2systemd

25.2 虚拟机克隆迁移

25.2.1 克隆虚拟机

  1. 在 VMware 中右键 ZSLinux克隆创建完整克隆
  2. 命名:ZSLinux-Migrate
  3. 启动新虚拟机

25.2.2 修改主机名与网络

bash
# 修改主机名
hostnamectl set-hostname ZSLinux-Migrate
exec bash

# 修改 IP(接口名根据实际调整,如 ens33)
nmcli con mod ens33 ipv4.addresses 192.168.1.101/24
nmcli con mod ens33 ipv4.gateway 192.168.1.1
nmcli con up ens33

25.2.3 验证

bash
hostnamectl                     # 应显示 ZSLinux-Migrate
ip addr show | grep 192.168.1.101  # 应显示新 IP
ping -c 3 8.8.8.8               # 应通

25.3 离线数据迁移(rsync)

场景:源系统宕机,需将关键数据迁移至新系统

25.3.1 源系统备份

bash
# 挂载备份盘(如 /dev/sdb1)
mkdir -p /mnt/backup
mount /dev/sdb1 /mnt/backup

rsync -aAXv --progress \
  --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/var/cache/*} \
  / /mnt/backup/

25.3.2 目标系统恢复

bash
mount /dev/sdb1 /mnt/backup
rsync -aAXv --progress /mnt/backup/ /

25.3.3 修复启动

bash
dracut -f                                       # 重新生成 initramfs
grub2-mkconfig -o /boot/grub2/grub.cfg          # BIOS 系统
# UEFI 系统
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

25.4 RHEL 8.10 安全补丁升级

重要dnf update 仅在 RHEL 8.10 主版本内安装最新补丁不会跳转到 RHEL 9 或更高版本。当前 RHEL 8.10 是最新主版本。

25.4.1 在线安全补丁升级(推荐)

bash
dnf update --security -y        # 仅安装安全补丁(生产推荐)
reboot

# 或升级所有可用软件包、内核及安全补丁(测试环境)
dnf update -y
reboot

cat /etc/redhat-release         # 仍显示 8.10(版本号不变)
uname -r                        # 显示最新内核版本

25.4.2 离线安全补丁升级

步骤 1:准备离线包(联网机器)

bash
mkdir /tmp/security-pkgs
dnf repo-pkgs rhel-8-for-x86_64-baseos-rpms upgrade --security --downloadonly --downloaddir=/tmp/security-pkgs
dnf repo-pkgs rhel-8-for-x86_64-appstream-rpms upgrade --security --downloadonly --downloaddir=/tmp/security-pkgs

步骤 2:传输并安装(目标系统)

bash
# 使用 SecureFX 上传至 /tmp/security-pkgs
dnf upgrade /tmp/security-pkgs/*.rpm -y
reboot

25.5 回滚机制

场景回滚方式
克隆失败删除虚拟机,重新克隆
rsync 失败恢复快照
补丁升级失败dnf history undo <ID> 或快照
bash
dnf history              # 查看升级记录
dnf history undo 5       # 回滚第 5 次升级

25.6 验证清单

检查项命令预期
主机名hostnamectlZSLinux-Migrate
IPip addr show192.168.1.101
版本cat /etc/redhat-releaseRed Hat Enterprise Linux release 8.10
内核版本uname -r包含最新补丁(如 4.18.0-553.x.el8_10
服务systemctl is-active sshdactive

25.7 实践任务

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

25.8 自测问题

  • 问题dnf update --security -y 会升级到 RHEL 9 吗?
    • 答案:不会,仅在 RHEL 8.10 内安装安全补丁。
  • 问题dnf update -y 会升级哪些内容?
    • 答案:所有可用软件包、内核、安全补丁、功能修复。
  • 问题:如何回滚 dnf 补丁升级?
    • 答案dnf history 查看 ID,dnf history undo <ID>

采用 CC BY-NC-ND 4.0 许可。欢迎邮件反馈(zslinux@qq.com)