阅读 195

VMware Ubuntu虚拟机挂起休眠,唤醒后连不上网的问题解决方案

运行环境:

主机操作系统:Windows 11 家庭中文版(64位)

虚拟机版本:VMware® Workstation 16 Pro 16.1.0

虚拟机操作系统:Ubuntu 20.04.3 LTS 64位

虚拟机网络适配器:NAT模式

问题起因:

昨晚在用Ubuntu虚拟机的时候,中途因为想用主机查点儿资料同时觉得电脑负载较大风扇太吵,就想先把虚拟机挂起来,过一会儿再用。结果挂起的时候,VMware弹出错误提示:

VMware Workstation 不可恢复错误: (vcpu-0),Exception 0xc0000005 (access violation) has occurred.
传输 (VMDB)错误 -14: Pipe connection has been broken。

等再次打开Ubuntu的时候,就连不上网了。打开ubuntu内置firefox后,点击网页,firefox显示无法连接服务器,无法上网。于是,苦逼的纠错之路就开始了:

纠错过程:

最初的时候,因为firefox报错显示是无法连接服务器,于是我认为是DNS服务器连接出了问题。按照网上搜到的办法,我只需把resolv.conf文件中的nameserver换成Google提供的8.8.8.8 [1],问题即可解决。尝试后,依然断网;将DNS地址换成百度提供的180.76.76.76,再次尝试,依然无法上网,遂放弃修改DNS服务器的想法。 之后,我改变纠错思路,开始考虑问题是否是出在VMware和Windows上面。一番必应后(拒绝无良竞价排名,从你我做起),发现上面所提到的vcpu-0报错是由Hyper-v与Vmware冲突引起的。众所周知,Win的Hyper-v与VMware的虚拟化技术冲突问题出现了不是一天两天了。之前在Win10系统中本已解决的冲突问题,如今在Win11系统中再次出现;而解决方案也很简单:把Hyper-v关掉就好了。于是我就以管理员身份,尝试从PowerShell关闭Hyper-v [2]:

bcdedit /set hypervisorlaunchtype off 复制代码

然并卵,关闭Hyper-v后重启虚拟机,发现依然上不去网。于是思路二也就被否掉了。之后我还参考[3], 去设置interfaces文件,然而依然没用。此时自信心跌落谷底,差点儿就打算删掉该虚拟机,重新开一个用。

解决方案:

最后让我重焕自信的是[4]中提供的方案。简单地说,该方案分为三步:

  1. 将虚拟机网络适配器改为主机模式;

  2. 在Ubuntu指令窗口中依次输入以下指令:

sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state  sudo service network-manager start 复制代码

  1. 将网络适配器换回NAT/桥接/其他模式

然后再打开firefox,发现网络恢复正常。

改进空间:

在纠错过程中,我提到了从PowerShell端关闭Hyper-v以解决虚拟机挂起后报错的问题;虽然该方法能成功地将vcpu-0那条报错纠正,然而传输 (VMDB)错误依然存在。这样的后果就是我的虚拟机依然无法正常挂起,每次挂起时就会报告VMDB错误,然后强行关机Ubuntu。当然,目前来说虚拟机挂起这个功能对我可有可无,该问题可以暂先拖一下,日后解决;然而,目前中文互联网上有关解决该VMDB错误的教程很少。因此说,如果有知道的同学,还请在评论区留言,分享该问题的解决思路。


作者:JurongMagpie
链接:https://juejin.cn/post/7057497897910140936


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐