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官網。