本文主要介绍在Linux操作系统迁移时,迁移任务出错提示“failed to leapp preupgrade”信息时的问题描述、问题原因及其解决方案。
问题描述
在使用SMC操作系统时,迁移任务出错提示“failed to leapp preupgrade”信息。
问题原因
可能原因如下:
- 软件包依赖关系检查失败 
- YUM源无法访问 
- /etc/fstab挂载配置检查失败 
- /etc/vsftpd/vsftpd.conf FTP配置检查失败 
- /根目录检查失败 
- target_userspace_creator创建目标用户空间失败 
解决方案
软件包依赖关系检查失败
- 远程连接源服务器。具体操作,请参见连接实例。 
- 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。 - 查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下: - cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log- 其中:2.7.6是SMC客户端的版本号,您需要根据实际替换。  - 执行以下命令,日志存在以下报错信息。 - cat /var/log/leapp/leapp-preupgrade.log - 上述报错信息表明,更新软件包时,dnf_transaction_check阶段检查依赖关系失败。可能是仓库中缺少依赖的软件包,也可能是依赖的软件包之间存在冲突。如上述lynx包更新时仓库中找不到依赖包 - anolis-indexhtml。
- 分析报错信息中的依赖关系,卸载导致问题的软件包。例如出现上述报错后,执行以下命令,卸载lynx。 - yum remove lynx-2.8.8-0.3.dev15.1.al7.x86_64
- 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。 
YUM源无法访问
- 远程连接源服务器。具体操作,请参见连接实例。 
- 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。 - 查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下: - cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log- 其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。  - 执行以下命令,日志存在以下报错信息。 - cat /var/log/leapp/leapp-preupgrade.log- 报错信息如下: - Errors during downloading metadata for repository 'docker-ce-stable-migrate': - Curl error (28): Timeout was reached for https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/stable/repodata/repomd.xml [Connection timed out after 30000 milliseconds] Error: Failed to download metadata for repo 'docker-ce-stable-migrate': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried Errors during downloading metadata for repository 'zabbix-migrate': - Curl error (28): Timeout was reached for http://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/repodata/repomd.xml [Connection timed out after 30000 milliseconds] Error: Failed to download metadata for repo 'zabbix-migrate': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried- 上述报错信息表明,迁移过程中用到的YUM源配置文件为 - /etc/leapp/files/leapp_upgrade_repositories.repo,其中https://rpm.nodesource.com/pub_18.x/el/8/$basearch、http://repo.zabbix.com/zabbix/5.0/rhel/8/$basearch/、https://mirrors.aliyun.com/docker-ce/linux/centos/8/$basearch/stable- nodejs、zabbix和docker-ce的repo仓库配置了公网地址,但是部分ECS实例无法访问公网。 
- 根据需求,解决问题。 - 如果ECS实例无法访问公网 - 把配置文件 /etc/leapp/files/leapp_upgrade_repositories.repo 中使用的公网访问地址 - http://mirrors.aliyun.com/更换为VPC网络访问地址- http://mirrors.cloud.aliyuncs.com/或者将无法访问的公网repo仓库配置的- enabled=1修改为- enabled=0。
- 如果ECS实例无法访问VPC网络 - 迁移过程中需要确保机器能够通过VPC网络访问yum源地址 - http://mirrors.cloud.aliyuncs.com/检查源服务器是否只有经典网络,检查DNS配置文件- /etc/resolv.conf是否正常。
 
- 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。 
/etc/fstab挂载配置检查失败
- 远程连接源服务器。具体操作,请参见连接实例。 
- 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。 - 查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下: - cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log- 其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。  
- 根据报错信息,检查 - /etc/fstab挂载配置。- 每个文件系统挂载项写在一行之内,不要因为参数过多而换行。 
- 每个文件系统挂载项确保是可挂载的,可通过 - mount -a命令测试挂载。
- 配置文件中不要出现中文。 
 
- 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。 
/etc/vsftpd/vsftpd.conf FTP配置检查失败
- 远程连接源服务器。具体操作,请参见连接实例。 
- 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。 - 查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下: - cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log- 其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。  - vsftpd_config_read阶段报错退出,检查 - /etc/vsftpd/vsftpd.confFTP配置文件内容如下: 
- /etc/vsftpd/vsftpd.confFTP配置文件中不要出现中文,删除中文。
- 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。 
/根目录检查失败
target_userspace_creator创建目标用户空间失败
- 远程连接源服务器。具体操作,请参见连接实例。 
- 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。 - 查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下: - cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log- 其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。  - 执行以下命令,日志中存在以下报错信息。 - cat /var/log/leapp/leapp-preupgrade.log - 上述报错信息表明,因为系统内核版本和软件包版本相对较低,而且没有加载相应的overlay驱动,导致mount报错。 
- 执行以下命令,将系统小版本更新到CentOS 7.9,并更新内核和一些软件包版本。 - yum update
- 重启源服务器后,执行以下命令,检查已加载overlay驱动。 - lsmod |grep overlay
- 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。 

