CentOS 7 迁移到Rocky Linux 9
我们知道CentOS 7在2024年6月30日停止支持,在此前,陆陆续续已经有人迁移了。但是如果还未迁移,现在迁移可能会遇到不同的问题。例如我们源地址发生了变化。下面我们给大家演示迁移升级。
CentOS 7 Update
因为原版源已经从mirror.centos.org改为vault.centos.org,默认是找不到新更新的。你可以修改你的源为vault.centos.org或者使用linuxmirror.cn修改为国内镜像源。
我为了更快速下载,使用国内镜像源。
CentOS 7 to CentOS 8 Stream
1GiG - CentOS 7 to CentOS 8
1 | sudo yum update -y |
1 | sudo yum install epel-release -y |
1 | sudo yum install rpmconf -y |
1 | sudo rpmconf -a |
1 | sudo yum install yum-utils -y |
1 | sudo package-cleanup --leaves |
清除完后,重启。
1 | sudo yum install dnf -y |
1 | sudo dnf update -y |
因为我使用了国内镜像源,我先把/etc/yum.repo.bak还原回来。也就是原本的centos源。
1 | sudo dnf install http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/Packages/{centos-linux-repos-8-3.el8.noarch.rpm,centos-linux-release-8.5-1.2111.el8.noarch.rpm,centos-gpg-keys-8-3.el8.noarch.rpm} -y |
上面的命令是下载新版本repo
不过我们先打开BaseOS, AppSteam,Extra源,看看他们是mirror.centos.org还是vault.centos.org。
如果不是vault则改过来。
例如:
1 | sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* |
使用下面的命令时因为缓存还在使用mirror.centos.org的原因,会有报错,但是没关系,因为我们安装的是下载的网址内安装包。之后我们清除缓存即可。
1 | sudo dnf upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y |
1 | sudo dnf clean all |
1 | sudo rpm -e `rpm -q kernel` |
这个时候,表面已经是CentOS 8 了。你可以通过
1 | cat /etc/redhat-release |
查看。
更换源为国内镜像源 - 选择华为云源
1 | bash <(curl -sSL https://linuxmirrors.cn/main.sh) |
1 | sudo dnf update -y |
安装完成后,表面上应该就会是CentOS 8, 但是应该也会有冲突的python3的报错,sysvinit-tools的报错等等。
我们先dnf remove移除python3-pip, sysvinit-tools
也可以
1 | rpm -e --nodeps sysvinit-tools |
然后继续升级CentOS 7到CentOS 8
1 | dnf clean all |
安装内核
1 | dnf install kernel-core -y |
安装CentOS 8 的最小版本
1 | dnf -y groupupdate "Core" "Minimal Install" |
虽然,我们可以通过以下命令再次将CentOS 8 转为CentOS 8 Stream
1 | sudo dnf install centos-release-stream -y |
但是后续其实还有步骤,只要dnf版本足够高的话,其实可以直接迁移Rocky Linux。所以没有转换的必要。
与此同时Rocky Linux 8迁移到Rocky Linux 9 需要使用AlmaLinux的leapp也就是ELevate工具来升级,且升级步骤必须使用VPN,直接下载依赖好像还是不行的。leapp默认只支持CentOS, 需要leapp-data-xxx来支持其他系统升级。
因为本身大版本升级操作系统是不支持的,所以官方也没有明确的方式,而Rocky Linux 8.10 EOL是2029年,其实直接迁移为Rocky Linux 8已经足够了。
迁移到Rocky Linux 8
根据Rocky Linux的步骤继续迁移:
Migrate to Rocky Linux 8
1 | curl https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh -o migrate2rocky.sh |
1 | chmod u+x migrate2rocky.sh |
运行脚本:
1 | ./migrate2rocky.sh -r |
等待运行完毕重启后:
1 | cat /etc/*release* |
之后再打开/etc/yum.repos.d并将CentOS-*.repo删除
1 | rm -rf /etc/yum.repos.d/CentOS-* |
使用ELevate leapp升级系统
Rocky Linux 8 to 9方法
AlmaLinux leaapp Upgrade
leaapp Upgrade
如果直接是CentOS 8也可以直接使用这个方式升级。
下载这个rpm, 就会在/etc/yum.repos.d安装Elevate repo,你也可以使用wget下载后安装。
1 | sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm |
Elevate Repo内容:(该repo无镜像站)
1 | [elevate] |
因为Elevate无镜像站资源,leapp-data-rocky就无法下载,即使预先先从官网下载依然是不行的。
leapp-data-rocky最新版地址:https://repo.almalinux.org/elevate/el8/x86_64/leapp-data-rocky-0.2-7.el8.noarch.rpm
因为默认的leapp-upgrade只支持CentOS,不支持其他升级。所以leapp-upgrade和leapp-data-rocky都需要。如果使用leapp-data,只支持从Rocky 8升级到Rocky 9,不支持CentOS 8 升级并迁移为Rocky 9 或CentOS 8 升级并迁移为Alma 9。
因此需要直接VPN到https://repo.almalinux.org/elevate/ 这个源里安装依赖。
1 | yum install -y leapp-upgrade leapp-data-rocky |
1 | leapp preupgrade |
然后查看answerfile,我的answerfile中只有vdo问题,所以直接使用以下命令覆盖即可。
1 | leapp answer --section check_vdo.no_vdo_devices=True |
后面步骤不展示了,因为没成功。(需要VPN连,太慢了。)
Rocky Linux 8 到Rocky Linux 9 (非leapp方式)
RL8 to RL9
可以参考浙江大学的镜像源
1 | dnf install https://mirror.nju.edu.cn/rocky-vault/9.3/BaseOS/x86_64/os/Packages/r/{rocky-repos-9.3-1.3.el9.noarch.rpm,rocky-release-9.3-1.3.el9.noarch.rpm,rocky-gpg-keys-9.3-1.3.el9.noarch.rpm} -y |
1 | dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync |
应该会报iptable的错误,通过以下方式解决
1 | yum remove iptables-ebtables make-devel |
然后再来一次升级后重建rpmdb。这是因为9版本不再使用Berkeley DB(bdb_ro)而是使用SQLite
1 | rpm --rebuilddb |
安装CentOS 9 的最小版本之后重启。
1 | dnf -y groupupdate "Core" "Minimal Install" |
升级如果遇到以下问题,需要用dnf module disable禁用。
1 | Problem 1: conflicting requests |
我们根据上面的信息禁用对应的模块,并且是同时输入
1 | dnf module disable mariadb:10.3 python27:2.7 python36:3.6 |
我们当然也可以使用dnf module list的方式查看模块并禁用。
这时如果dnf update -y或者dnf upgrade已经无报错代表升级成功了,可以重启使用了。
不过如果你查看dnf list |grep el8 可能还会找到有软件包是el8的
你可以按需看情况使用dnf remove卸载掉。
如果遇到kernel-core在的情况下,则需要
1 | rpm -e --nodeps `rpm -qa|grep -i kernel|grep 4.18` |
因为卸载的有点多,我为了确保稳定性将系统环境改为Server(你也可以用Server with GUI)
1 | dnf groupinstall "Server" |
这样他会安装很多组件,应该来说就比较稳定了。
当然我们都知道,重新安装才是最稳定的。这是一个迁移临时方案。
- 标题: CentOS 7 迁移到Rocky Linux 9
- 作者: 暗香疏影
- 创建于 : 2024-07-05 00:00:00
- 更新于 : 2024-07-05 00:00:00
- 链接: https://blog.23ikr.com/2024/07/05/2024-07-05-CentOS7-Migration/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。