由於公司停電,導致幾十臺vmWare虛擬機器啟動報錯。 錯誤:Failed to power on virtual machine XXX. Failed to lock the file Click here for more details. 有些場景也會出現下麵的錯誤:Failed to po ...
由於公司停電,導致幾十臺vmWare虛擬機器啟動報錯。
錯誤:Failed to power on virtual machine XXX. Failed to lock the file Click here for more details.
有些場景也會出現下麵的錯誤:Failed to power on virtual machine XXX. File system specific implementation of LookupAndOpen[file] failed Click here for more details.
原因分析:
這次出錯的虛擬機器都是在 vmware ESXi 6.5 版本上的, 同樣的的5.5版本上的虛擬機沒有出現問題。
這次出錯的虛擬機都是設置的自動啟動的,就是如果來電會自動啟動。
這次斷電來電也是不穩定,其中來了幾次點但是不久就又斷電了。估計出錯和啟動過程中又斷電有關。
問題解決:
這次問題的解決不完美,只是減少了損失,期間尋找了很多方案。網上找到的資料和方案如下:
https://kb.vmware.com/s/article/1007969?lang=zh_CN
https://communities.vmware.com/thread/589155
https://www.nico-maas.de/?p=1923
上述方案對我們的問題都沒有效果,最終自己摸索出了一套方案。
1.將虛擬機從系統中 Unregister, 關閉虛擬機,在虛擬機上右鍵 Unregister
2.通過 SSH 登入 宿主機,修改測試機器的目錄名為一個新名稱。
mv OLDFODER NEWFODER
如果知道測試機器的目錄,可以在 Unregister 之前查看磁碟的 DiskFile 位置確定,如下:
Edit settings -->Hard Disk
3. 在 SSH 中通過 grep -i filename *.vmx 查看系統當前使用的是那個磁碟。
4. 刪除 NEWFODER 下的 vmx 尾碼文件。
vmx文件為虛擬機的配置文件,儲存著根據虛擬機嚮導或虛擬機編輯器對虛擬機進行的所有配置。
5.重新創建虛擬機,重新創建的時候,名稱不要和以前的一樣,新起一個名稱,但是虛擬機器的Compatibility,Guest OS family,Guest OS version 要和之前的虛擬機一樣。
要刪除自動產生的磁碟,選擇 Existing hard disk. 選擇 NEWFODER 下的磁碟。
如果之前的虛機有做過SnapShot ,則NEWFODER 下會有多個磁碟可以選擇。這時就是賭運氣的時候,可以嘗試選擇步驟3中的找到的磁碟,如果運氣好的話,可以正常啟動,這樣就解決了虛機不能啟動的問題。
如果運氣不好,不能啟動,這時就可以選擇其它的盤,來丟掉最後的一個snapshort 盤。
我在實踐的過程中發現,如果只有一個vmdk文件,就是沒有做過snapshot,都可以正常回覆,如果多個vmdk文件,就是做過snapshot ,則沒有找到那些場景下可以成功,那些場景不成功。
在出現這個問題的時候,網上找到的資料也比較少,希望這篇文章可以對碰到問題的人提供些幫助。