VMware虚拟机启动报错 Failed to power on virtual machine XXX. Failed to lock the file

由于公司停电,导致几十台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

上述方案对我们的问题都没有效果,最终自己摸索出了一套方案。

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 ,则没有找到那些场景下可以成功,那些场景不成功。 

 

在出现这个问题的时候,网上找到的资料也比较少,希望这篇文章可以对碰到问题的人提供些帮助。

猜你喜欢

转载自www.linuxidc.com/Linux/2019-01/156563.htm