immwind

长风

life, the programming and everything

在 macOS 中將 img 鏡像轉換成 vmdk 格式

每次想把網上下載的 img 鏡像轉換成 [[ESXi]] 使用的 vmdk 格式總是要另外開 [[Windows]] 電腦用 StarWind 軟體進行轉換,特別麻煩,因此問 [[ChatGPT]] 找了一個無需借助 Windows 的方式。

準備#

  1. 先通過 [[brew]] 安裝 qemu:
# 安裝完成後是使用 qemu-img 呼叫
brew install qemu
  1. 開啟 ESXi [[ssh]] 服務:
    1. 登入 ESXi
    2. 選擇「管理」
    3. 選擇「服務」
    4. 找到「TSM-SSH」並啟用

使用#

先把 img 鏡像轉換成 vmdk 格式:

qemu-img convert -f raw arpl.img -O vmdk arpl.vmdk

然後把轉換後的檔案通過 [[scp]] 上傳到 ESXi 中:

scp arpl.vmdk root@esxi.immwind.com:/vmfs/volumes/SSD/mirrors/

如果現在把剛剛上傳的 vmdk 鏡像添加到虛擬機作為系統盤啟動,ESXi 會出現報錯:

無法打開虛擬機 DSM 的電源。“sata0:0” 的磁盤類型 2 不受支援或無效。請確保磁盤已匯入。

當你以為是磁盤問題把磁盤類型改成 IDE 時,發現前面的報錯消失,能正常啟動了,先不要高興,驚喜在後面:

kernel is not a valid elf file

因為還需要再轉換一次,ESXi 才能正常識別。讓我們先通過 SSH 連接 ESXi: ssh root@esxi.immwind.com,然後執行:

# 進入之前鏡像上傳的位置
cd /vmfs/volumes/SSD/mirrors
# 執行轉換
vmkfstools -i arpl.vmdk synoboot.vmdk

預設情況下使用 vmkfstools 轉換後的硬碟類型是:厚置備,延遲置零,如果想改成 精簡置備,可以加上 -d thin 參數:

vmkfstools -i arpl.vmdk synoboot.vmdk -d thin

待轉換完成後,使用 ls 命令查看會發現除了 synoboot.vmdk 之外還多了一個 synoboot-flat.vmdk,不要誤刪了,這個才是真正存放資料的檔案。不過可以把之前上傳的 arpl.vmdk 檔案可以刪除,以免後續維護時造成混淆:

rm arpl.vmdk

現在可以把 synoboot.vmdk 加到虛擬機中作為系統盤啟動,和通過 StarWind V2V Image Converter 轉換的效果一樣。

資訊#

環境

  • HPE-ESXi-6.7.0-Update3
  • System: macOS 13.4.1

參考

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。