Vmware
See also: VirtualBox — Vmware — Kvm — Qemu
Install
Linux guests
After install, you must install:
- Either VMWare tools, which comes as an ISO file downloaded on request by VMWare.
- Or, which is recommended, install open-source package open-vm-tools (and package open-vm-tools-desktop for GUI environment):
sudo apt install open-vm-tools
sudo apt install open-vm-tools-desktop # If using Xfce, Gnome...
Tips
Enable copy-paste in Linux GUI guests
Install package open-vm-tools-desktop to enable copy-paste in Xfce / Gnome:
sudo apt install open-vm-tools-desktop # If using Xfce, Gnome...
- First, install VM tools, or on Linux guest, install package open-vm-tools.
sudo apt install open-vm-tools
- Then create a shared folder in the VM settings.
To mount the shared folders in the guest [1]:
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=0
For mount this at started, add to /etc/fstab:
# Use shared folders between VMWare guest and host
.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse defaults,allow_other,uid=0 0 0
Some say the share has an impact on the VM performance. In that case, use option noauto
:
# Use shared folders between VMWare guest and host
.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse defaults,allow_other,uid=0,noauto 0 0
Then mount the share manually with sudo mount /mnt/hgfs
.
- Notes
- VMWare mounts the share automatically when it is created and the VM is running. If the VM was off, first power on the VM, then disable and enable back the shared folders. However this has to be done everytime the VM is rebooted.
- Don't forget to exclude shared folders from locate / mlocate scan.
Compile modules vmmon / vmnet on recent kernels (and secure boot)
- Compile
- Compile the modules for the selected version of vmware and kernel
- Clone from https://github.com/mkubecek/vmware-host-modules.git.
mkdir -p ~/build
cd ~/build
git clone https://github.com/mkubecek/vmware-host-modules.git
cd vmware-host-modules
# Eg. for VMWare 16.2.1 and Kernel 5.16
git checkout p16.2.1-k5.16
make
sudo make install
- Sign the module (when secure boot is enabled)
- Loading the modules may fail if secure boot is enabled
sudo modprobe vmmon
# modprobe: ERROR: could not insert 'vmmon': Operation not permitted
- Instruction from https://kb.vmware.com/s/article/2146460
- Create a key, sign the modules, and enroll the key
sudo su -
mkdir -p ~/build/mok
cd ~/build/mok
# Generate a signing key
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
# Sign the modules (this will change the module binaries!, ie. /lib/modules/5.16.0-6-amd64/misc/vmmon.ko)
/usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)
/usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)
# Import the public key to the system's MOK list by running this command
mokutil --import MOK.der
# Confirm a password for this MOK enrollment request.
# Reboot your machine. Follow the instructions to complete the enrollment from the UEFI console.
Enable 3D acceleration (No 3D support is available from the host
/ Hardware graphics acceleration is not available
)
Add to ~/.vmware/preferences [2]:
mks.gl.allowBlacklistedDrivers = "TRUE"
Hide Menu Bar in Guest
Edit .vmware/preferences [3]:
pref.vmplayer.fullscreen.nobar = "TRUE"
Assuming the shared folders are mounted on /mnt/hgfs, edit /etc/updatedb.conf and add /mnt/hgfs
to pruned dir list:
-PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph"
+PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /mnt/hgfs"
Enable network promiscuous mode on Debian
Create file /etc/systemd/system/vmware-promiscuous.service:
[Unit]
Description=Enable vmware promiscuous mode
After=vmware.service
[Service]
Type=oneshot
ExecStart=/bin/bash -c "chgrp vmnet /dev/vmnet0; chmod g+rw /dev/vmnet0"
ExecStop=/bin/bash -c "chgrp root /dev/vmnet0; chmod g-rw /dev/vmnet0"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Then enable and start it:
sudo systemctl enable vmware-promiscuous.service
sudo systemctl start vmware-promiscuous.service
Note:
vmware.service
is a generated service, generated bysystemd-sysv-generator
from /etc/init.d/vmware. Unit file is found in /run/systemd/generator.late/vmware.service.
Solution from VMWare KB.
Assume the following entries in the VMX file:
sharedFolder0.hostPath = "/users/test"
sharedFolder0.guestName = "share"
sharedFolder0.expiration = "never"
To enable symlinks, add:
sharedFolder0.followSymlinks = "TRUE"
Fix operation not permitted when loading kernel modules
sudo modprobe vmnet
# ... : operation not permitted
The simplest fix is to disable secure boot in the bios. Alternatively, the new modules must be signed locally.
Disable clipboard integration in VMWare Player
Add to .vmx file (VM powered off):
isolation.tools.copy.disable = "true" isolation.tools.paste.disable = "true"
Flickering / stuttering mouse in remote desktop connection (RDP)
- Symptom: When using a Windows RDP, the mouse pointer in a virtual machine flickers / stutters / moves back and forth on screen.
- See https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-Workstation-15-1-mouse-issue-with-RDP-and-Windows-10-1903/td-p/2227175/page/2
- This seems related to Win 10, 1903 or 1909 update, and using WDDM instead of XDDM.
- Fix: In remote host system (the controlled system), change the policy of the host:
GPEDIT.msc Local Computer Policy Computer Configuration Administrative Templates Windows Components Remote Desktop Service Remote Desktop Session Host Remote Session Environment Use WDDM graphics display driver for Remote Desktop Connections to DISABLED
Bluescreen when starting VMWare Player in Windows 10
- The issue is likely due to a too old VMWare Player (15.5 or older). [4]
- Try VMWare Player 15.5.7 or later.
Keyboard not working after VMWare Converter (Win10)
- This is due to a conflicting registry setting [5]
- Go to
SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}
, and in REG_MULTI_SZ valueUpperFilters
, make sure it only containskbdclass
. - Go to
SYSTEM\CurrentControlSet\Control\Class\{4D36E96F-E325-11CE-BFC1-08002BE10318}
, and in REG_MULTI_SZ valueUpperFilters
, make sure it only containsmouclass
.
Note that this can be done by attaching the guest VM disk to another working Win10 VM.
- Add the disk.
- Launch regedt32.
- Select
LOCAL_MACHINE
- In Menu, select load hive.
- Mount /Windows/System32/config/SYSTEM.