本文主要介紹在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/stablenodejs、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用戶端。

