跳转到内容
搜索 RunEntLinux 文档

仅搜索 RunEntLinux 通用文档,各发行版文档使用各自的搜索入口。

    浏览当前文档目录

    迁移到 Rocky Linux

    本文将指导你使用 Rocky Linux 官方迁移工具 migrate2rocky.sh,从 CentOS 8、CentOS Stream、RHEL、AlmaLinux、Oracle Linux 等 EL 兼容发行版迁移到 Rocky Linux。

    在开始迁移之前,请确认以下事项:

    • 操作系统版本:CentOS 8、CentOS Stream 8/9、RHEL 8/9、AlmaLinux 8/9、Oracle Linux 8/9 等 EL8+ 兼容系统
    • 磁盘空间:/var 分区至少有 5 GB 可用空间
    • 网络连接:服务器能够访问外网以下载 Rocky Linux 软件包
    • root 权限:迁移过程需要 root 或 sudo 权限
    • 完整备份:务必在迁移前完成系统快照或完整备份

    重要提示: 官方仓库有两个脚本:migrate2rocky.sh 只用于 EL8 → Rocky 8,migrate2rocky9.sh 用于 EL9 → Rocky 9,不能混用。CentOS 7 不能直接用它们,要先升到 EL8。

    确认当前操作系统版本
    $ cat /etc/os-release
    备份已安装软件包列表
    $ rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > ~/packages-before-migration.txt
    备份运行中的服务
    $ systemctl list-units --type=service --state=running > ~/services-before-migration.txt
    备份仓库配置
    $ cp -a /etc/yum.repos.d/ ~/yum.repos.d.bak/
    创建系统快照(如果使用 LVM)
    $ sudo lvcreate --size 10G --snapshot --name pre_migration_snap /dev/mapper/centos-root

    migrate2rocky.sh 由 Rocky Linux 官方维护,托管在 GitHub 上。

    安装必要工具
    $ sudo dnf install -y curl git

    有两种方式获取迁移脚本:

    下载 migrate2rocky.sh
    $ curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
    克隆 rocky-tools 仓库
    $ git clone https://github.com/rocky-linux/rocky-tools.git
    $ cd rocky-tools/migrate2rocky/
    确认脚本已就绪
    $ ls -la migrate2rocky.sh

    基本迁移(CentOS 8 / CentOS Stream 8)

    Section titled “基本迁移(CentOS 8 / CentOS Stream 8)”
    运行迁移脚本
    $ sudo bash migrate2rocky.sh -r

    -r 参数表示执行完整迁移(包含 dnf distro-sync)。脚本会自动完成以下步骤:

    1. 检测当前操作系统和版本
    2. 检查是否存在已知的不兼容情况
    3. 下载 Rocky Linux GPG 密钥
    4. 替换系统标识包(*-release、*-logos、*-gpg-keys 等)
    5. 执行 dnf distro-sync 将所有软件包同步到 Rocky Linux 版本

    对于 CentOS Stream 9、AlmaLinux 9 等 EL9 系统:

    下载 EL9 版本的迁移脚本
    $ curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky9.sh
    运行 EL9 迁移
    $ sudo bash migrate2rocky9.sh -r

    CentOS 7 不能直接迁移到 Rocky Linux,需要借助 ELevate 项目先升级到 EL8。

    安装 ELevate 仓库(CentOS 7)
    $ sudo yum install -y https://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm
    安装 Leapp 升级工具(目标为 AlmaLinux 8)
    $ sudo yum install -y leapp-upgrade leapp-data-almalinux

    ELevate 当前支持的升级目标为 AlmaLinux / Kitten / CentOS Stream,不含 Rocky。先原地升级到 AlmaLinux 8,再用官方 rocky-tools 的 migrate2rocky.sh 转换为 Rocky Linux(以仓库文档为准)。

    运行预升级检查
    $ sudo leapp preupgrade
    查看报告并解决所有问题
    $ sudo cat /var/log/leapp/leapp-report.txt
    确认无问题后执行升级
    $ sudo leapp upgrade

    系统重启后将进入 AlmaLinux 8(ELevate 的目标发行版)。随后使用官方 rocky-tools 的 migrate2rocky.sh 将系统转换为 Rocky Linux(以仓库文档为准)。

    第三方仓库是迁移过程中最常见的问题来源。建议在迁移前妥善处理。

    列出所有已启用的仓库
    $ dnf repolist --enabled
    禁用 EPEL 仓库
    $ sudo dnf config-manager --set-disabled epel epel-modular 2>/dev/null
    禁用其他常见第三方仓库
    $ sudo dnf config-manager --set-disabled remi* ius* rpmfusion* elrepo*

    迁移完成后,需要安装对应 Rocky Linux 版本的第三方仓库包:

    安装 EPEL(Rocky Linux 8)
    $ sudo dnf install -y epel-release
    安装 EPEL(Rocky Linux 9)
    $ sudo dnf install -y epel-release
    安装 ELRepo(用于新版内核等)
    $ sudo dnf install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
    安装 Remi(Rocky Linux 8)
    $ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
    安装 Remi(Rocky Linux 9)
    $ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

    处理 Katello / Satellite 管理的系统

    Section titled “处理 Katello / Satellite 管理的系统”

    如果系统使用 Katello 或 Red Hat Satellite 管理:

    迁移前取消注册
    $ sudo subscription-manager unregister
    $ sudo subscription-manager clean

    迁移完成后根据需要重新配置管理工具。

    验证系统版本
    $ cat /etc/os-release

    预期输出:

    NAME="Rocky Linux"
    VERSION="8.9 (Green Obsidian)"
    ID="rocky"
    验证发行版标识包
    $ rpm -qa | grep rocky-release
    查找非 Rocky Linux 的残留包
    $ rpm -qa --qf '%{NAME} %{VENDOR}\n' | grep -v -i rocky | grep -v "(none)" | sort
    检查是否有残留的 CentOS 包
    $ rpm -qa | grep -i centos
    移除残留包(如有)
    $ sudo dnf remove centos-logos centos-indexhtml centos-backgrounds 2>/dev/null
    确保所有包同步到 Rocky Linux 版本
    $ sudo dnf distro-sync -y
    BIOS 系统重建 GRUB
    $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    EFI 系统重建 GRUB
    $ sudo grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
    重启系统
    $ sudo reboot
    重启后检查内核版本
    $ uname -r
    检查是否有失败的服务
    $ systemctl list-units --type=service --state=failed
    对比迁移前后的包列表
    $ rpm -qa --queryformat '%{NAME}\n' | sort > ~/packages-after-migration.txt
    $ diff ~/packages-before-migration.txt ~/packages-after-migration.txt

    migrate2rocky.sh 仅支持 EL8 系统。如果你运行的是 CentOS 7,需要使用 ELevate 项目先升级到 EL8。如果是 EL9,请使用 migrate2rocky9.sh。

    确认你的 EL 大版本
    $ rpm -E %{rhel}

    报错 “Could not download Rocky Linux GPG keys”

    Section titled “报错 “Could not download Rocky Linux GPG keys””

    网络问题导致无法下载 GPG 密钥。

    测试到 Rocky Linux 镜像站的连通性
    $ curl -I https://dl.rockylinux.org/
    手动导入 GPG 密钥
    $ sudo rpm --import https://dl.rockylinux.org/pub/rocky/RPM-GPG-KEY-Rocky-8

    如果服务器在国内,可以考虑使用镜像源加速。

    查看冲突详情
    $ sudo dnf distro-sync -y --allowerasing 2>&1 | tee /tmp/distro-sync.log
    排除特定问题包后重试
    $ sudo dnf distro-sync -y --exclude=<问题包名>
    如果存在多版本冲突,清除并重建缓存
    $ sudo dnf clean all
    $ sudo rm -rf /var/cache/dnf
    $ sudo dnf makecache
    $ sudo dnf distro-sync -y

    如果迁移过程中 SSH 断开,可以通过控制台(IPMI / KVM / 云平台控制台)重新连接。

    建议: 在 screen 或 tmux 会话中执行迁移脚本,防止网络中断导致迁移过程被终止。

    使用 tmux 执行迁移
    $ tmux new -s migration
    $ sudo bash migrate2rocky.sh -r

    如果 tmux 会话断开,重新连接:

    重新连接 tmux 会话
    $ tmux attach -t migration

    参考 启动故障排查 页面。通常需要从救援模式重新安装内核和 GRUB。