Appearance
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) |
| 用户 | testuser(wheel 组) |
| 工具 | rsync、dnf、grub2、systemd |
25.2 虚拟机克隆迁移
25.2.1 克隆虚拟机
- 在 VMware 中右键
ZSLinux→ 克隆 → 创建完整克隆 - 命名:
ZSLinux-Migrate - 启动新虚拟机
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 ens3325.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.cfg25.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
reboot25.5 回滚机制
| 场景 | 回滚方式 |
|---|---|
| 克隆失败 | 删除虚拟机,重新克隆 |
| rsync 失败 | 恢复快照 |
| 补丁升级失败 | dnf history undo <ID> 或快照 |
bash
dnf history # 查看升级记录
dnf history undo 5 # 回滚第 5 次升级25.6 验证清单
| 检查项 | 命令 | 预期 |
|---|---|---|
| 主机名 | hostnamectl | ZSLinux-Migrate |
| IP | ip addr show | 192.168.1.101 |
| 版本 | cat /etc/redhat-release | Red Hat Enterprise Linux release 8.10 |
| 内核版本 | uname -r | 包含最新补丁(如 4.18.0-553.x.el8_10) |
| 服务 | systemctl is-active sshd | active |
25.7 实践任务
- 克隆
ZSLinux→ZSLinux-Migrate,修改主机名和 IP。 - 使用
rsync备份/etc和/var到备份盘。 - 模拟离线安全补丁升级:下载安全包 → 传输 → 安装 → 重启。
- 使用
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>
- 答案:
