VMware Fusion 日常大问题经验总结: internal error

2015-10-04 00:22:11 +08:00
 IgniteWhite

internal error是个很蛋疼的问题,这里总结一下两年来使用 VMware Fusion 遇到的 internal error 和解决方法,日后方便他人 Google 百度什么的,也期望有经验的朋友讲一讲自己的看法。

TL;DR: 删除所有.vmem 文件。

使用 VMF 的时候,如果虚拟机没有关机,而且正在运行程序,你把笔记本盖子合上了,或者将虚拟机 suspend (挂起),那么你下次开启虚拟机的时候,常常会遇到“ internal error ”的错误。其结果就是你开不了机了。

如果你不去修改文件系统,在 GUI 层面的解决方法是 restore 你之前保存过的系统快照。系统快照有两种:关机状态的快照和挂起状态的快照。就我的经验来说,挂起快照是无法重载的(重载进度条跑到还剩一点的时候提示 internal error ),需要加载关机状态的快照。这种方法的缺点显然是整个系统将恢复到快照的时间点,如果时间太久远了,许多有用的更改会丢失。

最近在虚拟机上跑仿真,然后那个虚拟机的 Windows 死机了。我直接强退了 VMF ,重新开虚拟机的时候遇到了 internal error 。这次遇到了更严重的问题:所有快照都无法重载,即使是关机状态的快照也会重载失败,提示 internal error 。

这一段只是心理吐槽:好了,我进入了焦头烂额的状态。虚拟机里的东西具有学术重要性,重装系统的话,里面的资料和仿真系统都没有了。 Google 了一下,各类帖子很杂,讨论中各种套路都有。纵使楼主 GRE 考出来了,看了一堆带闲扯的帖子还是恶心地想吐。在申请季碰到个这事简直要哭了。

有不少人指出,先找到虚拟机系统所在的文件,比如我的是 Windows 7 x64 ,然后 Show Package Contents 进去,删除所有.lck 后缀的文件夹(是的是文件夹),这些文件夹含有虚拟磁盘分区和快照等等的日志文件。我不清楚为什么好多人推荐这个方法,我试了一下并没有卵用。

也有人尝试修复.vmdk 虚拟磁盘分区,我没有看到成功的记录。

最终找到了解决办法:仍然进到虚拟机系统所在的文件里,然后删除一切.vmem 后缀的文件。接着在任何一种状态下重启虚拟机,软件会提示说找不到快照云云,要 discard 当前状态。点击确定,虚拟机系统正常重启,高兴哭了。

重启后,系统的状态是你最近保存设置的状态,除了正在运行的程序结果没有保存,一切都是最新的状态。也就是说,.vmem 文件保存的不是虚拟机系统,而是完整的程序运行状态。我的感受是, VMware Fusion 的快照功能并没有必要恢复整个运行状态,以这种一不小心就会 internal error 的尿性,还不如只做已保存设置的快照。

根据我的经验,.vmem 文件除了每个快照有一个之外,你无论是以 OS X 睡眠还是以关机/挂起等方式退出虚拟机的时候, VMF 都会有一个记录你最近使用状态的.vmem 文件。该类文件保存的时候很容易出问题, VMF 并没有保证保存.vmem 文件时虚拟机不占用内存的机制。这大概是造成花式 internal errors 的根本原因。

8861 次点击
所在节点    macOS
14 条回复
squid157
2015-10-04 00:28:47 +08:00
Mark 一下

目前为止没遇到过 因为我合盖子之前十有八九会关闭虚拟机
IgniteWhite
2015-10-04 00:32:34 +08:00
@squid157 是呀,好习惯。
wkdhf233
2015-10-04 00:40:05 +08:00
经常开着虚拟机合盖,从没遇到错误。。
即使是虚拟机里,重要资料还是和网盘同步一下吧
IgniteWhite
2015-10-04 00:50:32 +08:00
@wkdhf233 资料好备份,主要是有好多电路和物理的 CAD 软件,当初配置各种麻烦……
MicrosoftAccount
2015-10-04 00:52:50 +08:00
mac 还是买 PD 吧
adadada
2015-10-04 00:53:58 +08:00
我一般都是建一个 share folder ,然后在虚拟机里编辑的文件和数据都存在这个 share folder 里。这样就算虚拟机完全挂了启不起来了,还是能从 host 这边读到已经保存的内容。现在遇到的唯一问题:在 linux 虚拟机里无法建立 share folder 上的硬链接。
IgniteWhite
2015-10-04 09:47:46 +08:00
@adadada 谢谢分享!学习了
bookit
2015-10-04 10:37:02 +08:00
无数次合盖,都没出过事。

其实那个文件就是存储的内存镜像吧
IgniteWhite
2015-10-04 10:49:38 +08:00
@bookit 我也觉得是内存镜像。我有几次作大死,虚拟机跑 TCAD 的时候合盖,酸爽的不得了。
squid157
2015-10-04 12:01:14 +08:00
@MicrosoftAccount PD 那坑货,买完了还逼你看广告。另外除了 DirectX 性能比 VMware 强,实际也就那么回事。面向小白用户的软件一样。
IgniteWhite
2015-10-04 12:51:28 +08:00
@squid157 同感,除了少数几个只能在 Windows 平台运行的大软件,我的其他工作娱乐都在 OS X 完成,对 DirectX 完全没有需求。
xuhaoyangx
2015-10-04 12:56:41 +08:00
其实方面遇到这种问题……我查都没查过,直接就去删了了事,然后继续用。没有觉得这是要分享的…地方。
IgniteWhite
2015-10-04 13:21:06 +08:00
@xuhaoyangx 就是删.vmem ?我查之前不懂这个。
xuhaoyangx
2015-10-04 15:02:32 +08:00
@IgniteWhite 启动有问题,打不开,无非就那几个东西, lnk 和快照或者说是暂停时产生的文件,桌面毕竟不比 server 好外因太多,这些经常出现问题。其实用过 workbench 的我觉得这问题都会很快知道出自什么问题。个人建议少用任何形式的快照,备份状态节点尽量关机后快照,还可节省电量,盖盖子尽量让虚拟机保持运行状态,我记得 pd 有这样设置。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/225480

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX