VMware
本文介紹的是最新的主要 VMware 版本,意思是 VMware Workstation Pro 和 Player 17、16、15、14 和 12.5。
你可能也會想了解下 /安裝 Arch Linux 為虛擬機。
安裝[編輯 | 編輯原始碼]
您可以使用 VMware 捆綁包或軟件包 vmware-workstationAUR 進行安裝。 如果在 x86_64 上使用 VMware Workstation,則首選後者。
VMware 捆綁包[編輯 | 編輯原始碼]
安裝正確的依賴:
- fuse2包 - 用於 vmware-vmblock-fuse
- gtkmm包 - 用於圖形界面
- linux-headers包 - 用於模塊編譯
- ncurses包 (ncurses5-compat-libsAUR 用於更老版本的Vmware) -
--console
安裝選項所需的依賴 - libcanberra包 - 用於事件聲音
- pcsclite包
- gcc包 - 用於構建 vmware 內核模塊
- make包 - 用於構建 vmware 內核模塊
- libaio包 - 用於構建 vmware 內核模塊
並下載最新版的 VMware Workstation Pro 或者 Player。
開始安裝:
# sh VMware-edition-version.release.architecture.bundle
--eulas-agreed
- 跳過 EULA--console
- 使用控制台UI.--custom
- 允許改變安裝目錄,例如到:/usr/local
(確保在 #systemd 服務中更新vmware-usbarbitrator.service
路徑)。-I
,--ignore-errors
- 忽略致命錯誤。--set-setting=vmware-workstation serialNumber XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
- 在安裝過程中設定許可證(適用於腳本化安裝)。--required
- 只詢問必答選項(搭配--eulas-agreed
和--console
選項可進行靜默安裝)。
對於 System service scripts directory
一項,請使用 /etc/init.d
(即默認值)。
"No rc*.d style init script directories"
報錯,由於 Arch 使用 systemd,因此可以忽略該報錯。# vmware-modconfig --console --install-all
如果出現 Unable to install all modules
報錯,請參考 #無法加載 vmmon 模塊 一節。
為 x86_64 構建的軟件包[編輯 | 編輯原始碼]
vmware-workstationAUR、vmware-workstation16AUR、vmware-workstation15AUR、vmware-workstation14AUR、vmware-workstation12AUR 或 vmware-workstation11AUR 分別適用於 VMware Workstation 的版本 17、16、15、14、12 和 11,請根據需要選擇安裝。還需要為已安裝的內核安裝適當的頭文件包:例如 linux-headers包 或 linux-lts-headers包。
對於 vmware-workstationAUR,請先啟動 vmware-networks-configuration.service
來生成 /etc/vmware/networking
文件。
然後,根據需要啟用以下一些服務:
vmware-networks.service
用於虛擬機網絡訪問(否則您將收到錯誤could no connect 'ethernet 0' to virtual network
並且您將無法使用 vmware-netcfg)vmware-usbarbitrator.service
用於將 USB 設備連接到虛擬機vmware-hostd.service
用於共享虛擬機(從版本 16 起不可用)
最後,加載 VMware 模塊:
# modprobe -a vmw_vmci vmmon
如果加載時長時間無響應,請參考 #無法加載 vmmon 模塊。
配置[編輯 | 編輯原始碼]
內核模塊[編輯 | 編輯原始碼]
VMware Workstation 16.0 默認支持內核 5.8。 本文提到的舊版本及其原生支持的內核如下:15.5(最高為 5.4 的內核)、14.1.7 (4.18) 和 12.5.9 (4.12)。
對於 VMware 捆綁包版本,可以從 vmware-host-modules GitHub 存儲庫中找到針對最新內核構建 VMware 主機模塊所需的補丁集合。有關 VMware Workstation 12.5.5 及更高版本的最新模塊安裝說明,請參閱存儲庫中的 INSTALL 安裝文檔。
systemd 服務[編輯 | 編輯原始碼]
(可選)除直接使用 /etc/init.d/vmware
(start|stop|status|restart
)和 /usr/bin/vmware-usbarbitrator
管理服務外,你也可以使用 .service
文件(vmware-workstationAUR 也提供了有部分修改的 vmware-usbarbitrator 和 vmware-networks):
/etc/systemd/system/vmware.service
[Unit] Description=VMware daemon Requires=vmware-usbarbitrator.service Before=vmware-usbarbitrator.service After=network.target [Service] ExecStart=/etc/init.d/vmware start ExecStop=/etc/init.d/vmware stop PIDFile=/var/lock/subsys/vmware RemainAfterExit=yes [Install] WantedBy=multi-user.target
/etc/systemd/system/vmware-usbarbitrator.service
[Unit] Description=VMware USB Arbitrator Requires=vmware.service After=vmware.service [Service] ExecStart=/usr/bin/vmware-usbarbitrator ExecStop=/usr/bin/vmware-usbarbitrator --kill RemainAfterExit=yes [Install] WantedBy=multi-user.target
添加該服務以啟用網絡連接:
/etc/systemd/system/vmware-networks-server.service
[Unit] Description=VMware Networks Wants=vmware-networks-configuration.service After=vmware-networks-configuration.service [Service] Type=forking ExecStartPre=-/sbin/modprobe vmnet ExecStart=/usr/bin/vmware-networks --start ExecStop=/usr/bin/vmware-networks --stop [Install] WantedBy=multi-user.target
如果要從其他 Workstation Server 控制台連接到你的 VMware Workstation,則也一併添加該服務:
/etc/systemd/system/vmware-workstation-server.service
[Unit] Description=VMware Workstation Server Requires=vmware.service After=vmware.service [Service] ExecStart=/etc/init.d/vmware-workstation-server start ExecStop=/etc/init.d/vmware-workstation-server stop PIDFile=/var/lock/subsys/vmware-workstation-server RemainAfterExit=yes [Install] WantedBy=multi-user.target
完成後將啟用這些服務。
Workstation Server 服務[編輯 | 編輯原始碼]
儘管已經被重命名為 vmware-wssc-adminTool
,vmware-workstation-server.service
還是會在它的命令鏈中調用 wssc-adminTool
。
為防止服務啟動出現問題,可通過軟鏈接進行修復:
# ln -s wssc-adminTool /usr/lib/vmware/bin/vmware-wssc-adminTool
運行程序[編輯 | 編輯原始碼]
打開 VMware Workstation Pro:
$ vmware
打開 VMware Player:
$ vmplayer
技巧和訣竅[編輯 | 編輯原始碼]
輸入 Workstation Pro 許可證密鑰[編輯 | 編輯原始碼]
從終端輸入[編輯 | 編輯原始碼]
# /usr/lib/vmware/bin/vmware-vmx-debug --new-sn XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
其中 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
是許可證密鑰
-debug
二進制文件會遇到無效許可證時提示用戶。從 GUI 輸入[編輯 | 編輯原始碼]
如果上述方法不起效,您可以嘗試:
# /usr/lib/vmware/bin/vmware-enter-serial
提取 VMware BIOS[編輯 | 編輯原始碼]
$ objcopy /usr/lib/vmware/bin/vmware-vmx -O binary -j bios440 --set-section-flags bios440=a bios440.rom.Z $ perl -e 'use Compress::Zlib; my $v; read STDIN, $v, '$(stat -c%s "./bios440.rom.Z")'; $v = uncompress($v); print $v;' < bios440.rom.Z > bios440.rom
提取安裝程序[編輯 | 編輯原始碼]
要查看安裝程序 .bundle
中的內容:
$ sh VMware-edition-version.release.architecture.bundle --extract /tmp/vmware-bundle/
使用修改後的 BIOS[編輯 | 編輯原始碼]
如果您決定修改提取的 BIOS,您可以通過將其移動到以下位置讓虛擬機使用它:~/vmware/虛擬機名稱
:
$ mv bios440.rom ~/vmware/虚拟机名称/
然後將名稱添加到 虛擬機名稱.vmx
文件:
~/vmware/虛擬機名稱/虛擬機名稱.vmx
bios440.filename = "bios440.rom"
在 Intel、Optimus 和 AMD 上啟用 3D 圖形加速[編輯 | 編輯原始碼]
由於 3D 圖形加速的性能或穩定性原因,有些圖形驅動默認被禁用。在啟用 Accelerate 3D graphics 後,可能會出現如下日誌:
Disabling 3D on this host due to presence of Mesa DRI driver. Set mks.gl.allowBlacklistedDrivers = TRUE to override.
日誌提到的設置對應的配置文件為 ~/.vmware/preferences
。
VMware Workstation 16.2 從 OpenGL 改用到了 Vulkan,因此設置會有些不同。如果你的驅動不受支持,日誌會顯示:
mks Vulkan Renderer: Only the AMDVLK driver is supported at this time. mks Vulkan Renderer: No supported Vulkan device/driver found (See mks.vk.allowUnsupportedDevices or mks.vk.forceDevice configuration options).
如果你的驅動被禁用,你得把 mks.vk.allowUnsupportedDevices = "TRUE"
添加到 ~/.vmware/preferences
或者換一個支持的驅動 - 如果不確定要進行哪種操作,就看看虛擬機目錄裡的 vmware.log
。
mks.gl.allowBlacklistedDrivers = "TRUE"
inside the .vmx
file for the specific virtual machine as well, for 3D acceleration with intel
drivers to be enabled.在主機掛起/休眠之前掛起虛擬機[編輯 | 編輯原始碼]
創建一個可執行文件:
/usr/lib/systemd/system-sleep/vmware_suspend_all.sh
#!/bin/bash set -eu if [[ $# -ne 2 ]]; then echo "Usage: $0 <period> <action>" exit 1 fi period=$1 action=$2 echo "vmware system-sleep hook argv: ${period} ${action}" if ! command -v vmrun &>/dev/null; then echo "command not found: vmrun" fi if [[ "${period}" = "pre" ]]; then readarray -t vms < <(vmrun list | tail -n +2) echo "Number of running VMs: ${#vms[@]}" if [[ ${#vms[@]} -eq 0 ]]; then exit fi for vm in "${vms[@]}"; do echo -n "Suspending ${vm}... " vmrun suspend "${vm}" echo "done" done sleep 1 else echo "Nothing to do" fi
See also Power management/Suspend and hibernate#Hooks in /usr/lib/systemd/system-sleep, suspend all virtual machines with vmrun and Support for hibernation.
系統提速技巧[編輯 | 編輯原始碼]
參考性能優化。
禁用透明大頁[編輯 | 編輯原始碼]
If you notice the guest and/or the host frequently freezing when running a VM, you may want to disable transparent hugepages. To disable them for the current session, run (on the host):
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
To make the change persistent across boots, add the kernel parameter transparent_hugepage=never
.
You can also use madvise
instead of never
to still allow applications that are optimized for transparent hugepages to obtain the performance benefits[1]. This does the same for vmware as above.
確保直接訪問內存[編輯 | 編輯原始碼]
默認情況下,VMware 會將虛擬機系統的內存寫入到硬盤上的文件內。如果你確定內存空間足夠,可以添加以下設置到虛擬機的 .vmx
文件內以確保虛機系統直接寫入到內存中:
Virtual_machine_name.vmx
MemTrimRate = "0" sched.mem.pshare.enable = "FALSE" prefvmx.useRecommendedLockedMemSize = "TRUE" mainmem.backing = "swap"
性能提示[編輯 | 編輯原始碼]
要提升虛擬機的性能,可以參考下列技巧:
准虛擬化 SCSI 適配器[編輯 | 編輯原始碼]
VMware 准虛擬化 SCSI(PVSCSI)適配器是用於 VMware ESXi 的高性能存儲適配器,可以達到更高的吞吐量和更低 CPU 占用。PVSCSI 適配器適用於需要高 I/O 吞吐量的軟硬件環境。
SCSI 適配器類型 VMware Paravirtual
可在虛擬機設置中應用。
如果在虛擬機設置中沒有這些選項,也還是可以啟用准虛擬化 SCSI 適配器。首先,通過修改 mkinitcpio.conf
確保准虛擬化 SCSI 適配器包含在內核鏡像中:
/etc/mkinitcpio.conf
... MODULES=(... vmw_pvscsi) ...
關閉虛擬機,並修改 SCSI 適配器:修改 .vmx
中的對應項為如下:
scsi0.virtualDev = "pvscsi"
准虛擬化網絡適配器[編輯 | 編輯原始碼]
VMware 為客戶機系統提供了多種網絡適配器。默認適配器通常為 e1000
,它會模擬一張 Intel 82545EM 千兆以太網卡。該 Intel 網卡通常兼容包括 Arch 在內的多數操作系統的內置驅動。
為了獲得更高性能和更多特性(例如多隊列支持),可以使用 VMware 原生的 vmxnet3
網絡適配器。
Arch 的默認安裝方式已包含了 vmxnet3
內核模塊。通過 mkinitcpio 啟用(或者自動檢測啟用;可通過執行 lsmod | grep vmxnet3
檢查是否已加載模塊)後,關機並按如下步驟在 .vmx 中修改網絡適配器類型:
ethernet0.virtualDev = "vmxnet3"
在修改網絡適配器後,需要修改網絡和 dhcpcd 設置以使用新網卡名稱和 MAC 地址。
# dhcpcd new_interface_name # systemctl enable dhcpcd@new_interface_name.service
可通過執行 ip link
來獲取新的網卡名稱。
虛擬機設置[編輯 | 編輯原始碼]
下列設置以主機內存占用為代價降低硬盤 I/O,可以提升虛擬機響應度。Vmware 的 KB1008885[失效鏈接 2024-10-12 ⓘ] 提供了下列優化設置:
mainMem.useNamedFile = "FALSE" MemTrimRate = "0" prefvmx.useRecommendedLockedMemSize = "TRUE" MemAllowAutoScaleDown = "FALSE" sched.mem.pshare.enable = "FALSE"
- mainMem.useNamedFile:僅適用於 Windows 主機,適用於關閉虛擬機時出現高硬盤占用率的情況,該選項會阻止 VMware 創建 .vmem 文件。在 Linux 主機上請使用 mainmem.backing = "swap"。
- MemTrimRate:該選項阻止虛擬機釋放的內存同時被主機釋放掉。
- prefvmx.useRecommendedLockedMemSize:該選項似乎沒有具體功能解釋;其作用似乎為防止主機交換虛擬機的部分內存。
- MemAllowAutoScaleDown:防止 VMware 在無法分配足夠內存的情況下調整虛擬機的內存大小。
- sched.mem.pshare.enable:如果同時運行了多個虛擬機,VMware 會試圖在多個虛擬機間尋找並共享相同的內存頁。可能產生高 I/O 負載。
也可以在 VMware workstation 的配置窗口內添加如下設置(Edit -> Preferences... -> Memory/Priority):
prefvmx.minVmMemPct = "100" mainMem.partialLazySave = "FALSE" mainMem.partialLazyRestore = "FALSE"
- prefvmx.minVmMemPct:在主機上為虛擬機預留的內存大小百分比。更低的值會允許為虛擬機分配比主機系統可用大小更多的內存。但請注意,該情況很可能會導致高硬盤占用率。如果主機上的內存足夠,建議保留該值為 100。
- mainMem.partialLazySave 和 mainMem.partialLazyRestore:這兩個選項會防止虛擬機在掛起時創建部分快照。在使用這兩個選項時,虛擬機掛起耗時會稍微增加,但會降低 VMware 存儲這些數據產生的磁盤占用率。
解難答疑[編輯 | 編輯原始碼]
Kernel headers for version x.y-zzzz were not found. If you installed them[...][編輯 | 編輯原始碼]
安裝你使用內核所對應的 headers,如 linux包 對應linux-headers包
無法加載 vmmon 模塊[編輯 | 編輯原始碼]
根據 VMware 社區中的描述,需要禁用安全啟動才能加載 vmmon
模塊。
無法識別 USB 設備[編輯 | 編輯原始碼]
如果沒有使用 systemd 服務來自動處理服務,就需要每次都以根用戶手動啟動 vmware-usbarbitrator
。
啟動方法:
# vmware-usbarbitrator
停止方法:
# vmware-usbarbitrator --kill
遠程連接 VMware 時提示登錄憑據錯誤[編輯 | 編輯原始碼]
可以通過 vmware-workstation-server
服務遠程管理 VMware Workstation 已共享的虛擬機,但是,vmware-authd
服務中的 PAM 配置問題會導致 "incorrect username/password"
報錯出現。要修復該問題,需參考如下編輯 /etc/pam.d/vmware-authd
文件:
/etc/pam.d/vmware-authd
#%PAM-1.0 auth required pam_unix.so account required pam_unix.so password required pam_permit.so session required pam_unix.so
然後重啟 vmware
systemd 服務。
你現在可以使用安裝過程提供的憑據連接到服務器了。
ALSA 輸出問題[編輯 | 編輯原始碼]
要修復音頻質量問題或啟用正確的 HD 音頻輸出,首先執行:
$ aplay -L
如果要在虛擬機中使用 5.1 聲道,請找到 surround51:CARD=vendor_name,DEV=num
;如果遇到音頻質量問題,請找到 front:CARD=vendor_name,DEV=num
。最後,將名稱填入到 .vmx
內:
~/vmware/Virtual_machine_name/Virtual_machine_name.vmx
sound.fileName="surround51:CARD=Live,DEV=0" sound.autodetect="FALSE"
另外,需要禁用 OSS 模擬。
基於內核的虛擬機(KVM)尚在運行[編輯 | 編輯原始碼]
可以通過如下方法在啟動時禁用 KVM
:
/etc/modprobe.d/vmware.conf
blacklist kvm blacklist kvm-amd # For AMD CPUs blacklist kvm-intel # For Intel CPUs
kvm
模塊還會加載,且你使用的設備帶有 Intel 集成顯卡(i915,i965),那有可能需要同時在內核命令行選項中將 kvmgt
模塊添加到黑名單。詳細信息請查閱內核模塊#使用內核命令行_2。在 HiDPI 顯示器上,VMware 應用 UI 上的圖標及間距沒有正確縮放[編輯 | 編輯原始碼]
參閱 HiDPI#VMware。
Wayland 問題[編輯 | 編輯原始碼]
GNOME 下鍵盤捕獲無效[編輯 | 編輯原始碼]
VMWare Player/Workstation 17.5(及更舊版本)中存在問題:具體信息
要允許用戶界面捕獲鍵盤:
$ gsettings set org.gnome.mutter.wayland xwayland-allow-grabs "true" $ gsettings set org.gnome.mutter.wayland xwayland-grab-access-rules "['vmplayer','vmware-vmx','mksSandbox']"
要修復 super 鍵未被捕獲問題:
- 使用
Win+Alt+Tab
取代Alt+Tab
- 使用
Ctrl+Esc
顯示開始菜單
模塊問題[編輯 | 編輯原始碼]
找不到 /dev/vmmon[編輯 | 編輯原始碼]
完整報錯如下:
Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module 'vmmon' is loaded.
這表示至少 vmmon
模塊沒有被加載。自動加載方法可參考 #systemd 服務一節。
另一種可能是由 5.18 版本內核以及 11 代和更新 Intel 處理器的間接分支跟蹤功能導致。
在這種情況下,將 ibt=off
添加到你的內核參數中。具體信息請參考 [2]。
找不到 /dev/vmci[編輯 | 編輯原始碼]
完整報錯如下:
Failed to open device "/dev/vmci": No such file or directory Please make sure that the kernel module 'vmci' is loaded.
首先嘗試手動加載內核:
# modprobe -a vmw_vmci
也可以試試重新編譯 VMware 內核模塊:
# vmware-modconfig --console --install-all
無法啟動安裝包[編輯 | 編輯原始碼]
如果啟動 .bundle
後會回到輸入提示,那你的 VMware 安裝器版本可能已經過時或損壞,需要將其移除(也可以參考#卸載一節):
# rm -r /etc/vmware-installer/
用戶界面初始化失敗[編輯 | 編輯原始碼]
你可能會見到如下報錯:
Extracting VMware Installer...done. No protocol specified No protocol specified User interface initialization failed. Exiting. Check the log for details.
該錯誤可以通過安裝 ncurses5-compat-libsAUR 依賴或臨時允許根訪問權限解決:
$ xhost + $ sudo ./<vmware filename>.bundle $ xhost -
無法啟動 VMware[編輯 | 編輯原始碼]
CPUIDEarly 模塊上電失敗[編輯 | 編輯原始碼]
版本 14 比 12 有更嚴格的 CPU 需求。如果你嘗試在不兼容的 CPU 上啟動虛擬機,會出現如下報錯:
This host does not support virtualizing real mode. The Intel "VMX Unrestricted Guest" feature is necessary to run this virtual machine on an Intel processor.
解決方法為卸載版本 14,並重新安裝版本 12(vmware-workstation12AUR)。
如果 VMware 平時可用,但忽然出現該錯誤,那有可能是在暖/軟啟動或系統掛起後導致的。請嘗試進行一次冷啟動(關機並重新開機)。
舊 Intel 微碼導致的分段錯誤[編輯 | 編輯原始碼]
舊 Intel 微碼可能會在啟動時導致如下分段報錯:
/usr/bin/vmware: line 31: 4941 Segmentation fault "$BINDIR"/vmware-modconfig --appname="VMware Workstation" --icon="vmware-workstation"
微碼更新方法請參考微碼一文。
vmplayer/vmware 版本 14 啟動失敗[編輯 | 編輯原始碼]
在 librsvg
版本 2:2.44.0 及以上的系統中,/tmp/vmware-<id>
位置下的日誌文件會顯示數條如下報錯:
appLoader| I125+ undefined symbol
一種臨時處理方法為將 librsvg
降級到更早版本;更好的方法為強制 VMware 使用其自帶的 librsvg
:
# export LD_LIBRARY_PATH=/lib/vmware/lib/librsvg-2.so.2:$LD_LIBRARY_PATH
VMware 同時提供了一個 VMWARE_USE_SHIPPED_LIBS
變量:
$ env VMWARE_USE_SHIPPED_LIBS=1 vmware
從 12.5.4 版本開始無法啟動 vmplayer/vmware[編輯 | 編輯原始碼]
參考 [3],臨時解決方法為將 libpng
降級到 1.6.28-1 版本,並將其寫入到 /etc/pacman.conf 中的 IgnorePkg
參數:
更簡單的方法為讓 VMware 使用系統提供的 zlib,而不是其自帶的版本:
# cd /usr/lib/vmware/lib/libz.so.1 # mv libz.so.1 libz.so.1.old # ln -s /usr/lib/libz.so.1 .
無法啟動 12.5.3 至 12.5.5 版本的 vmplayer/vmware[編輯 | 編輯原始碼]
似乎是 /usr/lib/vmware/lib/libstdc++.so.6/libstdc++.so.6
文件缺少 CXXABI_1.3.8
導致的問題。
如果系統安裝了 gcc-libs包,那就已有了該庫文件。因此,可以嘗試將其移除,然後 vmplayer 會轉而使用 gcc-libs 提供的文件。以根用戶權限執行:
# mv /usr/lib/vmware/lib/libstdc++.so.6/libstdc++.so.6 /usr/lib/vmware/lib/libstdc++.so.6/libstdc++.so.6.bak
另一種繞過方法為:
# export VMWARE_USE_SHIPPED_LIBS='yes'
啟動 vmware 12 後進程閃退,未能加載圖形界面[編輯 | 編輯原始碼]
Registered bug at Mageia, but it seems that there are no error messages shown in terminal with arch. When inspecting the logs, which are in /tmp/vmware-<id>
, there are VMWARE_SHIPPED_LIBS_LIST is not set
, VMWARE_SYSTEM_LIBS_LIST is not set
, VMWARE_USE_SHIPPED_LIBS is not set
, VMWARE_USE_SYSTEM_LIBS is not set
issues. Process simply terminates with Unable to execute /usr/lib/vmware/bin/vmware-modconfig.
after vmware or vmplayer is executed. Solution is the same, as root do:
# mv /etc/vmware/icu/icudt44l.dat /etc/vmware/icu/icudt44l.dat.bak
Also there is a workaround:
# export VMWARE_USE_SHIPPED_LIBS='yes'
Despite setting the VMWARE_USE_SHIPPED_LIBS variable, VMWare may still fail to find certain libraries. An example is the libfontconfig.so.1 library. Check vmware logs in the tmp directory to see which libraries are still not found. Copy them to the appropriate path with libraries existing on the system:
# cp /usr/lib/libfontconfig.so.1 /usr/lib/vmware/lib/libfontconfig.so.1/
Instead of copying all these files manually, you may want to try exporting an additional setting:
# export VMWARE_USE_SYSTEM_LIBS='yes'
On systems with fontconfig version 2.13.0 and above, it may be needed to force VMware to use the shipped libfontconfig file instead of the newer system file. In such case, it is also necessary to provide a shared object library file libexpat.so.0
for the shipped fontconfig. This applies for at least VMware version 12.5.9. As root do:
# ln -s /usr/lib/libexpat.so /usr/lib/vmware/lib/libfontconfig.so.1/libexpat.so.0 # export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libfontconfig.so.1:$LD_LIBRARY_PATH
虛擬機問題[編輯 | 編輯原始碼]
無法為客戶機下載 VMware Tools[編輯 | 編輯原始碼]
可以通過訪問 VMware 存儲庫手動下載工具:
訪問 "application name / version / build ID / linux / packages/" 路徑並下載對應的工具。
使用如下命令解壓:
$ tar -xvf vmware-tools-name-version-buildID.x86_64.component.tar
然後使用 VMware 安裝器進行安裝:
# vmware-installer --install-component=/path/vmware-tools-name-version-buildID.x86_64.component
如果以上方法無效,可以嘗試安裝 ncurses5-compat-libsAUR。
虛擬機的系統時間錯誤或無法啟動:"[...]timeTracker_user.c:234 bugNr=148722"[編輯 | 編輯原始碼]
This is due to incomplete[失效鏈接 2024-10-12 ⓘ] support of power management features (Intel SpeedStep and AMD PowerNow!/Cool'n'Quiet) in VMware Linux that vary the CPU frequency. In March 2012, with the release of linux 3.3-1 the maximum frequency Performance governor was replaced with the dynamic Ondemand. When the host CPU frequency changes, the Guest system clock runs too quickly or too slowly, but may also render the whole Guest unbootable.
To prevent this, the maximum host CPU frequency can be specified, and Time Stamp Counter (TSC) disabled, in the global configuration:
/etc/vmware/config
host.cpukHz = "X" # The maximum speed in KHz, e.g. 3GHz is "3000000". host.noTSC = "TRUE" # Keep the Guest system clock accurate even when ptsc.noTSC = "TRUE" # the time stamp counter (TSC) is slow.
系統重啟後客戶機丟失網絡連接[編輯 | 編輯原始碼]
該問題很可能由 vmnet
未被加載導致 [4]。關於自動加載的內容請參考 #systemd 服務部分。
鼠標問題[編輯 | 編輯原始碼]
超出 5 個後的鼠標按鍵無法使用[編輯 | 編輯原始碼]
如果你鼠標的拇指或其它額外按鈕無法正常工作,可以設置客戶機使用高級鼠標。
客戶機上的鼠標滾輪表現怪異[編輯 | 編輯原始碼]
This is related to the current Xorg keyboard layout on Host system. Keep primary layout (e.g., English) selected on Host while working on Guest.
嵌套虛擬機沒有 IP 地址及網絡連接[編輯 | 編輯原始碼]
該問題與混雜模式有關。根據標準 Linux 實踐,該模式僅能由根用戶啟用。為了繞過該限制,需要修改對應網絡設備的權限。
對單個用戶組給予權限:
# chgrp group /dev/vmnetX # chmod g+rw /dev/vmnetX
對所有用戶給予權限:
# chmod a+rw /dev/vmnetX
卸載[編輯 | 編輯原始碼]
你必須先知道你安裝的產品的名稱(無論是 vmware-workstation
還是 vmware-player
)。要列出已安裝的產品:
$ vmware-installer -l
然後進行卸載 (使用 --required
跳過了確認步驟):
# vmware-installer -u product --required
--console
使用圖形界面記得禁用並移除服務:
# rm /etc/systemd/system/vmware.service # rm /etc/systemd/system/vmware-usbarbitrator.service
再看看 /usr/lib/modules/kernel_name/misc/
模塊目錄下有沒有未移除的內核模塊,然後如果 /etc/init.d/
目錄是空的也可以一併移除。