前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一招恢复开不起来的Vmware虚拟机(附py脚本文件)

一招恢复开不起来的Vmware虚拟机(附py脚本文件)

作者头像
剑指工控
发布2023-02-28 15:28:09
1.6K1
发布2023-02-28 15:28:09
举报
文章被收录于专栏:剑指工控
JZGKCHINA

工控技术分享平台

相信做工控的很多工程师都在使用Vmware WorkStation虚拟机,虚拟机也给我们带来了很多的便利,可以同时运行很多的操作系统,你可以左手操作Rockwell Automation的PLC系统,右手调试SIEMENS 的 PCS7 DCS控制系统,比起曾经的双系统切换方便了很多,但是如果某一天你写了一个月的PLC程序,早上一到单位,发现虚拟机开不起来了,心情无法形容,今天我们的工程师王晓威同学就发生了这么一幕;早上一来一脸愁容,询问下才告知写了好久的程序,今天虚拟机开不起来了,里面有Studio5000程序还有FactoryTalk view SE程序;最终经过一顿猛如虎的操作,虚拟机恢复了挂起状态;成功开启到了昨天下班前的状态;

下面我们就将虚拟机的恢复过程给经常使用Vmware Workstation的工程师进行分享:当你开启虚拟机的时候弹出如下提示:

提示信息为:无法打开虚拟机“Studio5000” (H:\虚拟机\studio5000\Studio5000.vmx):

未找到文件。

是否从库中移除“studio5000” ?

这时请勿点击“移除”按钮,请点击取消按钮;这时虚拟机Studio5000的状态变成了红色的×,我们进入到H:\虚拟机\studio5000的路径下查找,没有studio5000.vmx的文件,我们通过Everything在整个磁盘查找,也没有该文件。

经过和王晓威同学沟通,说是昨天此移动硬盘在其他机器上开启过,因此分析可能是这个时候把studio5000.vmx文件丢失了。

那么为什么vmx文件丢失虚拟机就无法启动了?这里我们将vmWare的几个关键系统文件做个说明:

vmx文件:虚拟系统配置文件,虚拟机启动时先读取该文件信息,然后打开这个文件以启动虚拟系统。

vmem文件:虚拟内存文件,类似于Windows系统的pagefile文件。当虚拟系统执行关机操作后,vmem文件消失,但如果虚拟机挂起关闭时,该文件依旧在系统内不消失。

vmdk文件:虚拟机的一个虚拟磁盘文件,Vmware将其分割为多个文件。

vmss文件:执行挂起操作后产生的快照文件。

nvram文件:虚拟机非易变RAM。虚拟机的BIOS信息存在此文件。

下面内容为本文重点,如果vmx文件丢失,虚拟机启动不起来,怎么办?

Step1:找到虚拟机路径下的vmware.log日志文件,本文路径为:”H:\虚拟机\studio5000”,通过记事本或者写字板打开

Step2:打开vmware.log文件后找到DICT---Configuration这一行,从该行开始往下的内容全部是vmx文件配置信息,我们从这一行开始复制,一直复制到DICT---USER DEFAULTS这一行上面一行。

Step3:新建文本文档,将其重命名为studio5000.vmx (此处需要根据虚拟机名称进行命名)。

Step4:将Step2中复制的内容,全部粘贴到新建的studio5000.vmx文件内并保存。

Step5:删除文件中日期到DICT部分内容:

比如:文件第一行:

2022-11-29T09:55:14.440+08:00| vmx| I125: DICT displayName = "studio5000"

修改为:

displayName = "studio5000"

修改后的studio5000.vmx文件如下图片:

其中注意如下内容:

uestOS = "windows9-64"

nvram = "studio5000.nvram"

firmware = "efi"

scsi0:0.fileName = "studio5000-000011.vmdk"

说明如果有快照:这里并非studio5000.vmdk,要根据vmware.log文件中一点内容不动的修改,不可以擅作主张。

checkpoint.vmState = "studio5000-3e3b0f43.vmss"

checkpoint.vmState.readOnly = "FALSE"

snapshot.action = "autoCommit"

vm.genid = "-3322382931506441315"

vm.genidX = "-6432544295494043537"

以上五句可以恢复到虚拟机挂起前的状态,同样不可以根据自己理解修改,需按照vmware.log文件复制,不可以遗漏任何一个字符,包括“-” 号。

截止这里我们的主要工作就做完了,最后一步:

Step6:将修改好的studio5000.vmx文件复制到虚拟机路径下:”H:\虚拟机\studio5000”

在Vmware Workstation中双击studio5000,我们发现前面的红色x没有了,而且直接进入了挂起状态如下:

文末彩蛋

本文中在修改studio5000.vmx文件过程中由于复制过来时行数比较多,一行一行的删除日期到DICT部分内容较多,本人写了一小段py脚本来快速执行;本文中的vmware.log和studio5000.vmx文件也有分享哦!

留言+转发+进剑指工控技术群

获取文章中的三个分享文件

未进群的小伙伴,

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档