VMware (简体中文)
相关文章
本文是关于在 Arch 中安装 VMware,你也许想寻找的是 在 VMware 中安装 Arch Linux
Contents
- 1 安装
- 2 配置
- 3 启动程序
- 4 提示和技巧
-
5 疑难解答
- 5.1 /dev/vmmon not found
- 5.2 Kernel headers for version 4.x-xxxx were not found. If you installed them[...]
- 5.3 无法识别 USB 设备
- 5.4 The installer fails to start
- 5.5 无法为Guests下载VMware Tools
- 5.6 Incorrect login/password when trying to access VMware remotely
- 5.7 Issues with ALSA output
- 5.8 Kernel-based Virtual Machine (KVM) is running
- 5.9 Segmentation fault at startup due to old Intel microcode
- 5.10 Guests have incorrect system clocks or are unable to boot: "[...]timeTracker_user.c:234 bugNr=148722"
- 5.11 Guests系统启动后网络不可用
- 6 卸载
安装
安装 依赖项:
-
fuse - the
vmware-vmblock-fuse
service is favored over thevmblock
module, which is not built anymore without disabling fuse in the kernel - gtkmm - for the GUI
- linux-headers - 作为模块编译
- ncurses5-compat-libsAUR - needed by at least the installer
下载最新的VMware Workstation Pro或Player (或者beta版本,当可用时).
开始安装:
# sh VMware-edition-version.release.architecture.bundle
将System service scripts directory
设置为/etc/init.d
(默认值)
配置
VMware module模块补丁和安装
VMware Workstation 12 支持内核 4.2.
Systemd 服务
”(可选)“ 你也可以创建一个 .service
文件 (也可以用AUR中的vmware-systemd-servicesAUR包),而不是直接使用 /etc/init.d/vmware
(start|stop|status|restart
) and /usr/bin/vmware-usbarbitrator
来管理服务:
/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
之后您就可以在启动时enable它们.
启动程序
启动VMware Workstation Pro:
$ vmware
或VMware Player (Pro):
$ vmplayer
提示和技巧
输入Workstation Pro许可密钥
从终端
# /usr/lib/vmware/bin/vmware-vmx-debug --new-sn XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
处是你的许可密钥。
从 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
Extracting the installer
To view the contents of the installer .bundle
:
$ sh VMware-edition-version.release.architecture.bundle --extract /tmp/vmware-bundle/
使用修改过的 BIOS
If and when you decide to modify the extracted BIOS you can make your virtual machine use it by moving it to ~/vmware/<Virtual machine name>
:
$ mv bios440.rom ~/vmware/<Virtual machine name>/
然后在 <Virtual machine name>.vmx
文件中加入:
~/vmware/<Virtual machine name>/<Virtual machine name>.vmx
bios440.filename = "bios440.rom"
写时复制 (CoW)
CoW comes with some advantages, but can negatively affect performance with large files that have small random writes (例如数据库文件和虚拟机镜像):
$ chattr +C ~/vmware/<Virtual machine name>/<Virtual machine name>.vmx
使用 DKMS 管理模块
The Dynamic Kernel Module Support (DKMS) can be used to manage Workstation modules and to void from re-running vmware-modconfig
each time the kernel changes. The following example uses a custom Makefile
to compile and install the modules through vmware-modconfig
. Afterwards they are removed from the current kernel tree.
准备
首先从 Community repository 安装 dkms:
# pacman -S dkms
然后为 Makefile
和 dkms.conf
创建源目录:
# mkdir /usr/src/vmware-modules-11/
Build configuration
Fetch the files from Git or use the ones below.
1) 使用 Git
$ cd /tmp $ git clone git://github.com/bawaaaaah/dkms-workstation.git $ sed -i 's/9/11/' dkms-workstation/dkms.conf # cp dkms-workstation/Makefile dkms-workstation/dkms.conf /usr/src/vmware-modules-11/
2) 手动安装
The dkms.conf
describes the module names and the compilation/installation procedure. AUTOINSTALL="yes"
tells the modules to be recompiled/installed automatically each time:
/usr/src/vmware-modules-11/dkms.conf
PACKAGE_NAME="vmware-modules" PACKAGE_VERSION="11" MAKE[0]="make all" CLEAN="make clean" BUILT_MODULE_NAME[0]="vmmon" BUILT_MODULE_LOCATION[0]="modules" BUILT_MODULE_NAME[1]="vmnet" BUILT_MODULE_LOCATION[1]="modules" BUILT_MODULE_NAME[2]="vmblock" BUILT_MODULE_LOCATION[2]="modules" BUILT_MODULE_NAME[3]="vmci" BUILT_MODULE_LOCATION[3]="modules" BUILT_MODULE_NAME[4]="vsock" BUILT_MODULE_LOCATION[4]="modules" DEST_MODULE_LOCATION[0]="/extra/vmware" DEST_MODULE_LOCATION[1]="/extra/vmware" DEST_MODULE_LOCATION[2]="/extra/vmware" DEST_MODULE_LOCATION[3]="/extra/vmware" DEST_MODULE_LOCATION[4]="/extra/vmware" AUTOINSTALL="yes"
and now the Makefile
:
/usr/src/vmware-modules-11/Makefile
KERNEL := $(KERNELRELEASE) HEADERS := /usr/lib/modules/$(KERNEL)/build/include GCC := $(shell vmware-modconfig --console --get-gcc) DEST := /lib/modules/$(KERNEL)/vmware TARGETS := vmmon vmnet vmblock vmci vsock LOCAL_MODULES := $(addsuffix .ko, $(TARGETS)) all: $(LOCAL_MODULES) mkdir -p modules/ mv *.ko modules/ rm -rf $(DEST) depmod $(HEADERS)/linux/version.h: ln -s $(HEADERS)/generated/uapi/linux/version.h $(HEADERS)/linux/version.h %.ko: $(HEADERS)/linux/version.h vmware-modconfig --console --build-mod -k $(KERNEL) $* $(GCC) $(HEADERS) vmware/ cp -f $(DEST)/$@ . clean: rm -rf modules/
安装
The modules can then be installed with:
# dkms install vmware-modules/11 -k $(uname -r)
Enable 3D graphics on Intel and Optimus
Some graphics drivers are blacklisted by default, due to poor and/or unstable 3D acceleration. After enabling Accelerate 3D graphics, the log may show something like:
Disabling 3D on this host due to presence of Mesa DRI driver. Set mks.gl.allowBlacklistedDrivers = TRUE to override.
This means the following:
~/.vmware/preferences
mks.gl.allowBlacklistedDrivers = TRUE
疑难解答
/dev/vmmon not found
完整的错误是:
Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon' is loaded.
这意味着未加载vmmon
模块.参见#Systemd 服务章节
Kernel headers for version 4.x-xxxx were not found. If you installed them[...]
安装 linux-headers。
无法识别 USB 设备
如果不使用systemd service[broken link: invalid section]来处理服务,you need to manually start the vmware-usbarbitrator
binary as root each time.
启动:
# vmware-usbarbitrator
停止:
# vmware-usbarbitrator --kill
The installer fails to start
If you just get back to the prompt when opening the .bundle
, then you probably have a deprecated or broken version of the VMware installer and you should remove it (you may also refer to the uninstallation[broken link: invalid section] section of this article):
# rm -r /etc/vmware-installer
无法为Guests下载VMware Tools
If after #Preventing crashes and freezes when checking for updates[broken link: invalid section] you are still unable to download the VMware Tools ISOs, you may either try running vmware
or vmplayer
as root, or downloading them directly from the VMware repository.
Navigate to: "application name / version / build ID / linux / packages/" and download the appropriate Tools.
Extract with:
$ tar -xvf vmware-tools-name-version-buildID.x86_64.component.tar
And install using the VMware installer:
# vmware-installer --install-component=/path/vmware-tools-name-version-buildID.x86_64.component
Incorrect login/password when trying to access VMware remotely
VMware Workstation 9 provides the possibility to remotely manage Shared VMs through the vmware-workstation-server
service. However, this will fail with the error "incorrect username/password"
due to incorrect PAM configuration of the vmware-authd
service. To fix it, edit /etc/pam.d/vmware-authd
like this:
/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
and restart VMware services with:
# systemctl restart vmware
Now you can connect to the server with the credentials provided during the installation.
Issues with ALSA output
To fix sound quality issues or enabling proper HD audio output, first run:
$ aplay -L
If interested in playing 5.1 surround sound from the guest, look for surround51:CARD=vendor_name,DEV=num
, if experiencing quality issues, look for front:CARD=vendor_name,DEV=num
. Finally put the name in the .vmx
:
~/vmware/Virtual_machine_name/Virtual_machine_name.vmx
sound.fileName="surround51:CARD=Live,DEV=0" sound.autodetect="FALSE"
OSS emulation[broken link: invalid section] should also be disabled.
Kernel-based Virtual Machine (KVM) is running
To disable KVM
on boot, you can use something like:
/etc/modprobe.d/vmware.conf
blacklist kvm blacklist kvm-amd # For AMD CPUs blacklist kvm-intel # For Intel CPUs
Segmentation fault at startup due to old Intel microcode
Old Intel microcode may result in the following kind of segmentation fault at startup:
/usr/bin/vmware: line 31: 4941 Segmentation fault "$BINDIR"/vmware-modconfig --appname="VMware Workstation" --icon="vmware-workstation"
Install intel-ucode and make /boot/intel-ucode.img
to be loaded by the bootloader.
See Microcode for more information.
Guests have incorrect system clocks or are unable to boot: "[...]timeTracker_user.c:234 bugNr=148722"
This is due to incomplete 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.
Guests系统启动后网络不可用
这可能是 vmnet
模块没有加载 [1]。 又见#systemd services[broken link: invalid section] 服务自动加载。
卸载
To uninstall VMware you need the product name (vmware-workstation
或是 vmware-player
)。列出所有的产品:
# vmware-installer -l
and uninstall with (--required
skips the confirmation):
# vmware-installer -u product --required
记得要disable 和删除.service
文件:
# rm /etc/systemd/system/vmware.service # rm /etc/systemd/system/vmware-usbarbitrator.service
你可能还想看看剩余模块在/usr/lib/modules/kernel_name/misc/
模块目录.