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/
目录是空的也可以一并移除。