Difference between revisions of "VMware (简体中文)"

From ArchWiki
Jump to navigation Jump to search
(New page: Category:Emulators (简体中文) Category:HOWTOs (简体中文) {{i18n_links_start}} {{i18n_entry|English|:Installing_VMware}} {{i18n_entry|简体中文|:安装VMWare}} {{i18n_li...)
 
(update interlanguage links)
Tag: wiki-scripts
 
(106 intermediate revisions by 18 users not shown)
Line 1: Line 1:
[[Category:Emulators (简体中文)]]
+
[[Category:Virtualization (简体中文)|AZVMWARE]]
[[Category:HOWTOs (简体中文)]]
+
[[en:VMware]]
 +
[[it:VMware]]
 +
[[ja:VMware]]
 +
{{Related articles start (简体中文)}}
 +
{{Related|:Category:Hypervisors}}
 +
{{Related2|Installing Arch Linux in VMware (简体中文)|在 VMware 中安装 Arch}}
 +
{{Related2|VirtualBox (简体中文)|VirtualBox}}
 +
{{Related2|KVM (简体中文)|KVM}}
 +
{{Related2|QEMU (简体中文)|QEMU}}
 +
{{Related|Xen}}
 +
{{Related|Moving an existing install into (or out of) a virtual machine}}
 +
{{Related articles end}}
 +
{{TranslationStatus (简体中文)|VMware|2017-08-18|485222}}
  
{{i18n_links_start}}
+
本文是关于在 Arch 中安装 VMware,你也许想寻找的是 [[Installing Arch Linux in VMware (简体中文)|在 VMware 中安装 Arch Linux]]
{{i18n_entry|English|:Installing_VMware}}
+
{{注意|
{{i18n_entry|简体中文|:安装VMWare}}
+
*这篇文章适用于最新的 VMware 正式版,即 VMware Workstation Pro / Player 12.5.
{{i18n_links_end}}
+
*对于旧版本的 VMware,建议安装本体后追加安装 {{AUR|vmware-patch}}
 +
}}
  
[http://www.vmware.com/ VMware] installs on [[ArchLinux]] pretty well, but its not totally straight forward.
+
== 安装 ==
  
== Installation ==
+
[[Pacman|安装]] 依赖项:
 +
*{{pkg|fuse2}} - 提供 ''vmware-vmblock-fuse''
 +
*{{AUR|gksu}} - 支持需要 root 权限的操作(比如内存分配、注册许可证等等)
 +
*{{pkg|gtkmm}} - 支持 GUI
 +
*{{pkg|linux-headers}} - 模块编译所需
 +
*{{AUR|ncurses5-compat-libs}} - 支持安装程序的 {{ic|--console}} 选项
 +
*{{pkg|libcanberra}} - 支持事件提示音
  
You can use the [http://aur.archlinux.org/packages.php?do_Details=1&ID=6182&O=0&L=0&C=0&K=vmware&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd AUR] or manually install [http://www.vmware.com/download/server/ VMware Server] downloaded from [http://www.vmware.com/ VMware.com]. This guide shows you how to install the manually downloaded VMware server tarball, assuming you are running Voodoo or newer (Duke) with kernel version 2.6.20+ '''32-bit'''.
+
下载最新的 [https://www.vmware.com/go/tryworkstation VMware Workstation Pro] [https://www.vmware.com/go/downloadplayer Player] (或者[https://communities.vmware.com/community/vmtn/beta beta]版,如果有的话)
  
===Requirements:===
+
开始安装:
* Root access. Either 'sudo' or 'su'. For this guide, I will be using 'sudo'.
+
# sh VMware-''edition''-''version''.''release''.''architecture''.bundle
* [http://archlinux.org/packages/search/?repo=all&category=all&q=xinetd&lastupdate=&limit=50 Xinetd] is installed, up and running.
 
* The X-libraries libxtst, libxt and libxrender installed
 
* [http://www.vmware.com/download/server/ VMware server tarball]; latest is 1.0.4 build 56528 as of this writing.
 
* <strike>VMware server [http://www.vmware.com/community/thread.jspa?messageID=76957&tstart=0 any-to-any]" patch: [http://platan.vc.cvut.cz/ftp/pub/vmware mirror 1] and [ftp://ftp.cvut.cz/vmware mirror 2]. Note: For server 1.0.4 build 56528 you need patch vmware-any-any-update113.tar.bz2, which is on mirror 1 only.</strike>
 
* UPDATE: With 2.6.24 you need this [http://rtr.ca/vmware-2.6.24/ patch] (vmware-any-any-update115a.tgz)
 
  
===Instructions:===
+
{{提示|一些常用的选项:
* Run '''''sudo mkdir -p /etc/rc.d/vmware.d/rc{0,1,2,3,4,5,6}.d''''' to create VMware runlevel directories.
+
*{{ic|--eulas-agreed}} - 跳过各种许可协议
* Run '''''sudo ln -s /bin/lsmod /sbin/''''' to create symlink for lsmod.
+
*{{ic|--console}} - 使用命令行界面,而非 GUI
* Extract VMware server tarball somewhere... i.e. /tmp/.
+
*{{ic|--custom}} - 允许自定义安装目录,比如{{ic|/usr/local}}(记得修改[[#Systemd 服务]]一节下,{{ic|vmware-usbarbitrator.service}}中的路径)
* Run '''''cd /tmp/vmware-server-distrib;sudo ./vmware-install.pl'''''. I used '''''/home/vmware/bin''''' for installation.
+
*{{ic|-I}}, {{ic|--ignore-errors}} - 忽略致命错误
* When it asks where the directories for ''rc0.d'' thru ''rc6.d'' are, use '''''/etc/rc.d/vmware.d'''''.
+
*{{ic|1=--set-setting=vmware-workstation serialNumber XXXXX-XXXXX-XXXXX-XXXXX-XXXXX}} - 设置安装时使用的序列号(有利于脚本化安装)
* When it asks where the init directory is, use '''''/etc/rc.d'''''.
+
*{{ic|--required}} - 只询问必要的问题(当结合{{ic|--eulas-agreed}}和{{ic|--console}}时可以实现静默安装)
* '''*QUIT*''' when it asks you if you want to run VMware configuration for the first time.
+
}}
* Extract VMware server any-to-any patch somewhere... i.e. /tmp/.
 
* Run '''''cd /tmp/vmware-any-any-update*REV*;sudo ./runme.pl'''''. This will patch VMware server modules to allow Linux kernel 2.6.20 compilation.
 
* Run '''''cd /home/vmware/bin;sudo ./vmware-config.pl''''' to compile VMware modules.
 
  
== Running ==
+
当安装程序询问 {{ic|System service scripts directory}} 的设置时,输入 {{ic|/etc/init.d}} 即可。
  
It's a possibility the first time you try to run Vmware server it'll throw an error stating something about "Unable to power virtual machine". Stop the VMware server and restart xinetd wtih '''''/etc/rc.d/vmware stop;wait;/etc/rc.d/xinetd restart'''''.
+
{{注意|安装过程中会收到{{ic|"No rc*.d style init script directories"}}错误。这可以安全忽略,因为Arch使用的是[[systemd]].}}
  
Rerun '''''sudo /home/vmware/bin/vmware-config.pl''''' again. If this still fails, restart your computer and do the above again. It should be fixed.
+
{{提示|如需重新编译模块,用这条命令:
 +
# vmware-modconfig --console --install-all
 +
}}
  
There is now a <code>vmware</code> init script in <code>/etc/rc.d</code>.  You can add this to your daemons list if you want.  I personally dont do this, but if you intend to use the vmware's network when not actually using vmware, then you will need to do this.  You will need to start it before you can run vmware though.
+
== 配置 ==
  
There is a problem with vmware unable to run correctly after a reboot.  To fix this edit <code>/etc/rc.d/vmware</code>, find the text below
+
=== 内核模块 ===
case "$1" in
 
  start)
 
and put
 
rm /etc/vmware/not_configured
 
immediately after that line.
 
  
To start vmware, you just do <code>vmware</code> from a console window, or create a shortcut or menu item however you like.
+
VMware Workstation 12.5 最高支持内核 4.8.
  
'''Some notes:'''
+
=== Systemd 服务 ===
  
Leave the <code>/etc/rc.d/vmware.d</code> directory there, because it is needed whenever you perform <code>vmware-config.pl</code>.
+
''(可选)'' 你也可以创建一个 {{ic|.service}} 文件 (也可以用[[AUR]]中的{{AUR|vmware-systemd-services}}包),而不是直接使用 {{ic|/etc/init.d/vmware}} ({{ic|<nowiki>start|stop|status|restart</nowiki>}}) 和 {{ic|/usr/bin/vmware-usbarbitrator}} 来管理服务:
  
Remember, if the kernel is changed or updated, you will need to run <code>vmware-config.pl</code> again.
+
{{hc|/etc/systemd/system/vmware.service|
 +
2=[Unit]
 +
Description=VMware daemon
 +
Requires=vmware-usbarbitrator.service
 +
Before=vmware-usbarbitrator.service
 +
After=network.target
  
== Kernel 2.6 and udev ==
+
[Service]
 +
ExecStart=/etc/init.d/vmware start
 +
ExecStop=/etc/init.d/vmware stop
 +
PIDFile=/var/lock/subsys/vmware
 +
RemainAfterExit=yes
  
Follow the steps above and then:
+
[Install]
 +
WantedBy=multi-user.target
 +
}}
  
'''1. Modify udev config'''
+
{{hc|/etc/systemd/system/vmware-usbarbitrator.service|
 +
2=[Unit]
 +
Description=VMware USB Arbitrator
 +
Requires=vmware.service
 +
After=vmware.service
  
Edit <code>/etc/udev/rules.d/00-myrules.rules</code> and add 2 lines:
+
[Service]
# tty devices
+
ExecStart=/usr/bin/vmware-usbarbitrator
KERNEL="tty<nowiki>[[0-9]]</nowiki>*", NAME="vc/%n", SYMLINK="%k"
+
ExecStop=/usr/bin/vmware-usbarbitrator --kill
+
RemainAfterExit=yes
# floppy devices
 
KERNEL="fd<nowiki>[[0-9]]</nowiki>*", NAME="floppy/%n" , SYMLINK="fd%n"
 
  
'''2. Start/stop script'''
+
[Install]
 +
WantedBy=multi-user.target
 +
}}
  
It takes care of devices and starts vmware, also stops vmware and removes dev entries. Call it, for example, <code>mkvmdev</code>, chmod it <code>755</code> and put in <code>/etc/rc.d</code>:
+
如果你想在另一个Workstation服务器控制台上连接此次安装的VMware Workstation,请添加下面的服务
  
<pre>
+
{{hc|/etc/systemd/system/vmware-workstation-server.service|
#!/bin/sh
+
2=[Unit]
 +
Description=VMware Workstation Server
 +
Requires=vmware.service
 +
After=vmware.service
  
. /etc/rc.conf
+
[Service]
. /etc/rc.d/functions
+
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
  
case "$1" in
+
[Install]
    start)
+
WantedBy=multi-user.target
    stat_busy "Creating /dev entries and starting VMware"
+
}}
    for i in `seq 0 9`; do
 
        mknod /dev/vmnet$i c 119 $i
 
        chmod 0600 /dev/vmnet$i
 
    done
 
    for i in `seq 0 3`; do
 
        mknod /dev/parport$i c 99 $i
 
        chmod 0600 /dev/parport$i
 
    done
 
    mknod /dev/vmmon c 10 165
 
    chmod 0660 /dev/vmmon
 
    /etc/rc.d/vmware start
 
    ;;
 
  
    stop)
+
之后您就可以在启动时[[enable]]它们.
    stat_busy "Stopping VMware and removing /dev entries"
 
    /etc/rc.d/vmware stop
 
    rm /dev/vmmon
 
    for i in `seq 0 3`; do
 
        rm /dev/parport$i
 
    done
 
    for i in `seq 0 9`; do
 
        rm /dev/vmnet$i
 
    done
 
    ;;
 
  
    restart)
+
==== Workstation Server服务 ====
    $0 stop
 
    $0 start
 
    ;;
 
  
    *)
+
服务{{ic|vmware-workstation-server.service}}将调用{{ic|wssc-adminTool}},即使后者已经被重命名作{{ic|vmware-wssc-adminTool}}.
    echo "usage: $0 {start|stop|restart}"
 
esac
 
exit 0
 
</pre>
 
  
'''3. Modify <code>/etc/rc.conf</code>.''' (*Note - this step is optional! See also the notes under the "Running" section above)
+
这将阻止该服务启动。创建一个文件链接可以修复这个问题:
  
Add <code>mkvmdev</code> to daemons in your <code>rc.conf</code>, and remember to remove <code>vmware</code> from <code>rc.conf</code>. Or if you prefer, you can delete the lines that launch vmware from <code>mkvmdev</code> and leave your original <code>vmware</code> in <code>rc.conf</code> - your choice.
+
# ln -s wssc-adminTool /usr/lib/vmware/bin/vmware-wssc-adminTool
  
-----
+
== 启动程序 ==
  
'''Comments:'''
+
启动VMware Workstation Pro:
 +
$ vmware
  
hi guys, a couple of quick questions:<br>
+
或Player:
- why is /dev/vmmon chmod 0660, as opposed to the rest (0600)?<br>
+
$ vmplayer
- i suppose /dev/vmmon should be "rm"-ed as well in the "stop" section for the script above? (that line is missing) - FIXED
 
  
== vmware and kernel 2.6.20 compile modules problem ==
+
== 提示和技巧 ==
  
Below is a solution for compiling the vmware modules on kernel 2.6.20.
+
=== 输入Workstation Pro许可密钥===
  
<pre>
+
==== 从终端 ====
cd /usr/lib/vmware/modules/source/
+
# /usr/lib/vmware/bin/vmware-vmx-debug --new-sn XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
sudo tar -xvf vmmon.tar
 
cd vmmon-only
 
sudo vi include/compat_kernel.h
 
  
Find this:
+
{{ic|XXXXX-XXXXX-XXXXX-XXXXX-XXXXX}} 处是你的许可密钥。
  
#define __NR_compat_exit __NR_exit
+
{{Note|The {{ic|-debug}} binary informs the user of an incorrect license.}}
static inline _syscall1(int, compat_exit, int, exit_code);
 
  
and change the static inline ..... line to:
+
==== 从 GUI ====
  
int compat_exit(int exit_code);
+
如果以上方法无效,你可以试试:
  
Then tar up the vmmon-only directory again.
+
# /usr/lib/vmware/bin/vmware-enter-serial
  
cd .. #go back to the source directory
+
=== 解压缩 VMware BIOS ===
tar -cf vmmon.tar vmmon-only
 
  
Finally, run vmware-config.pl
+
$ objcopy /usr/lib/vmware/bin/vmware-vmx -O binary -j bios440 --set-section-flags bios440=a bios440.rom.Z
</pre>
+
$ 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
  
== vmware and kernel 2.6.16 compile modules problem ==
+
=== 解压缩安装程序 ===
'''PROBLEM''': kernel 2.6.16-x - vmware or vmwareplayer complains that headers are incorect.<br>
 
'''FIX''': You need [http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update101.tar.gz vmware-any-any-update] patch [ftp://ftp.cvut.cz/vmware/vmware-any-any-update101.tar.gz  mirror here] [http://www.inarad.ro/soft/vmware/vmware-any-any-update101.tar.gz or here].<br> Just untar the archive and run ./runme.pl as root - and you-re happy again!
 
  
== vmware on kernel 2.6.22 ==
+
查看安装程序{{ic|.bundle}}的内容:
May not work properly yet. Apply the patch from http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update112.tar.gz , replace vmnet.tar with http://npw.net/~phbaer/vmnet.tar and reinstall. Note: this is an '''ugly hack''', please dont put it into production systems. Some guest OS'es may have crashes and networking problems with this. '''Dont tell us that you havent been warned'''
 
  
== slow networking between host and guest ==
+
$ sh VMware-''edition''-''version''.''release''.''architecture''.bundle --extract ''/tmp/vmware-bundle/''
"Those oversized improperly checksummed packets are TCP Segmentation Offload packets. Use ''''ethtool -k eth0 tso off'''' to disable TSO on eth0 (or any other interface which you want to get bridged). At this moment vmnet does not understand TSO, and in addition to that it is silly to use TSO together with bridged networking as vmnet will have to split such packet anyway to pass it to the guest, so splitting will be done anyway, and in addition to it kernel will have to prepare metadata about TCP stream for hardware, so you'll probably get worse performance with TSO enabled than with disabled when you'll have some guest running."
 
  
'''NOTE:''' ''ethtool is on extra packages''
+
==== 使用修改过的 BIOS ====
  
== Samba issues ==
+
如果你决定修改解压出的BIOS,你可以通过将其移动至{{ic|~/vmware/<Virtual machine name>}}来让虚拟机使用它:
The guest os under vmware cannot see a samba share running on the linux host.  To fix this problem, edit /etc/samba/smb.conf and make some changes under [global].  The following are suggested:<br>
 
workgroup = YOUR_WORKGROUP<br>
 
netbios name = YOUR_SERVER_NAME<br>
 
encrypt passwords = yes<br>
 
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192<br>
 
interfaces = eth0 vmnet1 vmnet8<br>
 
sysv shm key=/dev/vmnet1<br>
 
bind interfaces only = true<br>
 
  
== Connecting Remotely ==
+
$ mv bios440.rom ~/vmware/''Virtual_machine_name''/
If you setup a server that you would like to connect to remotely, please add the following to <b>/etc/hosts.allow</b>:
+
 
<pre>vmware-authd: ALL</pre>
+
然后在 {{Ic|<Virtual machine name>.vmx}} 文件中加入它的名称:
This will enable <b>xinetd</b> to allow connections from a remote vmware client.<br>
+
 
<br>
+
{{hc|~/vmware/''Virtual_machine_name''/''Virtual_machine_name''.vmx|2=bios440.filename = "bios440.rom"}}
If this condition is not met, you may see in your <b>/var/log/everything.log</b>:
+
 
<pre>Feb 4 03:34:12 jeffc xinetd[7232]: libwrap refused connection to vmware-authd (libwrap=vmware-authd) from 192.168.1.1</pre>
+
=== 在Intel和Optimus上启用3D图形 ===
 +
 
 +
由于不理想和(或)不稳定的3D加速,某些图形驱动是默认被阻止的。当启用''Accelerate 3D graphics''后,log中应该会出现:
 +
 
 +
Disabling 3D on this host due to presence of Mesa DRI driver.  Set mks.gl.allowBlacklistedDrivers = TRUE to override.
 +
 
 +
这表示:
 +
 
 +
{{hc|~/.vmware/preferences|2=
 +
mks.gl.allowBlacklistedDrivers = TRUE
 +
}}
 +
 
 +
== 疑难解答 ==
 +
 
 +
=== 错误:Kernel headers for version 4.x-xxxx were not found. If you installed them[...] ===
 +
 
 +
安装 {{Pkg|linux-headers}}。
 +
 
 +
{{Note|更新内核和头文件会需要你启动新的内核以匹配头文件的版本。这是一个相对常见的错误。}}
 +
 
 +
=== 无法识别 USB 设备 ===
 +
 
 +
{{提示|可以通过 {{AUR|vmware-patch}} 解决。}}
 +
 
 +
如果不使用[[#Systemd 服务]]来处理服务,你每次都需要以root身份手动启动{{ic|vmware-usbarbitrator}}.
 +
 
 +
启动:
 +
 
 +
# vmware-usbarbitrator
 +
 
 +
停止:
 +
 
 +
# vmware-usbarbitrator --kill
 +
 
 +
=== 当远程访问VMware时,遇到不正确的用户名/密码错误 ===
 +
 
 +
VMware Workstation通过{{ic|vmware-workstation-server}}服务来提供远程管理共享的虚拟机的功能。然而,这将以错误{{ic|"incorrect username/password"}}而告终,因为{{ic|vmware-authd}}服务中,[[PAM]]的相关配置出错了。通过编辑{{ic|/etc/pam.d/vmware-authd}}来解决问题:
 +
 
 +
{{hc|/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''
 +
}}
 +
 
 +
然后重新启动{{ic|vmware}}[[systemd]]服务。
 +
 
 +
现在你能通过安装时提供的身份信息来登录这个服务器了。
 +
 
 +
{{Note|也许会需要{{Pkg|libxslt}}来启动虚拟机}}
 +
 
 +
=== ALSA输出的问题 ===
 +
 
 +
[http://bankimbhavsar.blogspot.co.nz/2011/09/hd-audio-in-vmware-fusion-4-and-vmware.html 修复]音质问题或正确启用高清音频输出。首先执行:
 +
 
 +
$ aplay -L
 +
 
 +
如果希望在客户机中播放5.1 ''立体声'',寻找{{ic|1=surround51:CARD=''vendor_name'',DEV=''num''}};如果存在音质问题,寻找{{ic|1=front:CARD=''vendor_name'',DEV=''num''}}。最后将名称加入到{{ic|.vmx}}文件中:
 +
 
 +
{{hc|~/vmware/''Virtual_machine_name''/''Virtual_machine_name''.vmx|2=
 +
sound.fileName=''"surround51:CARD=Live,DEV=0"''
 +
sound.autodetect=''"FALSE"''
 +
}}
 +
 
 +
[[Advanced_Linux_Sound_Architecture#OSS_compatibility|OSS模拟]]也应该被禁用.
 +
 
 +
=== 错误:Kernel-based Virtual Machine (KVM) is running ===
 +
 
 +
禁止{{ic|KVM}}自动启动,你可以:
 +
 
 +
{{hc|/etc/modprobe.d/vmware.conf|
 +
blacklist kvm
 +
blacklist kvm-amd  # For AMD CPUs
 +
blacklist kvm-intel # For Intel CPUs
 +
}}
 +
 
 +
===组件问题===
 +
 
 +
==== 错误:/dev/vmmon not found ====
 +
 
 +
完整的错误是:
 +
 
 +
Could not open /dev/vmmon: No such file or directory.
 +
Please make sure that the kernel module `vmmon' is loaded.
 +
 
 +
这意味着未加载{{ic|vmmon}}模块.参见[[#Systemd 服务]]章节
 +
 
 +
==== 错误:/dev/vmci not found ====
 +
 
 +
完整的错误是:
 +
 
 +
Failed to open device "/dev/vmci": No such file or directory
 +
Please make sure that the kernel module 'vmci' is loaded.
 +
 
 +
尝试重新编译VMware内核模块:
 +
 
 +
# vmware-modconfig --console --install-all
 +
 
 +
==== 在Linux 4.9后内核模块无法编译 ====
 +
 
 +
对于VMware Workstation Pro 12.5.2,模块的源码必须作出修改,以便于在Linux 4.9上编译 [http://rglinuxtech.com/?p=1847]。
 +
 
 +
# cd /usr/lib/vmware/modules/source
 +
# tar xf vmmon.tar
 +
# mv vmmon.tar vmmon.old.tar
 +
# sed -i 's/uvAddr, numPages, 0, 0/uvAddr, numPages, 0/g' vmmon-only/linux/hostif.c
 +
# tar cf vmmon.tar vmmon-only
 +
# rm -r vmmon-only
 +
 
 +
# tar xf vmnet.tar
 +
# mv vmnet.tar vmnet.old.tar
 +
# sed -i 's/addr, 1, 1, 0/addr, 1, 0/g' vmnet-only/userif.c
 +
# tar cf vmnet.tar vmnet-only
 +
# rm -r vmnet-only
 +
 
 +
==== VMware模块在Linux内核4.11+上(在GCC7下)编译失败 ====
 +
 
 +
运行vmware-modconfig时返回:
 +
Failed to get gcc information.
 +
 
 +
详细的错误信息能在日志中被找到:
 +
modconfig| I125: Got gcc version "6.3.1".
 +
modconfig| I125: GCC major version 6 does not match Kernel GCC major version 7.
 +
modconfig| I125: The GCC compiler "/sbin/gcc" cannot be used for the target kernel.
 +
 
 +
为跳过检查,使用下面的解决方案:
 +
# sed 's/gcc version 7/gcc version 6/' /proc/version > /tmp/version
 +
# mount --bind /tmp/version /proc/version
 +
# vmware-modconfig --console --install-all
 +
# umount /proc/version && rm /tmp/version
 +
 
 +
==== VMware 模块在 Linux 4.13 版内核上编译失败 ====
 +
 
 +
VMware Workstation Pro 12.5.7 版本的内核模块代码需要做出一定修改,才能够成功地为 4.13 版 Linux 内核编译。出处:[https://communities.vmware.com/thread/568089]。
 +
 
 +
# cd /usr/lib/vmware/modules/source
 +
# tar xf vmnet.tar
 +
# mv vmnet.tar vmnet.old.tar
 +
# sed -i 's/atomic_inc(&clone->users);/clone = skb_get(clone);/g' vmnet-only/bridge.c
 +
# tar cf vmnet.tar vmnet-only
 +
# rm -r vmnet-only
 +
 
 +
=== 安装程序启动失败 ===
 +
 
 +
如果你回到了执行{{ic|.bundle}}时的终端提示,则这个版本的VMware Installer也许坏掉了或者不完整,你应该删掉它(你也许也应该参照[[#卸载]]一节中的内容):
 +
 
 +
# 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.
 +
 
 +
这可以通过安装{{AUR|ncurses5-compat-libs}}或者临时允许X拥有root权限来解决:
 +
 
 +
$ xhost +
 +
$ sudo ./<vmware filename>.bundle
 +
$ xhost -
 +
 
 +
=== VMware启动失败 ===
 +
 
 +
==== 旧的Intel微指令在启动时产生段错误 ====
 +
 
 +
旧的Intel微指令可能会在启动时产生这样的段错误:
 +
 
 +
/usr/bin/vmware: line 31: 4941 Segmentation fault "$BINDIR"/vmware-modconfig --appname="VMware Workstation" --icon="vmware-workstation"
 +
 
 +
参阅[[Microcode]]了解如何更新微指令
 +
 
 +
==== 版本号为12.5.4的vmplayer/vmware无法启动 ====
 +
 
 +
如[https://bbs.archlinux.org/viewtopic.php?id=224667]中所述,临时的解决方案是将包{{ic|libpng}}降级至1.6.28-1版本,并将其加入{{ic|IgnorePkg}}参数以忽略升级(参见[[Pacman#Skip_package_from_being_upgraded|/etc/pacman.conf]])。
 +
 
 +
更方便的解决方案是令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无法启动 ====
 +
 
 +
这貌似是文件{{ic|/usr/lib/vmware/lib/libstdc++.so.6/libstdc++.so.6}}中的问题,{{ic|CXXABI_1.3.8}}缺失。
 +
 
 +
如果系统安装了{{pkg|gcc-libs}}或者{{pkg|gcc-libs-multilib}}{{Broken package link|replaced by {{Pkg|gcc-libs}}}},那个库就已经被安装了。因此,直接移除那个出错的文件将使vmplayer使用gcc-libs提供的版本。使用root执行:
 +
 
 +
# 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的进程在启动之后立即终止,没有显示GUI ====
 +
 
 +
这是[https://bugs.mageia.org/show_bug.cgi?id=9739 Mageia]中已知的Bug,但是对于Arch,终端里似乎并没有任何错误信息输出。检阅位于{{ic|/tmp/vmware-<id>}}里的日志文件,会发现启动vmware或vmplaer后,产生了{{ic|VMWARE_SHIPPED_LIBS_LIST is not set}}, {{ic|VMWARE_SYSTEM_LIBS_LIST is not set}}, {{ic|VMWARE_USE_SHIPPED_LIBS is not set}}, {{ic|VMWARE_USE_SYSTEM_LIBS is not set}}问题。进程在{{ic|Unable to execute /usr/lib/vmware/bin/vmware-modconfig.}}后结束。解决方案是,以root身份执行:
 +
 
 +
# mv /etc/vmware/icu/icudt44l.dat /etc/vmware/icu/icudt44l.dat.bak
 +
 
 +
同时有另一个解决方案:
 +
 
 +
# export VMWARE_USE_SHIPPED_LIBS='yes'
 +
 
 +
如果在版本'''12.5.7'''上出现问题,并且移动{{ic|icudt44l.dat}}或者设置{{ic|VMWARE_USE_SHIPPED_LIBS}}为{{ic|yes}}不起作用,或者在终端内执行{{ic|vmplayer}}无输出,尝试以root权限执行:
 +
 
 +
# cd /usr/lib/vmware/lib/libz.so.1
 +
# mv libz.so.1 libz.so.1.old
 +
# ln -s /usr/lib/libz.so.1 .
 +
 
 +
尽管设置了VMWARE_USE_SHIPPED_LIBS变量,VMware仍有可能找不到某些库文件,比如libfontconfig.so.1。查看VMware位于tmp目录中的日志来检查哪些库文件未被找到,并将对应的系统库文件拷贝至合适的路径:
 +
 
 +
# cp /usr/lib/libfontconfig.so.1 /usr/lib/vmware/lib/libfontconfig.so.1/
 +
 
 +
=== 客户机问题 ===
 +
 
 +
==== 无法为客户机下载VMware Tools ====
 +
 
 +
访问[http://softwareupdate.vmware.com/cds/vmw-desktop/ VMware repository]来手动下载这些工具。
 +
 
 +
导航至:"''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
 +
 
 +
如果上述步骤不管用,尝试安装{{AUR|ncurses5-compat-libs}}
 +
 
 +
==== 错误:Guests have incorrect system clocks or are unable to boot: "[...]timeTracker_user.c:234 bugNr=148722" ====
 +
 
 +
这是由于在VMware Linux中[http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1591 不完整的]对电源管理功能的支持导致的CPU频率的变化([[Wikipedia:Intel speedstep|Intel SpeedStep]]和[[Wikipedia:AMD powernow|AMD PowerNow!]]/[[Wikipedia:Cool'n'Quiet|Cool'n'Quiet]])。2012年,随着[https://projects.archlinux.org/svntogit/packages.git/commit/trunk/config.x86_64?h=packages/linux&id=9abe018d91a5d8c3af7523d30b8aa73f86b680be linux 3.3-1]的发布,最大CPU频率[[CPU frequency governors|Performance]]的管理者被动态的''Ondemand''替代。当宿主的CPU频率变化时,客户机的时钟会运行过快或过慢,同时也可能会导致客户机无法启动。
 +
 
 +
为规避该问题,宿主CPU的最高频率可以被指定,并禁用[[Wikipedia:Time Stamp Counter|时间戳计数器]](TSC)。在整体设置中:
 +
 
 +
{{hc|/etc/vmware/config|2=
 +
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.
 +
}}
 +
 
 +
{{提示|若要每隔一分钟修正一次时钟,在VMware Tools下的''Options''选项卡中,启用: ''"Time synchronization between the virtual machine and the host operating system"''.}}
 +
 
 +
==== Guests系统启动后网络不可用 ====
 +
 
 +
这可能是 {{ic|vmnet}} 模块没有加载 [http://www.linuxquestions.org/questions/slackware-14/could-not-connect-ethernet0-to-virtual-network-dev-vmnet8-796095/]。又见[[#Systemd 服务]]自动加载。
 +
 
 +
== 卸载 ==
 +
 
 +
为卸载VMware你首先需要知道产品名称({{ic|vmware-workstation}} 或是 {{ic|vmware-player}})。列出所有的产品:
 +
# vmware-installer -l
 +
 
 +
然后通过下面的指令卸载(使用{{ic|--required}}跳过所有的确认):
 +
# vmware-installer -u ''product'' --required
 +
 
 +
{{提示|加上{{ic|--console}}来使用终端UI}}
 +
 
 +
记得要[[disable]]和删除{{ic|.service}}文件:
 +
# rm /etc/systemd/system/vmware.service
 +
# rm /etc/systemd/system/vmware-usbarbitrator.service
 +
 
 +
你可能还需要清理在{{ic|/usr/lib/modules/''kernel_name''/misc/}}下的冗余文件,并且如果目录{{ic|/etc/init.d/}}是空的话,删除它。

Latest revision as of 07:11, 15 October 2019

翻译状态: 本文是英文页面 VMware翻译,最后翻译时间:2017-08-18,点击这里可以查看翻译后英文页面的改动。

本文是关于在 Arch 中安装 VMware,你也许想寻找的是 在 VMware 中安装 Arch Linux

注意:
  • 这篇文章适用于最新的 VMware 正式版,即 VMware Workstation Pro / Player 12.5.
  • 对于旧版本的 VMware,建议安装本体后追加安装 vmware-patchAUR

安装

安装 依赖项:

下载最新的 VMware Workstation ProPlayer (或者beta版,如果有的话)。

开始安装:

# sh VMware-edition-version.release.architecture.bundle
提示: 一些常用的选项:
  • --eulas-agreed - 跳过各种许可协议
  • --console - 使用命令行界面,而非 GUI
  • --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

配置

内核模块

VMware Workstation 12.5 最高支持内核 4.8.

Systemd 服务

(可选) 你也可以创建一个 .service 文件 (也可以用AUR中的vmware-systemd-servicesAUR包),而不是直接使用 /etc/init.d/vmware (start|stop|status|restart) 和 /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

如果你想在另一个Workstation服务器控制台上连接此次安装的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

之后您就可以在启动时enable它们.

Workstation Server服务

服务vmware-workstation-server.service将调用wssc-adminTool,即使后者已经被重命名作vmware-wssc-adminTool.

这将阻止该服务启动。创建一个文件链接可以修复这个问题:

# ln -s wssc-adminTool /usr/lib/vmware/bin/vmware-wssc-adminTool

启动程序

启动VMware Workstation Pro:

$ vmware

或Player:

$ vmplayer

提示和技巧

输入Workstation Pro许可密钥

从终端

# /usr/lib/vmware/bin/vmware-vmx-debug --new-sn XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

XXXXX-XXXXX-XXXXX-XXXXX-XXXXX 处是你的许可密钥。

Note: The -debug binary informs the user of an incorrect license.

从 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/<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"

在Intel和Optimus上启用3D图形

由于不理想和(或)不稳定的3D加速,某些图形驱动是默认被阻止的。当启用Accelerate 3D graphics后,log中应该会出现:

Disabling 3D on this host due to presence of Mesa DRI driver.  Set mks.gl.allowBlacklistedDrivers = TRUE to override.

这表示:

~/.vmware/preferences
mks.gl.allowBlacklistedDrivers = TRUE

疑难解答

错误:Kernel headers for version 4.x-xxxx were not found. If you installed them[...]

安装 linux-headers

Note: 更新内核和头文件会需要你启动新的内核以匹配头文件的版本。这是一个相对常见的错误。

无法识别 USB 设备

提示: 可以通过 vmware-patchAUR 解决。

如果不使用#Systemd 服务来处理服务,你每次都需要以root身份手动启动vmware-usbarbitrator.

启动:

# vmware-usbarbitrator

停止:

# vmware-usbarbitrator --kill

当远程访问VMware时,遇到不正确的用户名/密码错误

VMware Workstation通过vmware-workstation-server服务来提供远程管理共享的虚拟机的功能。然而,这将以错误"incorrect username/password"而告终,因为vmware-authd服务中,PAM的相关配置出错了。通过编辑/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

然后重新启动vmwaresystemd服务。

现在你能通过安装时提供的身份信息来登录这个服务器了。

Note: 也许会需要libxslt来启动虚拟机

ALSA输出的问题

修复音质问题或正确启用高清音频输出。首先执行:

$ 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模拟也应该被禁用.

错误:Kernel-based Virtual Machine (KVM) is running

禁止KVM自动启动,你可以:

/etc/modprobe.d/vmware.conf
blacklist kvm
blacklist kvm-amd   # For AMD CPUs
blacklist kvm-intel # For Intel CPUs

组件问题

错误:/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 服务章节

错误:/dev/vmci not found

完整的错误是:

Failed to open device "/dev/vmci": No such file or directory
Please make sure that the kernel module 'vmci' is loaded.

尝试重新编译VMware内核模块:

# vmware-modconfig --console --install-all

在Linux 4.9后内核模块无法编译

对于VMware Workstation Pro 12.5.2,模块的源码必须作出修改,以便于在Linux 4.9上编译 [1]

# cd /usr/lib/vmware/modules/source
# tar xf vmmon.tar
# mv vmmon.tar vmmon.old.tar
# sed -i 's/uvAddr, numPages, 0, 0/uvAddr, numPages, 0/g' vmmon-only/linux/hostif.c
# tar cf vmmon.tar vmmon-only
# rm -r vmmon-only
# tar xf vmnet.tar
# mv vmnet.tar vmnet.old.tar
# sed -i 's/addr, 1, 1, 0/addr, 1, 0/g' vmnet-only/userif.c
# tar cf vmnet.tar vmnet-only
# rm -r vmnet-only

VMware模块在Linux内核4.11+上(在GCC7下)编译失败

运行vmware-modconfig时返回:

Failed to get gcc information.

详细的错误信息能在日志中被找到:

modconfig| I125: Got gcc version "6.3.1".
modconfig| I125: GCC major version 6 does not match Kernel GCC major version 7.
modconfig| I125: The GCC compiler "/sbin/gcc" cannot be used for the target kernel.

为跳过检查,使用下面的解决方案:

# sed 's/gcc version 7/gcc version 6/' /proc/version > /tmp/version
# mount --bind /tmp/version /proc/version
# vmware-modconfig --console --install-all
# umount /proc/version && rm /tmp/version

VMware 模块在 Linux 4.13 版内核上编译失败

VMware Workstation Pro 12.5.7 版本的内核模块代码需要做出一定修改,才能够成功地为 4.13 版 Linux 内核编译。出处:[2]

# cd /usr/lib/vmware/modules/source
# tar xf vmnet.tar
# mv vmnet.tar vmnet.old.tar
# sed -i 's/atomic_inc(&clone->users);/clone = skb_get(clone);/g' vmnet-only/bridge.c
# tar cf vmnet.tar vmnet-only
# rm -r vmnet-only

安装程序启动失败

如果你回到了执行.bundle时的终端提示,则这个版本的VMware Installer也许坏掉了或者不完整,你应该删掉它(你也许也应该参照#卸载一节中的内容):

# 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或者临时允许X拥有root权限来解决:

$ xhost +
$ sudo ./<vmware filename>.bundle
$ xhost -

VMware启动失败

旧的Intel微指令在启动时产生段错误

旧的Intel微指令可能会在启动时产生这样的段错误:

/usr/bin/vmware: line 31: 4941 Segmentation fault "$BINDIR"/vmware-modconfig --appname="VMware Workstation" --icon="vmware-workstation"

参阅Microcode了解如何更新微指令

版本号为12.5.4的vmplayer/vmware无法启动

[3]中所述,临时的解决方案是将包libpng降级至1.6.28-1版本,并将其加入IgnorePkg参数以忽略升级(参见/etc/pacman.conf)。

更方便的解决方案是令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或者gcc-libs-multilib[broken link: replaced by gcc-libs],那个库就已经被安装了。因此,直接移除那个出错的文件将使vmplayer使用gcc-libs提供的版本。使用root执行:

# 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的进程在启动之后立即终止,没有显示GUI

这是Mageia中已知的Bug,但是对于Arch,终端里似乎并没有任何错误信息输出。检阅位于/tmp/vmware-<id>里的日志文件,会发现启动vmware或vmplaer后,产生了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问题。进程在Unable to execute /usr/lib/vmware/bin/vmware-modconfig.后结束。解决方案是,以root身份执行:

# mv /etc/vmware/icu/icudt44l.dat /etc/vmware/icu/icudt44l.dat.bak

同时有另一个解决方案:

# export VMWARE_USE_SHIPPED_LIBS='yes'

如果在版本12.5.7上出现问题,并且移动icudt44l.dat或者设置VMWARE_USE_SHIPPED_LIBSyes不起作用,或者在终端内执行vmplayer无输出,尝试以root权限执行:

# cd /usr/lib/vmware/lib/libz.so.1
# mv libz.so.1 libz.so.1.old
# ln -s /usr/lib/libz.so.1 .

尽管设置了VMWARE_USE_SHIPPED_LIBS变量,VMware仍有可能找不到某些库文件,比如libfontconfig.so.1。查看VMware位于tmp目录中的日志来检查哪些库文件未被找到,并将对应的系统库文件拷贝至合适的路径:

# cp /usr/lib/libfontconfig.so.1 /usr/lib/vmware/lib/libfontconfig.so.1/

客户机问题

无法为客户机下载VMware Tools

访问VMware repository来手动下载这些工具。

导航至:"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

错误:Guests have incorrect system clocks or are unable to boot: "[...]timeTracker_user.c:234 bugNr=148722"

这是由于在VMware Linux中不完整的对电源管理功能的支持导致的CPU频率的变化(Intel SpeedStepAMD PowerNow!/Cool'n'Quiet)。2012年,随着linux 3.3-1的发布,最大CPU频率Performance的管理者被动态的Ondemand替代。当宿主的CPU频率变化时,客户机的时钟会运行过快或过慢,同时也可能会导致客户机无法启动。

为规避该问题,宿主CPU的最高频率可以被指定,并禁用时间戳计数器(TSC)。在整体设置中:

/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.
提示: 若要每隔一分钟修正一次时钟,在VMware Tools下的Options选项卡中,启用: "Time synchronization between the virtual machine and the host operating system".

Guests系统启动后网络不可用

这可能是 vmnet 模块没有加载 [4]。又见#Systemd 服务自动加载。

卸载

为卸载VMware你首先需要知道产品名称(vmware-workstation 或是 vmware-player)。列出所有的产品:

# vmware-installer -l

然后通过下面的指令卸载(使用--required跳过所有的确认):

# vmware-installer -u product --required
提示: 加上--console来使用终端UI

记得要disable和删除.service文件:

# rm /etc/systemd/system/vmware.service
# rm /etc/systemd/system/vmware-usbarbitrator.service

你可能还需要清理在/usr/lib/modules/kernel_name/misc/下的冗余文件,并且如果目录/etc/init.d/是空的话,删除它。