問題原因 vmware installer 不能正確識別GCC 7 (f26使用 Red Hat GCC 7.1.1) [VMware已經發佈新版本14.0.0,支持fedora26,但記憶體管理部分有問題,好像是linux內核有了變動,造成開啟虛擬機提示記憶體錯誤或虛擬機關閉後不會釋放記憶體空間] 解決 ...
問題原因
vmware-installer 不能正確識別GCC 7 (f26使用 Red Hat GCC 7.1.1)
[VMware已經發佈新版本14.0.0,支持fedora26,但記憶體管理部分有問題,好像是linux內核有了變動,造成開啟虛擬機提示記憶體錯誤或虛擬機關閉後不會釋放記憶體空間]
解決
下載對應版本內核模塊(已打補丁):
https://github.com/mkubecek/vmware-host-modules
拷貝對應文件夾覆蓋vmware原有源代碼目錄
- 強制vmware使用老版本GCC鏈接庫
- 手動編譯新版本VMware內核模塊
流程記錄
系統環境
Linux 4.12.8-300.fc26.x86_64 #1 SMP Thu Aug 17 15:30:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
更新鏈接庫(先切換到/usr/lib/vmware/lib下)
cp -afv /usr/lib64/libgio-2.0.so.0.5200.3 libgio-2.0.so.0/libgio-2.0.so.0 cp -afv /usr/lib64/libglib-2.0.so.0.5200.3 libglib-2.0.so.0/libglib-2.0.so.0 cp -afv /usr/lib64/libgmodule-2.0.so.0.5200.3 libgmodule-2.0.so.0/libgmodule-2.0.so.0 cp -afv /usr/lib64/libgobject-2.0.so.0.5200.3 libgobject-2.0.so.0/libgobject-2.0.so.0 cp -afv /usr/lib64/libgthread-2.0.so.0.5200.3 libgthread-2.0.so.0/libgthread-2.0.so.0 cp -r /usr/lib/vmware-installer/2.1.0/lib/lib/libexpat.so.0 /usr/lib/vmware/lib cd /usr/lib/vmware/lib/libz.so.1 mv -i libz.so.1 libz.so.1.old ln -s /usr/lib64/libz.so.1
此時console下運行vmware會提示獲取GCC信息錯誤,手工編譯內核模塊
cd /usr/lib/vmware/modules/source # 如果手動patch過老版本vmware,一定刪除過去的文件重新解壓 rm -rf vmmon-only/ rm -rf vmnet-only/ tar xvf vmmon.tar tar xvf vmnet.tar cd vmmon-only make cd ../vmnet-only make mkdir /lib/modules/4.12.8-300.fc26.x86_64/misc cp /usr/lib/vmware/modules/source/vmmon-only/vmmon.ko /lib/modules/4.12.8-300.fc26.x86_64/misc cp /usr/lib/vmware/modules/source/vmnet-only/vmnet.ko /lib/modules/4.12.8-300.fc26.x86_64/misc depmod -a # 不放心可以手動載入內核模塊 modprobe vmmon modprobe vmnet
成功運行vmware,一定確認可以運行虛擬機,如出現開啟虛擬機宿主機重啟,一定fallback然後重新安裝vmware!
附: 卸載vmware的方法
vmware-installer -u vmware-workstation --console
參考:
http://rglinuxtech.com/?p=1992
https://communities.vmware.com/thread/568806
https://github.com/mkubecek/vmware-host-modules