本文主要介紹在Linux作業系統遷移時,遷移任務出錯提示“failed to leapp preupgrade”資訊時的問題描述、問題原因及其解決方案。
問題描述
在使用SMC作業系統時,遷移任務出錯提示“failed to leapp preupgrade”資訊。
解決方案
軟體包依賴關係檢查失敗
遠端連線原始伺服器。具體操作,請參見串連執行個體。
執行以下命令,在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
掛載配置。
問題排查解決後,運行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.conf
FTP設定檔內容如下:

/etc/vsftpd/vsftpd.conf
FTP設定檔中不要出現中文,刪除中文。
問題排查解決後,運行SMC用戶端再試。具體操作,請參見運行SMC用戶端。
/根目錄檢查失敗
遠端連線原始伺服器。具體操作,請參見串連執行個體。
執行以下命令,在SMC用戶端目錄下的日誌目錄查看報錯資訊。
查看SMC用戶端目錄的具體操作,請參見查看SMC用戶端。樣本命令如下:
cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log
其中:2.7.6是SMC用戶端的版本號碼,您需要根據實際情況進行替換。

root_scanner階段報錯退出,檢查/根目錄下內容如下:

修改/根目錄下檔案名稱或路徑名,不要出現utf-8不能解碼的特殊符號。
問題排查解決後,運行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,並更新核心和一些軟體包版本。
重啟原始伺服器後,執行以下命令,檢查已載入overlay驅動。
問題排查解決後,運行SMC用戶端再試。具體操作,請參見運行SMC用戶端。