编者按:CentOS 8 已于 2021 年年底正式停止维护,龙蜥社区已上线「CentOS 停服专区」,为受 CentOS 停服影响的用户提供迁移方案及长期稳定支持。龙蜥操作系统(Anolis OS)8 全面兼容 CentOS 8 软件生态,且兼容其它主流 Linux 发行版,是完全开源、中立且开放的发行版。
为方便广大 CentOS 用户平滑迁移到龙蜥操作系统(Anolis OS),降低用户迁移成本,现整理如下迁移手册及迁移注意事项!
作者:徐春梅,龙蜥社区 Anolis 迁移 SIG 负责人。
一、迁移原理与注意事项
Anolis OS 8 在做出差异性开发同时,在生态上和依赖管理上保持跟 CentOS 8.x 兼容,所以 CentOS 8.x 迁移 Anolis OS 8 最新版本实现上,工具充分利用了兼容的特性,提供了一键式迁移脚本。
CentOS 8.x 迁移使用龙蜥操作系统(Anolis OS)发行版相关的包替代 CentOS 发行版,通过 yum distro-sync 重装当前系统中所有的系统软件包。
软件重装的过程并不会修改当前系统基础配置,所以系统配置、业务配置、业务数据都不会被清除,迁移完成后这些数据无需重新设置。
使用迁移脚本前需要注意如下事项:
-
迁移过程涉及软件包重装,是不可逆过程,迁移前务必做好备份。
-
迁移过程涉及到访问 Anolis OS 的官方 repo,需要确保待迁移环境网络能够正常访问 Anolis OS repo。
-
需要使用 root 用户执行,当前只支持 CentOS8.x 系统的迁移,不支持 CentOS stream 系统迁移。
-
迁移过程依赖于 yum/dnf,确保这两个组件能够正常运行。
-
迁移脚本提供了Anolis OS repo 访问加速的功能,如果访问 Anolis OS 官方 repo 速度较慢,可以通过 -s 选项进行加速访问。
-
Anolis OS 不提供 i686 架构的软件包,如您系统上安装了 CentOS 的 i686 架构的软件包,则无法正常迁移。
二、部署迁移工具
下载迁移脚本:
wget https://gitee.com/anolis/centos2anolis/raw/master/centos2anolis.py
安装迁移脚本运行依赖:
yum -y install python3
三、迁移执行
python3 centos2anolis.py
迁移完成后,系统会提示如下信息,表示迁移成功,重启即可进入龙蜥操作系统(Anolis OS)。
centos2anolis.py 提供了 -V 选项,用于记录迁移前后的软件包信息,您可以根据需要判断是否添加选项。添加 -V 选项,迁移完成后会在 /var/tmp 目录下生成迁移前后的 rpm 信息,命名格式为:
# 迁移前 $(hostname)-rpms-list-before.log $(hostname)-rpms-verified-before.log # 迁移后 $(hostname)-rpms-list-after.log $(hostname)-rpms-verified-after.log
四、迁移后配置检查
CentOS 在 2021 年 12 月 31 号停止维护,相应的 CentOS 源在 2022 年 1 月 31 号从官网删除,导致 CentOS 实例无法正常使用 repo,阿里云官方给出了切换使用 CentOS Vault 源的指导。
如果您按照该指导切换使用 CentOS Vault 源或者自行配置使用 Vault 源,然后实施迁移 Anolis OS,迁移完成后,需要检查当前系统中是否残留 CentOS Vault 源。
通过命令 yum repolist
检查:
# yum repolist Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-Linux-epel.repo; 配置:ID 为 "failovermethod" 的 OptionBinding 不存在 Repository PowerTools is listed more than once in the configuration Repository AppStream is listed more than once in the configuration 仓库 id 仓库名称 AppStream AnolisOS-8 - AppStream BaseOS AnolisOS-8 - BaseOS Extras AnolisOS-8 - Extras PowerTools AnolisOS-8 - PowerTools base CentOS-8.5.2111 - Base - mirrors.aliyun.com epel Extra Packages for Enterprise Linux 8 - x86_64 extras CentOS-8.5.2111 - Extras - mirrors.aliyun.com
如上述结果所示,“CentOS-8.5.2111 - Base - mirrors.aliyun.com” 就是残留的 CentOS repo,需要删除,否则会出现 Anolis OS 和 CentOS 源共存的问题,一旦执行 yum update 可能会错误地安装 CentOS 的包。
删除 CentOS 源的方法和步骤如下:
1.查找提供 CentOS repo 的配置文件
# grep -rn "CentOS-8.5.2111" /etc/yum.repos.d/*.repo /etc/yum.repos.d/Centos-vault-8.5.2111.repo:14:name=CentOS-8.5.2111 - Base - mirrors.aliyun.com /etc/yum.repos.d/Centos-vault-8.5.2111.repo:24:name=CentOS-8.5.2111 - Extras - mirrors.aliyun.com /etc/yum.repos.d/Centos-vault-8.5.2111.repo:34:name=CentOS-8.5.2111 - Plus - mirrors.aliyun.com /etc/yum.repos.d/Centos-vault-8.5.2111.repo:43:name=CentOS-8.5.2111 - PowerTools - mirrors.aliyun.com /etc/yum.repos.d/Centos-vault-8.5.2111.repo:53:name=CentOS-8.5.2111 - AppStream - mirrors.aliyun.com
2.重命名步骤 1 找到的配置文件
mv /etc/yum.repos.d/Centos-vault-8.5.2111.repo /etc/yum.repos.d/Centos-vault-8.5.2111.repo.bak
五、迁移后验证
查看 OS 版本:
# cat /etc/os-release NAME="Anolis OS" VERSION="8.4" ID="anolis" ID_LIKE="rhel fedora centos" VERSION_ID="8.4" PLATFORM_ID="platform:an8" PRETTY_NAME="Anolis OS 8.4" ANSI_COLOR="0;31" HOME_URL="https://openanolis.cn/"
通过命令查看当前系统中是否有残留 CentOS 软件包,如果残留 kernel 包,为正常现象,kernel 包支持多版本共存。
rpm -qa --qf "%{NAME} %{VENDOR}\n" | grep CentOS
六、FAQ
1)就地迁移失败是否可回滚?
迁移工具不支持回滚,迁移失败无法恢复到迁移初始状态,迁移前务必做好系统备份。
2)迁移出现问题怎么办?
a. 先在龙蜥社区知识库查看是否有同样的问题。
b. 保存迁移工具执行报错信息,并提供初始系统信息(系统版本,内核,软件包列表等等),附上迁移日志文件 /var/log/centos2anolis.log,请及时在龙蜥社区交流群(扫描下方二维码或搜索钉钉群号:33311793加入)内联系获取帮助。
【预告】CentOS 7 到 Anolis OS 7、CentOS 7 到 Anolis OS 8 等一站式迁移指导和迁移工具也会陆续输出,还请持续关注龙蜥社区公众号不迷路,第一时间获取迁移相关资讯!
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
关于龙蜥社区
龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的Linux 上游发行版社区及创新平台。
龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。
目前,龙蜥OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。
欢迎下载:https://openanolis.cn/download
加入我们,一起打造面向未来的开源操作系统!