编者按: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 等一站式迁移指导和迁移工具也会陆续输出,还请持续关注龙蜥社区公众号不迷路,第一时间获取迁移相关资讯!

相关链接地址
【1】阿里云 CentOS Vault 源链接:
https://help.aliyun.com/docum...
【2】龙蜥社区知识库链接地址:
https://www.yuque.com/anolis-...

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!


关于龙蜥社区

龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的Linux 上游发行版社区及创新平台。

龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。

目前,龙蜥OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。

欢迎下载:

https://openanolis.cn/download

加入我们,一起打造面向未来的开源操作系统!

https://openanolis.cn


龙蜥社区
40 声望12 粉丝

OpenAnolis龙蜥社区由国内外头部企业联合建立的操作系统开源社区。