ECS僅支援匯入RAW、VHD和QCOW2格式的鏡像檔案。如果您的鏡像檔案是其他格式,需要轉換格式後再匯入。本文介紹如何通過開源的轉換工具qemu-img轉換鏡像檔案的格式。
約束限制
qemu-img工具支援RAW、QCOW2、QCOW1、VMDK、VDI、VHD、VHDX或QED格式的鏡像相互轉換。
qemu-img工具不支援直接將ISO鏡像轉換為RAW、VHD和QCOW2格式。
如需轉換,建議先建立一個虛擬機器,並使用ISO鏡像來引導虛擬機器啟動作業系統。然後在虛擬機器中安裝作業系統,最後將虛擬機器的磁碟匯出為RAW、VHD和QCOW2格式的虛擬磁碟鏡像。具體操作,請參見建立虛擬機器並安裝作業系統(Linux)或者建立虛擬機器並安裝作業系統(Windows)。
將VHD格式轉換為其他格式或者將其他檔案格式轉換為VHD格式時,需使用
vpc
參數代替VHD格式,否則可能造成qemu-img工具無法識別VHD鏡像格式導致轉換失敗,類似報錯資訊如下。
操作步驟
本地為Windows作業系統
您可以按照以下步驟在Windows作業系統上安裝qemu-img工具並轉換鏡像檔案格式。
以下操作以Windows Server 2016作業系統為例,不同版本作業系統的操作路徑可能不同,請您根據實際環境進行操作。
安裝qemu-img工具。
下載並安裝qemu-img工具,以下操作以安裝路徑是C:\Program Files\qemu為例。
為qemu-img工具配置環境變數。
在Windows Server案頭,按右鍵表徵圖,然後單擊系統。
在左側導覽列,單擊進階系統設定。
在系統屬性對話方塊裡,單擊進階頁簽,並單擊環境變數。
在環境變數對話方塊裡,在系統變數部分找到Path,並單擊編輯。如果Path變數不存在,單擊建立。
添加系統變數值。
編輯系統變數
單擊建立,添加
C:\Program Files\qemu
變數值。建立系統變數
在變數名處輸入
Path
,在變數值處輸入C:\Program Files\qemu
。
測試環境變數是否配置成功。
開啟Windows命令列視窗。
運行
qemu-img --help
命令。如果回顯資訊出現qemu-img工具的版本資訊,則表示環境變數配置完成。
轉換鏡像格式。
在命令列視窗運行以下命令,切換到源鏡像檔案所在目錄,例如
C:\Program Files\ConvertImage
。cd C:\Program Files\ConvertImage
運行以下命令,轉換鏡像檔案格式。
以下轉換命令分別以QCOW2轉換為RAW格式、VHD轉換為RAW格式為例,請您根據實際鏡像格式進行替換。
QCOW2轉換為RAW格式
qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw
其中:
-f
(可選):參數值qcow2
表示源鏡像檔案的格式是QCOW2。說明您也可以省略
-f
及其參數值,直接執行qemu-img convert -O raw centos.qcow2 centos.raw
轉換。-O
(必須大寫):參數值依次表示目標鏡像格式、源鏡像檔案名稱和目標檔案名稱。該樣本表示將源鏡像檔案centos.qcow2轉換為RAW格式,並指定檔案名稱為centos.raw。
VHD轉換為RAW格式
qemu-img convert -f vpc -O raw centos.vhd centos.raw
其中:
-f
(可選):參數值vpc
表示源鏡像檔案的格式是VHD格式。說明您也可以省略
-f
及其參數值,直接執行qemu-img convert -O raw centos.vhd centos.raw
轉換。-O
(必須大寫):參數值依次表示目標鏡像格式、源鏡像檔案名稱和目標檔案名稱。該樣本表示將源鏡像檔案centos.vhd轉換為RAW格式,並指定檔案名稱為centos.raw。重要如果是將其他格式轉換為VHD格式,目標檔案格式需使用
vpc
替代。例如將RAW格式轉換為VHD格式,樣本命令:qemu-img convert -f raw -O vpc centos.raw centos.vhd
。
擷取轉換後的鏡像檔案。
轉換後的鏡像檔案儲存在源鏡像檔案所在的目錄下,本樣本為
C:\Program Files\ConvertImage
,您可以前往該目錄擷取。您也可以運行
qemu-img info <目標檔案名稱>
命令查看轉換後的鏡像檔案的詳細資料。
本地為Linux作業系統
您可以按照以下步驟在Linux作業系統上安裝qemu-img工具並轉換鏡像檔案格式。
以下操作以Alibaba Cloud Linux 3及Ubuntu作業系統為例進行鏡像格式轉換。不同作業系統版本可能會有區別,請您根據實際環境進行操作。
運行以下命令,安裝qemu-img工具。
Alibaba Cloud Linux 3
sudo yum install qemu-img
說明如果在安裝qemu-img時報錯,且沒有明確提示缺少哪些依賴庫,您可以根據cloud-init的requirements.txt檔案裡顯示的庫,並運行
sudo pip install -r requirements.txt
命令安裝所有依賴庫。Ubuntu
sudo apt-get install qemu-utils
說明如果出現
Unable to locate package qemu-utils
錯誤,請重新運行以下命令安裝qemu-img工具。sudo apt-get update #更新包列表 sudo apt-get install qemu-utils #安裝qemu-img工具
運行以下命令,轉換鏡像檔案格式。
以下轉換命令分別以QCOW2轉換為RAW格式、VHD轉換為RAW格式為例,請您根據實際鏡像格式進行替換。
QCOW2轉換為RAW格式
qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw
其中:
-f
(可選):參數值qcow2
表示源鏡像檔案的格式是QCOW2。說明您也可以省略
-f
及其參數值,直接執行qemu-img convert -O raw centos.qcow2 centos.raw
轉換。-O
(必須大寫):參數值依次表示目標鏡像格式、源鏡像檔案名稱和目標檔案名稱。該樣本表示將源鏡像檔案centos.qcow2轉換為RAW格式,並指定檔案名稱為centos.raw。
VHD轉換為RAW格式
qemu-img convert -f vpc -O raw centos.vhd centos.raw
其中:
-f
(可選):參數值vpc
表示源鏡像檔案的格式是VHD格式。說明您也可以省略
-f
及其參數值,直接執行qemu-img convert -O raw centos.vhd centos.raw
轉換。-O
(必須大寫):參數值依次表示目標鏡像格式、源鏡像檔案名稱和目標檔案名稱。該樣本表示將源鏡像檔案centos.vhd轉換為RAW格式,並指定檔案名稱為centos.raw。重要如果是將其他格式轉換為VHD格式,目標檔案格式需使用
vpc
替代。例如將RAW格式轉換為VHD格式,樣本命令:qemu-img convert -f raw -O vpc centos.raw centos.vhd
。
擷取轉換後的鏡像檔案。
轉換後的鏡像檔案儲存在源鏡像檔案所在的目錄下,您可以前往該目錄擷取。
您也可以運行
qemu-img info <目標檔案名稱>
命令查看轉換後的鏡像檔案的詳細資料。
後續步驟
鏡像檔案格式完成轉換後,您需要將鏡像檔案上傳至OSS Bucket,以便後續匯入自訂鏡像。具體操作,請參見上傳鏡像檔案至OSS。
相關文檔
qemu-img是用於建立、轉換和管理虛擬機器鏡像的命令列工具。它是QEMU(Quick EMUlator)專案的一部分,除了轉換鏡像格式以外,還支援建立鏡像、調整虛擬機器鏡像大小等多種功能。更多資訊,請參見QEMU官網。
qemu-img工具本身並不直接支援OVA (Open Virtualization Appliance) 和OVF (Open Virtualization Format) 格式。因為qemu-img工具主要針對磁碟映像檔案的建立、轉換和管理,而OVA和OVF是虛擬化軟體包封裝格式,它們包括設定檔、描述檔案以及磁碟映像。OVA和OVF格式由DMTF (Distributed Management Task Force) 維護。更多資訊,請參見DMTF官網。