Rocky Linux 9 -> 10.1跨主版本升级(major upgrade)
Rocky Linux 9 → 10 这种**跨主版本升级(major upgrade)**在企业运维中确实要非常谨慎。
目前(截至 2025 年底),Rocky 10 已经发布,但官方还没正式提供像 leapp 那样“一键无损升级”的稳定路径。
一、官方现状与支持情况
| 项目 | 状态(2025年) | 说明 |
|---|---|---|
| Rocky 9 → 9.x | ✅ 支持 | dnf upgrade 即可滚动升级 |
| Rocky 9 → 10 | ⚠️ 实验性 | RHEL 官方还未发布基于 leapp 的稳定迁移工具(leapp-data-rocky10 仍在测试) |
| RHEL 9 → 10(预览) | 🔬 开发中 | 红帽官方计划在 2026 Q1 正式提供 |
| 推荐做法 | ✅ 全量迁移安装(fresh install) | 使用 Ansible/Kickstart/镜像重装 + 数据迁移脚本 |
二、推荐方案(稳妥生产可行)
方案 1:全新安装 Rocky 10 + 迁移数据
最安全、也是企业普遍采用的方式。
步骤示例:
1 | # 1. 备份配置、用户、数据 |
💡 适合生产环境、有配置管理(如 Ansible、Salt、Puppet)的系统。
方案 2:实验性 in-place 升级(仅实验 / 内测)
⚠️ 不建议直接在生产环境执行,可能破坏依赖或 SELinux label。
升级整体思路
- Rocky 9 → 10 = ABI / glibc / toolchain 断代升级
- leapp + 预检查 + 阻断机制(inhibitor)
本质不是“升级”,而是:
在原系统旁边构建一个 Rocky 10 用户空间,
再切换引导。
flowchart LR
A[Rocky Linux 9 运行态] --> B[leapp preupgrade]
B -->|风险可控| C[构建 Rocky 10 用户空间]
C --> D[切换内核 / initramfs]
D --> E[重启]
E --> F[Rocky Linux 10]
B -->|inhibitor| G[升级被阻断]
正确的包安装方式
1.安装 leapp 核心
1 | dnf install -y leapp |
2.安装 EL9 → EL10 升级规则集(关键)
1 | dnf install -y leapp-upgrade-el9toel10 |
说明一句人话:
leapp:引擎leapp-upgrade-el9toel10:升级“法律条文”
- 升级前的硬性准备(不做=必翻车),系统必须是 最新的 Rocky 9
1 | dnf update -y |
[root@rocky9 ~]# cat /etc/os-release
NAME="Rocky Linux"
VERSION="9.7 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.7"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.7 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
VENDOR_NAME="RESF"
VENDOR_URL="https://resf.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.7"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.7"
1 | dnf repolist |
只保留 rocky 官方仓库
4.关键一步:预升级检查,执行预检查
1 | leapp preupgrade |
经过验证发现不支持,10还没GA
5.你一定会看到两类结果
- Report:警告
- Inhibitor:直接阻断升级(必须修)
报告位置:
1 | /var/log/leapp/leapp-report.txt |
可以把它当成:
操作系统的体检报告 + 法医鉴定书
- 真正执行升级(只在 preupgrade 通过后,执行升级
1 | leapp upgrade |
系统会:
- 下载 Rocky 10 用户空间
- 生成新 initramfs
- 写入新引导项
7.重启
1 | reboot |
启动菜单中会自动进入 Rocky Linux 10。
- 升级后的必做检查,确认版本
1 | cat /etc/os-release |
- 极其现实的一句话
- 不是所有 Rocky 9 都“应该”升级到 10
leapp 的设计哲学是:不升级,也比升级后死机强