公司同事强制关机,导致VMware里面虚拟机无法启动,报错:虚拟机在使用,请获取所有权,获取之后仍然说不能使用。

这篇博文记录一个VMWare虚拟机非正常关闭后无法启动的解决方案。我们中心的网站部署在一个Windows XP的虚拟机上,但是由于电源问题,那台虚拟机所在的实体物理机总是重启,有时候就会导致虚拟机系统还没有正常关闭就被迫关机了。机器重启后,虚拟机系统总是无法正常启动,弹出类似下面的错误:

Cannot open the disk ‘C:\VM-machines\Windows XP-001\Windows XP Professional-000001.vmdk’ or one of the snapshot disks it depends on. Reason: Failed to lock the file.

这是由于虚拟磁盘(.vmdk)本身有一个磁盘保护机制,为了防止多台虚拟机同时访问同一个虚拟磁盘(.vmdk)带来的数据丢失和性能削减方面的隐患,每次启动虚拟机的时候虚拟机会使用扩展名为.lck(磁盘锁)文件对虚拟磁盘(.vmdk)进行锁定保护。当虚拟机关闭时.lck(磁盘锁)文件自动删除。但是可能由于您非正常关闭虚拟机,这时虚拟机还没来得及删除您系统上的.lck(磁盘锁)文件,所以当下次您启动虚拟机的时候出现了上述错误。


解决办法一:

1、在VMware该虚拟机路径下的所有.lck文件和文件夹下删除或迁移至其它目录,一般就可以解决了。


2、如果再次启动VMware的Windows 

Vista系统失败,尝试右键虚拟机出错的系统->Settings->Hardware->Hard 

Disk->Utilities->Map->映射虚拟硬盘到Z:\


3、断开虚拟硬盘,重新加载,启动。系统就可以正常启动了。

  我使用的就是这种解决办法,可以正常启动虚拟机。


解决办法二:

使用记事本打开*.VMX文件上加上一行代码disk.locking = 

"FALSE",重新启动该虚拟机。这种方法我并没有测试过,在此做一记录以备后用。


参考自:http://blog.chinaunix.net/uid-29083488-id-3963618.html