運行環境:
主機操作系統: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
3. 將網絡適配器換回NAT/橋接/其他模式
然后再打開firefox,發現網絡恢復正常。
改進空間:
在糾錯過程中,我提到了從PowerShell端關閉Hyper-v以解決虛擬機掛起后報錯的問題;雖然該方法能成功地將vcpu-0那條報錯糾正,然而傳輸 (VMDB)錯誤依然存在。這樣的后果就是我的虛擬機依然無法正常掛起,每次掛起時就會報告VMDB錯誤,然后強行關機Ubuntu。當然,目前來說虛擬機掛起這個功能對我可有可無,該問題可以暫先拖一下,日后解決;然而,目前中文互聯網上有關解決該VMDB錯誤的教程很少。因此說,如果有知道的同學,還請在評論區留言,分享該問題的解決思路。
參考鏈接:
[1]. https://www.cnblogs.com/lxjshuju/p/7133599.html
[2]. https://blog.csdn.net/m0_43406494/article/details/121065440
[3]. https://blog.csdn.net/CaoMei_HuaCha/article/details/84846845