虛擬硬碟的 vmdk 描述檔不見了

北城以北 提交于 2020-11-20 07:15:32

虛擬硬碟的 vmdk 描述檔不見了

虛擬機器的硬碟檔案可分成 .vmdk 的硬碟描述檔,以及真正存放資料的 -flat.vmdk 硬碟檔,當 -flat.vmdk 不見了,那就只能從備份如 vDP 來還原它,如果只是 .vmdk 描述檔不見了,但 *-flat.vmdk 還在,那還可以救得回來。

.vmdk 檔案不見了,VM 開機時在 Task 會出現 File .vmdk was not found 的錯誤訊息,如下圖:

虛擬硬碟的 vmdk 描述檔不見了

看到這種錯誤訊息就令人大為緊張,趕快連線到 ESXi ,進到放置虛擬機的目錄中,用 ls -al 看看檔案發生什麼事了:

虛擬硬碟的 vmdk 描述檔不見了

還好雖然 vmdk 描述檔不見了,但 *-flat.vmdk 實體硬碟檔還在,那就將 vmdk 描述檔重建回來:

一、先確認 xxxx-flat.vmdk 的容量大小:

#ls -al xxxx-flat.vmdk

虛擬硬碟的 vmdk 描述檔不見了

二、抓 *.vmx 檔案來看,以確認虛擬硬碟 SCSI 控制器的規格,在這個例子中它的型號是 lsilogic:
#cat xxxx.vmx | grep virtualDev

虛擬硬碟的 vmdk 描述檔不見了

三、利用 vmkfstools 工具建立 vmdk 描述檔:
#vmkfstools -c 1234567890 -a lsilogic -d thin temp.vmdk
上述 -c「123456789」要填入真實的 xxxx-flat.vmdk 的容量大小,-a「lsilogic」要填入從 *.vmx 查出來的 SCSI 控制器型號,而 -d thin 則是指先建立 thin provision 的虛擬硬碟,暫時的虛擬硬碟檔名為 temp.vmdk,建立好後再用 ls -al 看檔案是否存在。

虛擬硬碟的 vmdk 描述檔不見了

四、將建立好的 temp.vmdk 改名成相對應的名稱:
#mv temp.vmdk xxxx.vmdk

虛擬硬碟的 vmdk 描述檔不見了

五、修改 xxxx.vmdk 描述檔:
#vi xxxx.vmdk

虛擬硬碟的 vmdk 描述檔不見了

六、將原本的「”temp-flat.vmdk”」修改成對應的 *-flat.vmdk 名稱,並確認當初那顆不見了的原始虛擬硬碟格式設定是否為 thin provision,如果是則「ddb.thinProvisioned = “1’」這行保留,如果不是則整行刪除:

虛擬硬碟的 vmdk 描述檔不見了

七、刪除 tmp-flat.vmdk:
#rm temp-flat.vmdk

虛擬硬碟的 vmdk 描述檔不見了

十、確認一下虛擬硬碟檔是否一致,如果一致會出現 Disk chain is consistent 訊息:
#vmkfstools -e xxxx.vmdk

虛擬硬碟的 vmdk 描述檔不見了

十一、這時就可以正常開機了

虛擬硬碟的 vmdk 描述檔不見了

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!