【轉】斷電或強制退出後VMware虛擬機器出現The virtual machine appears to be in use無法啟動問題解決
一、產生問題的原理
到相應的虛擬機器目錄下刪除%虛擬機器名字%.vmx.lck資料夾或者其中的檔案即可
遇見:
我們開啟工作管理員,會發現vmware.exe和vmware-vmx.exe兩個重要的程序。其中vmware-vmx.exe是主程式,虛擬機器在這個程序下執行;VMware.exe是外殼程式,負責顯示vmware-vmx.exe中執行的虛擬系統並解釋傳送各種命令和操作,是我們最常用的VMware使用者介面,該程式可重入即同時開啟多個。
因為VMware
Workstation是可重入的,為了避免同一個虛擬系統同時被多個VMware.exe開啟操作,造成錯誤,所以每個VMware開啟相應的虛擬機器選項卡時都會先檢查該虛擬機器根目錄下是否有*.vmx.lck的資料夾並驗證其中的檔案
碼),那麼將無法開啟該虛擬機器的選項卡,並出現下面的錯誤提示:
Take Ownership之後會出現以下提示:
如果沒有相應的合法檔案,就會在該虛擬機器根目錄下生成*.vmx.lck資料夾,並在該資料夾下生成一個包含uuid的*.lck檔案,開啟虛擬機器選項卡,並從主程式接收顯示資訊。
這個*.lck檔案可以用記事本編輯。裡面是uuid={一串字母數字},uuid是通用唯一識別碼 (Universally Unique Identifier),它的特點就是唯一性。為的是同時只有一個vmware.exe能接受主程式的顯示,並對虛擬機器操作。lck是lock的縮寫,即對請求資源的鎖定。
VMware 虛擬機器在執行時會在相應的虛擬機器目錄下生成三個檔案*.vmx.lck,*.vmdk.lck,*.vmem.lck資料夾,裡面包含以*.lck命名的檔案。 其中的*.vmx.lck是伴隨vmware.exe中選項卡的開啟時生成的;另外兩個是關於虛擬磁碟和記憶體的使用的,它們伴隨著虛擬系統的執行而產生。如果關閉VMware.exe讓虛擬機器在後臺執行,*.vmx.lck資料夾會消失另外兩個則不會。
在VMware.exe中開啟某個虛擬機器選項卡時,會短暫生成*.vmsd.lck的資料夾,估計這個是在最初傳送資料(send
data)時生成的,防止多個外殼程式同時請求開啟虛擬機器。
二、解決方法
虛擬器非正常斷電後容易出現"This virtual machine appears to be in use"的錯誤而不能正常引導,解決辦法是刪除VMWare虛擬機器安裝目錄下面的所有的.lck目錄和檔案,後重新開啟,如還出錯,需整機重啟。
PS: 這個lck檔案是虛擬機器的磁碟鎖檔案,我們知道虛擬機器的磁碟與主機的磁碟是共存的,只是由於採用特定的虛擬機制,使二者互不影響。在使用虛擬機器時,vmware就會生成若干磁碟鎖檔案,用以保護當前虛擬機器佔用的磁碟不會被主機或者其它虛擬機器佔用修改。在正常關閉虛擬機器後,vmware會自動刪除這個鎖。可是少數情況下,例如主機突然崩潰、非正常關機等,vmware就不能夠刪除lck磁碟鎖檔案。所以下次再啟動虛擬機器時,vmware還會誤認為需要啟動的虛擬系統已經正在執行,就出現了上面的this virtual machine appears to be in use 的錯誤。刪除該檔案後就能夠恢復正常。
原文轉自:http://chenyujing1234.blog.163.com/blog/static/18603741201312772956207/