考试前一天,虚拟机崩掉了,拷贝了同专业同学的虚拟机,但却因为兼容性的问题卡住了两次,山穷水尽疑无路的时候,大神的帖子让我觉得柳暗花明又一村。
问题一:打开虚拟机时的“获取所有权”问题
这是因为虚拟机在运行时,会产生一些 *.lck 文件夹和文件,作为记录虚拟机与虚拟磁盘运行时的信息;类似于Windows上的tmp临时文件,或者Linux系统删的pid文件。
正常情况下,这类文件都是在虚拟机正常打开运行时,才会出现,虚拟机关闭后,这些文件也就不存在了。
但如果因为某些原因强制关闭正在使用的虚拟机或者电脑反应迟钝的问题会造成虚拟机的某个进程一直在后台启用,就会导致VMware Workstation虚拟机出现:该虚拟机似乎正在使用中的问题,无法启动这个虚拟机,让选择“获取所有权”,或者“取消”的选项。
我打开虚拟机文件所在的目录,看到加压缩的文件中确实有 *.lck 文件夹,将这个文件夹删除,释放之前未释放完毕的后台进程,然后再次打开虚拟机就恢复正常了。
如果实在不行,就重启一下电脑,就会恢复正常了。
问题二:兼容性问题
在解决了上面的问题,虚拟机可以正常加载到软件中了,但点击打开电源按钮时,又出现了另外的问题:
配置文件 .vmx 是由VMware产品创建,但该产品与此版 VMware workstation 不兼容,因此无法使用。
根据这个提示,初步怀疑是虚拟机创建时的版本和我安装的workstation版本不兼容,由于软件一般会有向下兼容的特性,所以虚拟机的版本可能要高于我的workstation版本。
我安装的workstation 版本是 VMware Workstation 12;通过 vmx文件查询VMware虚拟机文件的版本为14:
通过 vmx文件看, enmoedu 这两个虚拟机文件都是用的 workstation 11版本创建的。如果想用VMware workstation打开虚拟机的话,就是低版本的 workstation 12 软件,打开高版本 14 的虚拟机了。
一般情况下,在VMware的系列产品中,高版本的虚拟机硬件版本号是不能运行在低版本的虚拟化平台上的,workstation 11版本的虚拟机,是不能运行在这个版本之下的虚拟机软件上的。如果实在要运行的话,有两个解决方法:
情况一:如果还有VMware Workstation 14.0的环境,可以直接通过虚拟机右键菜单Manage—>Change Hardware Compatibility菜单修改为兼容VMware Workstation 12.0的硬件版本号。
情况二:如果现有环境没有VMware Workstation 14.0,可以通过下面的步骤快速完成硬件号的兼容转换
1.找到并通过记事本程序打开虚拟机的.vmx文件;
2.找到文件中的virtualHW.version = "14"字段,修改该字段为virtualHW.version = "12";
3.保存.vmx文件,并开启虚拟机。VMware Workstation 14.0的虚拟机可以在VMware Workstation 12.0的环境下运行。
注:修改vmx文件的操作仅通过本帖操作不过程及环境测试通过,并未经大量验证性测试,如在操作过程中碰到问题请回复并说明问题及报错。还是建议大家采用第一种方式(通过兼容版本做兼容性硬件版本转换);
由于我 VMware Workstation 最高版本是12,所以我就采用方法二,将虚拟机的 .vmx 文件中的 virtualHW.version 字段由 14修改为 "12";然后保存,再次打开电源按钮,就可以正常启动虚拟机了。