重建 VM 的定義檔 (myvm.vmdk)

    內容表格
    1. 1. 說明
    2. 2. 重建 myvm.vmdk

    版本為 02:03, 29 Jul 2026

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    說明

    一個完整的 VM 必須包含有兩個檔案:

    1. myvm.vmdk : VM 定義檔,可直接編輯
    2. myvm-flat.vmdk : 實際的 VM 映像檔
       

    如果有發生 VM 啟動失敗,而原因是 VM 定義檔遺失。
    以 esxconsole.vmdk 為例 (esxconsole 是 ESX 主機在開機時必須要使用的虛擬系統)

    解決方法有二:

    1. 從備份檔或另一部有類似硬體且安裝類似 ESX 版本的機器,取得同一個檔案
    2. 如果無法執行第一項,可以重新建立它
       

    官方教學: Recreating a missing virtual machine disk (VMDK) descriptor file (1002511)

    重建 myvm.vmdk

    切換到 VM 的檔案目錄

    # cd /vmfs/volumes/4d9eab94-5b35e5a5.../esxconsole-4d9eaabc-6870-.../
    # ls -l
    
    -rw------- 1 root root 7973371904 Mar 12 11:48 esxconsole-flat.vmdk
    
    # vmkfstools -c 7973371904 -a buslogic -d thin temp.vmdk
    # rm temp-flat.vmdk
    # mv temp.vmdk esxconsole.vmdk
    

    Note:

    vmkfstools -c <temp-flat.vmdk 的 size> -a <虛擬裝置類型 buslogic 或 lsilogic> -d thin temp.vmdk
    -d  thin 這可以減少產生 temp-flat.vmdk 所耗用的空間

    虛擬裝置類型,如果是一般 ESX 內所建立的 VM 很有可能是 lsilogic,如果是 ESX 核心所用的 esxconsole,就可能是 buslogic。

     

    編輯 esxconsole.vmdk:

    # Disk DescriptorFile
    version=1
    CID=fb183c20
    parentCID=ffffffff
    createType="vmfs"

    # Extent description
    RW 8388608 VMFS "esxconsole-flat.vmdk" <== 編輯

    # The Disk Data Base
    #DDB

    ddb.virtualHWVersion = "4"
    ddb.geometry.cylinders = "522"
    ddb.geometry.heads = "255"
    ddb.geometry.sectors = "63"
    ddb.adapterType = "buslogic"
    ddb.thinProvisioned = "1"
    <== 刪除
    Powered by MindTouch Core