出错提示“failed to leapp preupgrade”

本文主要介绍在Linux操作系统迁移时,迁移任务出错提示“failed to leapp preupgrade”信息时的问题描述、问题原因及其解决方案。

问题描述

在使用SMC操作系统时,迁移任务出错提示“failed to leapp preupgrade”信息。

问题原因

可能原因如下:

  • 软件包依赖关系检查失败

  • YUM源无法访问

  • /etc/fstab挂载配置检查失败

  • /etc/vsftpd/vsftpd.conf FTP配置检查失败

  • /根目录检查失败

  • target_userspace_creator创建目标用户空间失败

解决方案

软件包依赖关系检查失败

  1. 远程连接源服务器。具体操作,请参见连接实例

  2. 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。

    查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:

    cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log

    其中:2.7.6是SMC客户端的版本号,您需要根据实际替换。

    image

    执行以下命令,日志存在以下报错信息。

    cat /var/log/leapp/leapp-preupgrade.log

    image

    上述报错信息表明,更新软件包时,dnf_transaction_check阶段检查依赖关系失败。可能是仓库中缺少依赖的软件包,也可能是依赖的软件包之间存在冲突。如上述lynx包更新时仓库中找不到依赖包anolis-indexhtml

  3. 分析报错信息中的依赖关系,卸载导致问题的软件包。例如出现上述报错后,执行以下命令,卸载lynx。

    yum remove lynx-2.8.8-0.3.dev15.1.al7.x86_64
  4. 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端

YUM源无法访问

  1. 远程连接源服务器。具体操作,请参见连接实例

  2. 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。

    查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:

    cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log

    其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。

    image

    执行以下命令,日志存在以下报错信息。

    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实例无法访问公网。

  3. 根据需求,解决问题。

    • 如果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是否正常。

  4. 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端

/etc/fstab挂载配置检查失败

  1. 远程连接源服务器。具体操作,请参见连接实例

  2. 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。

    查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:

    cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log

    其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。

    image

  3. 根据报错信息,检查/etc/fstab挂载配置。

    • 每个文件系统挂载项写在一行之内,不要因为参数过多而换行。

    • 每个文件系统挂载项确保是可挂载的,可通过mount -a命令测试挂载。

    • 配置文件中不要出现中文。

  4. 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端

/etc/vsftpd/vsftpd.conf FTP配置检查失败

  1. 远程连接源服务器。具体操作,请参见连接实例

  2. 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。

    查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:

    cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log

    其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。

    image

    vsftpd_config_read阶段报错退出,检查/etc/vsftpd/vsftpd.conf FTP配置文件内容如下:

    image

  3. /etc/vsftpd/vsftpd.conf FTP配置文件中不要出现中文,删除中文。

  4. 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端

/根目录检查失败

  1. 远程连接源服务器。具体操作,请参见连接实例

  2. 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。

    查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:

    cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log

    其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。

    image

    root_scanner阶段报错退出,检查/根目录下内容如下:

    image

  3. 修改/根目录下文件名或路径名,不要出现utf-8不能解码的特殊符号。

  4. 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端

target_userspace_creator创建目标用户空间失败

  1. 远程连接源服务器。具体操作,请参见连接实例

  2. 执行以下命令,在SMC客户端目录下的日志目录查看报错信息。

    查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:

    cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log

    其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。

    image

    执行以下命令,日志中存在以下报错信息。

    cat /var/log/leapp/leapp-preupgrade.log

    image

    上述报错信息表明,因为系统内核版本和软件包版本相对较低,而且没有加载相应的overlay驱动,导致mount报错。

  3. 执行以下命令,将系统小版本更新到CentOS 7.9,并更新内核和一些软件包版本。

    yum update
  4. 重启源服务器后,执行以下命令,检查已加载overlay驱动。

    lsmod |grep overlay
  5. 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端