V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
IgniteWhite
V2EX  ›  macOS

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

  •  
  •   IgniteWhite · 2015-10-04 00:22:11 +08:00 · 8753 次点击
    这是一个创建于 3134 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 的根本原因。

    第 1 条附言  ·  2015-10-05 09:51:57 +08:00
    大神们莫嘲笑我是小白,虽然这是技术论坛,但是为新手用户排忧解难也是促进社区繁荣的做法呀~
    14 条回复    2015-10-04 15:02:32 +08:00
    squid157
        1
    squid157  
       2015-10-04 00:28:47 +08:00 via iPhone
    Mark 一下

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

    其实那个文件就是存储的内存镜像吧
    IgniteWhite
        9
    IgniteWhite  
    OP
       2015-10-04 10:49:38 +08:00
    @bookit 我也觉得是内存镜像。我有几次作大死,虚拟机跑 TCAD 的时候合盖,酸爽的不得了。
    squid157
        10
    squid157  
       2015-10-04 12:01:14 +08:00 via iPhone
    @MicrosoftAccount PD 那坑货,买完了还逼你看广告。另外除了 DirectX 性能比 VMware 强,实际也就那么回事。面向小白用户的软件一样。
    IgniteWhite
        11
    IgniteWhite  
    OP
       2015-10-04 12:51:28 +08:00
    @squid157 同感,除了少数几个只能在 Windows 平台运行的大软件,我的其他工作娱乐都在 OS X 完成,对 DirectX 完全没有需求。
    xuhaoyangx
        12
    xuhaoyangx  
       2015-10-04 12:56:41 +08:00 via iPhone
    其实方面遇到这种问题……我查都没查过,直接就去删了了事,然后继续用。没有觉得这是要分享的…地方。
    IgniteWhite
        13
    IgniteWhite  
    OP
       2015-10-04 13:21:06 +08:00
    @xuhaoyangx 就是删.vmem ?我查之前不懂这个。
    xuhaoyangx
        14
    xuhaoyangx  
       2015-10-04 15:02:32 +08:00 via iPhone   ❤️ 1
    @IgniteWhite 启动有问题,打不开,无非就那几个东西, lnk 和快照或者说是暂停时产生的文件,桌面毕竟不比 server 好外因太多,这些经常出现问题。其实用过 workbench 的我觉得这问题都会很快知道出自什么问题。个人建议少用任何形式的快照,备份状态节点尽量关机后快照,还可节省电量,盖盖子尽量让虚拟机保持运行状态,我记得 pd 有这样设置。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2199 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:49 · PVG 12:49 · LAX 21:49 · JFK 00:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.