<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vi-toolkit.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wila</id>
	<title>VI-Toolkit - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vi-toolkit.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wila"/>
	<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Special:Contributions/Wila"/>
	<updated>2026-04-18T12:13:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1551</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1551"/>
		<updated>2024-01-06T12:02:29Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Zero out using fstrim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
=== Zero out using fstrim ===&lt;br /&gt;
&lt;br /&gt;
These days there&#039;s an alternative way for zero-ing out the parts of the disk that are not used using [https://www.man7.org/linux/man-pages/man8/fstrim.8.html fstrim].&lt;br /&gt;
&lt;br /&gt;
eg:&lt;br /&gt;
 # fstrim -a -v&lt;br /&gt;
 /var: 274.3 MiB (287592448 bytes) trimmed on /dev/sda3&lt;br /&gt;
 /tmp: 63 MiB (66060288 bytes) trimmed on /dev/sda5&lt;br /&gt;
 /home: 125 MiB (131072000 bytes) trimmed on /dev/sda6&lt;br /&gt;
 /boot/efi: 505.2 MiB (529735680 bytes) trimmed on /dev/sda1&lt;br /&gt;
 /: 5 MiB (5242880 bytes) trimmed on /dev/sda2&lt;br /&gt;
&lt;br /&gt;
The great thing about this is that it only zero&#039;s out the parts of the disk that are not zero and as such the disk does not inflate to its full size.&lt;br /&gt;
&lt;br /&gt;
* [https://forums.freebsd.org/threads/ssd-trim-maintenance.56951/post-328912 Detail comment from Theodore Ts&#039;o on using fstrim]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/vmware/open-vm-tools/issues/457 Avoid disk expansion while shrinking (github issue tracker)]&lt;br /&gt;
&lt;br /&gt;
On most modern systems fstrim is being run automatically using systemctl. You can check if it is enabled:&lt;br /&gt;
&lt;br /&gt;
 # systemctl status fstrim.timer&lt;br /&gt;
 ● fstrim.timer - Discard unused blocks once a week&lt;br /&gt;
      Loaded: loaded (/lib/systemd/system/fstrim.timer; disabled; vendor preset: enabled)&lt;br /&gt;
      Active: inactive (dead)&lt;br /&gt;
     Trigger: n/a&lt;br /&gt;
    Triggers: ● fstrim.service&lt;br /&gt;
        Docs: man:fstrim&lt;br /&gt;
&lt;br /&gt;
Oh-huh, our system does not have it enabled.. might there be a reason, such as that the UNMAP command is not supported?&lt;br /&gt;
If so, the following command would return 0.&lt;br /&gt;
 # cat /sys/block/sda/queue/discard_max_bytes&lt;br /&gt;
 1073741824&lt;br /&gt;
&lt;br /&gt;
So UNMAP is supported, but fstrim still is not enabled, lets fix that.&lt;br /&gt;
 # systemctl enable fstrim.timer&lt;br /&gt;
 Created symlink /etc/systemd/system/timers.target.wants/fstrim.timer → /lib/systemd/system/fstrim.timer.&lt;br /&gt;
and reload systemctl plus check that it now works...&lt;br /&gt;
&lt;br /&gt;
 # systemctl start fstrim.timer&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # systemctl status fstrim.timer&lt;br /&gt;
 ● fstrim.timer - Discard unused blocks once a week&lt;br /&gt;
      Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled)&lt;br /&gt;
      Active: active (waiting) since Sat 2024-01-06 13:00:46 CET; 6s ago&lt;br /&gt;
     Trigger: Mon 2024-01-08 01:17:59 CET; 1 day 12h left&lt;br /&gt;
    Triggers: ● fstrim.service&lt;br /&gt;
        Docs: man:fstrim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see also:&lt;br /&gt;
* https://www.suse.com/support/kb/doc/?id=000019447&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
On macOS you run it as:&lt;br /&gt;
 /Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root. So certainly try it first without running as root!&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run (as administrator):&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink c:\&lt;br /&gt;
 Please disregard any warnings about disk space for the duration of shrink process.&lt;br /&gt;
 Progress: 62 [=======&amp;gt;   ]&lt;br /&gt;
The progress you see here is VMware Tools blanking out the unused space.&lt;br /&gt;
&lt;br /&gt;
At 99% it will popup the &amp;quot;Shrinking Disk&amp;quot; progress dialog at the host that takes care of the actual shrinking process.&lt;br /&gt;
&lt;br /&gt;
If you are logged in via remote desktop then do expect to loose the connection for a bit while the actual shrinking is taking place.&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-6BB29187-F47F-41D1-AD92-1754036DACD9.html#GUID-6BB29187-F47F-41D1-AD92-1754036DACD9 Clean up a Virtual Machine - VMware Fusion 12 documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1550</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1550"/>
		<updated>2024-01-03T16:33:19Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Zero out using fstrim */  adding a small example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
=== Zero out using fstrim ===&lt;br /&gt;
&lt;br /&gt;
These days there&#039;s an alternative way for zero-ing out the parts of the disk that are not used using [https://www.man7.org/linux/man-pages/man8/fstrim.8.html fstrim].&lt;br /&gt;
&lt;br /&gt;
eg:&lt;br /&gt;
 # fstrim -a -v&lt;br /&gt;
 /var: 274.3 MiB (287592448 bytes) trimmed on /dev/sda3&lt;br /&gt;
 /tmp: 63 MiB (66060288 bytes) trimmed on /dev/sda5&lt;br /&gt;
 /home: 125 MiB (131072000 bytes) trimmed on /dev/sda6&lt;br /&gt;
 /boot/efi: 505.2 MiB (529735680 bytes) trimmed on /dev/sda1&lt;br /&gt;
 /: 5 MiB (5242880 bytes) trimmed on /dev/sda2&lt;br /&gt;
&lt;br /&gt;
The great thing about this is that it only zero&#039;s out the parts of the disk that are not zero and as such the disk does not inflate to its full size.&lt;br /&gt;
&lt;br /&gt;
* [https://forums.freebsd.org/threads/ssd-trim-maintenance.56951/post-328912 Detail comment from Theodore Ts&#039;o on using fstrim]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/vmware/open-vm-tools/issues/457 Avoid disk expansion while shrinking (github issue tracker)]&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
On macOS you run it as:&lt;br /&gt;
 /Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root. So certainly try it first without running as root!&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run (as administrator):&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink c:\&lt;br /&gt;
 Please disregard any warnings about disk space for the duration of shrink process.&lt;br /&gt;
 Progress: 62 [=======&amp;gt;   ]&lt;br /&gt;
The progress you see here is VMware Tools blanking out the unused space.&lt;br /&gt;
&lt;br /&gt;
At 99% it will popup the &amp;quot;Shrinking Disk&amp;quot; progress dialog at the host that takes care of the actual shrinking process.&lt;br /&gt;
&lt;br /&gt;
If you are logged in via remote desktop then do expect to loose the connection for a bit while the actual shrinking is taking place.&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-6BB29187-F47F-41D1-AD92-1754036DACD9.html#GUID-6BB29187-F47F-41D1-AD92-1754036DACD9 Clean up a Virtual Machine - VMware Fusion 12 documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Fixing_a_VM_that_had_AutoAddVTPM_set&amp;diff=1549</id>
		<title>Fixing a VM that had AutoAddVTPM set</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Fixing_a_VM_that_had_AutoAddVTPM_set&amp;diff=1549"/>
		<updated>2023-09-22T17:05:55Z</updated>

		<summary type="html">&lt;p&gt;Wila: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You might have made the mistake to use an experimental solution that was offered for a while by VMware to install Windows 11 as guest OS.&lt;br /&gt;
It involved adding a line to the .vmx file and after that you could add a TPM and thus install Windows 11.&lt;br /&gt;
This would encrypt parts of the VM, but not give you a password and as such some people to find out that their VM won&#039;t work on some other hosts.&lt;br /&gt;
The good part is that your data isn&#039;t actually encrypted, the bad part is that it isn&#039;t easy perse to get the data out.&lt;br /&gt;
&lt;br /&gt;
The following article: https://www.vimalin.com/blog/what-you-should-know-about-vmwares-experimental-vtpm/ has the technical background on what happens if you have used this experimental feature and is good background knowledge if you try to start trying to recover your VM.&lt;br /&gt;
&lt;br /&gt;
=== Here&#039;s one solution where you have a few manual steps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The steps to recover your VM are as follows:&lt;br /&gt;
&lt;br /&gt;
This reddit thread here has the steps: https://www.reddit.com/r/vmware/comments/qy9wns/comment/hmokzl7/ where I helped a user getting back their VM.&lt;br /&gt;
&lt;br /&gt;
For this type of VM none of the data is encrypted and only the descriptor files are encrypted.&lt;br /&gt;
You can recreate the descriptor files and get back to a functional VM. If you haven&#039;t resized the virtual disks over time then it is a matter of creating a new VM with the exact same virtual disk in size.&lt;br /&gt;
&lt;br /&gt;
That would be enough to get the descriptor data to copy over into the currently encrypted descriptor files. That should work.&lt;br /&gt;
&lt;br /&gt;
If OTOH you have increased the size of your virtual disks over time then you have to repeat that increase in the exact same manner. &lt;br /&gt;
&lt;br /&gt;
The steps are basically:&lt;br /&gt;
&lt;br /&gt;
* Create a new VM with a virtual disk of the same size as the encrypted one, make sure it has the same name.&lt;br /&gt;
* use the new descriptor file (&#039;MK Win Desktop.vmdk&#039;)&lt;br /&gt;
* use the old vmdk data files (&#039;MK Win Desktop-s001.vmdk&#039; (001 to 016)&lt;br /&gt;
* use the old .vmx file, but remove the lines that start with:&lt;br /&gt;
    managedVM.autoAddVTPM&lt;br /&gt;
    managedVM.ID&lt;br /&gt;
    encryption.encryptedKey&lt;br /&gt;
    encryption.keySafe&lt;br /&gt;
    encryption.data&lt;br /&gt;
&lt;br /&gt;
If there&#039;s no snapshots then you don&#039;t need .vmsd (don&#039;t copy it in the new vm, delete if there)&lt;br /&gt;
&lt;br /&gt;
Normally also no need for .nvram and .vmxf&lt;br /&gt;
&lt;br /&gt;
That &#039;&#039;should&#039;&#039; be all.&lt;br /&gt;
&lt;br /&gt;
One final note is that it is highly recommended to never touch your original VM and instead work with copies of the data while you try to get your VM back up and running. That way if you make a mistake you can just redo the steps. Otherwise you might introduce more problems and who needs yet another problem?&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Fixing_a_VM_that_had_AutoAddVTPM_set&amp;diff=1548</id>
		<title>Fixing a VM that had AutoAddVTPM set</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Fixing_a_VM_that_had_AutoAddVTPM_set&amp;diff=1548"/>
		<updated>2023-09-22T17:02:12Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Here&amp;#039;s one solution where you have a few manual steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You might have made the mistake to use an experimental solution that was offered for a while by VMware to install Windows 11 as guest OS.&lt;br /&gt;
It involved adding a line to the .vmx file and after that you could add a TPM and thus install Windows 11.&lt;br /&gt;
This would encrypt parts of the VM, but not give you a password and as such some people to find out that their VM won&#039;t work on some other hosts.&lt;br /&gt;
The good part is that your data isn&#039;t actually encrypted, the bad part is that it isn&#039;t easy perse to get the data out.&lt;br /&gt;
&lt;br /&gt;
=== Here&#039;s one solution where you have a few manual steps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The steps to recover your VM are as follows:&lt;br /&gt;
&lt;br /&gt;
This reddit thread here has the steps: https://www.reddit.com/r/vmware/comments/qy9wns/comment/hmokzl7/ where I helped a user getting back their VM.&lt;br /&gt;
&lt;br /&gt;
For this type of VM none of the data is encrypted and only the descriptor files are encrypted.&lt;br /&gt;
You can recreate the descriptor files and get back to a functional VM. If you haven&#039;t resized the virtual disks over time then it is a matter of creating a new VM with the exact same virtual disk in size.&lt;br /&gt;
&lt;br /&gt;
That would be enough to get the descriptor data to copy over into the currently encrypted descriptor files. That should work.&lt;br /&gt;
&lt;br /&gt;
If OTOH you have increased the size of your virtual disks over time then you have to repeat that increase in the exact same manner. &lt;br /&gt;
&lt;br /&gt;
The steps are basically:&lt;br /&gt;
&lt;br /&gt;
* Create a new VM with a virtual disk of the same size as the encrypted one, make sure it has the same name.&lt;br /&gt;
* use the new descriptor file (&#039;MK Win Desktop.vmdk&#039;)&lt;br /&gt;
* use the old vmdk data files (&#039;MK Win Desktop-s001.vmdk&#039; (001 to 016)&lt;br /&gt;
* use the old .vmx file, but remove the lines that start with:&lt;br /&gt;
    managedVM.autoAddVTPM&lt;br /&gt;
    managedVM.ID&lt;br /&gt;
    encryption.encryptedKey&lt;br /&gt;
    encryption.keySafe&lt;br /&gt;
    encryption.data&lt;br /&gt;
&lt;br /&gt;
If there&#039;s no snapshots then you don&#039;t need .vmsd (don&#039;t copy it in the new vm, delete if there)&lt;br /&gt;
&lt;br /&gt;
Normally also no need for .nvram and .vmxf&lt;br /&gt;
&lt;br /&gt;
That &#039;&#039;should&#039;&#039; be all.&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Fixing_a_VM_that_had_AutoAddVTPM_set&amp;diff=1547</id>
		<title>Fixing a VM that had AutoAddVTPM set</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Fixing_a_VM_that_had_AutoAddVTPM_set&amp;diff=1547"/>
		<updated>2023-09-22T16:55:34Z</updated>

		<summary type="html">&lt;p&gt;Wila: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You might have made the mistake to use an experimental solution that was offered for a while by VMware to install Windows 11 as guest OS.&lt;br /&gt;
It involved adding a line to the .vmx file and after that you could add a TPM and thus install Windows 11.&lt;br /&gt;
This would encrypt parts of the VM, but not give you a password and as such some people to find out that their VM won&#039;t work on some other hosts.&lt;br /&gt;
The good part is that your data isn&#039;t actually encrypted, the bad part is that it isn&#039;t easy perse to get the data out.&lt;br /&gt;
&lt;br /&gt;
=== Here&#039;s one solution where you have a few manual steps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The steps to recover your VM are as follows:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve written out the steps here: https://www.reddit.com/r/vmware/comments/qy9wns/comment/hmokzl7/&lt;br /&gt;
&lt;br /&gt;
Let me quote myself from one of my replies...&lt;br /&gt;
&lt;br /&gt;
The steps are basically:&lt;br /&gt;
&lt;br /&gt;
* Create a new VM with a virtual disk of the same size as the encrypted one, make sure it has the same name.&lt;br /&gt;
* use the new descriptor file (&#039;MK Win Desktop.vmdk&#039;)&lt;br /&gt;
* use the old vmdk data files (&#039;MK Win Desktop-s001.vmdk&#039; (001 to 016)&lt;br /&gt;
* use the old .vmx file, but remove the lines that start with:&lt;br /&gt;
    managedVM.autoAddVTPM&lt;br /&gt;
    managedVM.ID&lt;br /&gt;
    encryption.encryptedKey&lt;br /&gt;
    encryption.keySafe&lt;br /&gt;
    encryption.data&lt;br /&gt;
&lt;br /&gt;
If there&#039;s no snapshots then you don&#039;t need .vmsd (don&#039;t copy it in the new vm, delete if there)&lt;br /&gt;
&lt;br /&gt;
Normally also no need for .nvram and .vmxf&lt;br /&gt;
&lt;br /&gt;
That &#039;&#039;should&#039;&#039; be all.&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Fixing_a_VM_that_had_AutoAddVTPM_set&amp;diff=1546</id>
		<title>Fixing a VM that had AutoAddVTPM set</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Fixing_a_VM_that_had_AutoAddVTPM_set&amp;diff=1546"/>
		<updated>2023-09-22T16:53:59Z</updated>

		<summary type="html">&lt;p&gt;Wila: Created page with &amp;quot;You might have made the mistake to use an experimental solution that was offered for a while by VMware to install Windows 11 as guest OS. It involved adding a line to the .vmx file and after that you could add a TPM and thus install Windows 11. This would encrypt parts of the VM, but not give you a password and as such some people to find out that their VM won&amp;#039;t work on some other hosts. The good part is that your data isn&amp;#039;t actually encrypted, the bad part is that it is...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You might have made the mistake to use an experimental solution that was offered for a while by VMware to install Windows 11 as guest OS.&lt;br /&gt;
It involved adding a line to the .vmx file and after that you could add a TPM and thus install Windows 11.&lt;br /&gt;
This would encrypt parts of the VM, but not give you a password and as such some people to find out that their VM won&#039;t work on some other hosts.&lt;br /&gt;
The good part is that your data isn&#039;t actually encrypted, the bad part is that it isn&#039;t easy perse to get the data out.&lt;br /&gt;
&lt;br /&gt;
=== Here&#039;s one solution where you have a few manual setps ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The steps to recover your VM are as follows:&lt;br /&gt;
&lt;br /&gt;
I&#039;ve written out the steps here: https://www.reddit.com/r/vmware/comments/qy9wns/comment/hmokzl7/&lt;br /&gt;
&lt;br /&gt;
Let me quote myself from one of my replies...&lt;br /&gt;
&lt;br /&gt;
The steps are basically:&lt;br /&gt;
&lt;br /&gt;
* Create a new VM with a virtual disk of the same size as the encrypted one, make sure it has the same name.&lt;br /&gt;
* use the new descriptor file (&#039;MK Win Desktop.vmdk&#039;)&lt;br /&gt;
* use the old vmdk data files (&#039;MK Win Desktop-s001.vmdk&#039; (001 to 016)&lt;br /&gt;
* use the old .vmx file, but remove the lines that start with:&lt;br /&gt;
    managedVM.autoAddVTPM&lt;br /&gt;
    managedVM.ID&lt;br /&gt;
    encryption.encryptedKey&lt;br /&gt;
    encryption.keySafe&lt;br /&gt;
    encryption.data&lt;br /&gt;
&lt;br /&gt;
If there&#039;s no snapshots then you don&#039;t need .vmsd (don&#039;t copy it in the new vm, delete if there)&lt;br /&gt;
&lt;br /&gt;
Normally also no need for .nvram and .vmxf&lt;br /&gt;
&lt;br /&gt;
That __should__ be all.&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmware-vdiskmanager&amp;diff=1545</id>
		<title>Vmware-vdiskmanager</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmware-vdiskmanager&amp;diff=1545"/>
		<updated>2022-09-12T11:38:39Z</updated>

		<summary type="html">&lt;p&gt;Wila: Update vddk link to version 7.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== vmware-vdiskmanager ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With this tool that comes with VMware Workstation and VMware Fusion you can perform special disk actions such as:&lt;br /&gt;
* [[Shrink guest on hosted platform|shrink]]&lt;br /&gt;
* defragment&lt;br /&gt;
* repair&lt;br /&gt;
&lt;br /&gt;
=== Peculiarities ===&lt;br /&gt;
&lt;br /&gt;
* VMware vdisk manager throws a bogus error in all version from VMware Workstation 7 to Workstation 11, Fusion 3 to Fusion 7&lt;br /&gt;
&lt;br /&gt;
The error looks like:&lt;br /&gt;
  VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.&lt;br /&gt;
and can be safely ignored.&lt;br /&gt;
&lt;br /&gt;
This has been fixed in Fusion 8 / Workstation 12.0&lt;br /&gt;
&lt;br /&gt;
* Disk repair option -R was mostly broken from Workstation 8 to Workstation 11.&lt;br /&gt;
&lt;br /&gt;
This works much better since Fusion 8 / Workstation 12.0&lt;br /&gt;
&lt;br /&gt;
* You cannot reduce the capacity of a virtual disk. Eg. if you have defined a virtual disk of 10GB in size then you cannot change it to be 8GB in size. This is because any resizing the tool does is irregardless of the partition definitions, as this is potentially a destructive operation it is not allowed.&lt;br /&gt;
Even if you grow a disk in size you will have to adjust the partitions after the resize.&lt;br /&gt;
&lt;br /&gt;
You can shrink a disk if you have a non pre allocated disk, in this case it will wipe out the unused parts on your disk and give that space back to the host OS.&lt;br /&gt;
&lt;br /&gt;
* The remote host fusion in Fusion 8 and Workstation 12 via the -h option is broken. See also [https://communities.vmware.com/thread/527749 BUG: vmware-vdiskmanager does not accept advertised -h option]&lt;br /&gt;
&lt;br /&gt;
* VMware Player does not come with this tool, but in case of need you can download the [https://developer.vmware.com/web/sdk/7.0/vddk Virtual Disk Development Kit (VDDK)] which does include a copy of the program.&lt;br /&gt;
&lt;br /&gt;
=== Command line help ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an excerpt from the command line help:&lt;br /&gt;
  VMware Virtual Disk Manager - build 3160714.&lt;br /&gt;
  Usage: vmware-vdiskmanager.exe OPTIONS &amp;lt;disk-name&amp;gt; | &amp;lt;mount-point&amp;gt;&lt;br /&gt;
  Offline disk manipulation utility&lt;br /&gt;
    Operations, only one may be specified at a time:&lt;br /&gt;
       -c                   : create disk.  Additional creation options must be specified.  Only local virtual disks can be&lt;br /&gt;
                              created.&lt;br /&gt;
       -d                   : defragment the specified virtual disk. Only local virtual disks may be defragmented.&lt;br /&gt;
       -k                   : shrink the specified virtual disk. Only local virtual disks may be shrunk.&lt;br /&gt;
       -n &amp;lt;source-disk&amp;gt;     : rename the specified virtual disk; need to specify destination disk-name. Only local virtual&lt;br /&gt;
                              disks may be renamed.&lt;br /&gt;
       -p                   : prepare the mounted virtual disk specified by the mount point for shrinking.&lt;br /&gt;
       -r &amp;lt;source-disk&amp;gt;     : convert the specified disk; need to specify destination disk-type.  For local destination disks&lt;br /&gt;
                              the disk type must be specified.&lt;br /&gt;
       -x &amp;lt;new-capacity&amp;gt;    : expand the disk to the specified capacity. Only local virtual disks may be expanded.&lt;br /&gt;
       -R                   : check a sparse virtual disk for consistency and attempt to repair any errors.&lt;br /&gt;
       -e                   : check for disk chain consistency.&lt;br /&gt;
       -D                   : make disk deletable.  This should only be used on disks that have been copied from another product.&lt;br /&gt;
  &lt;br /&gt;
    Other Options:&lt;br /&gt;
       -q                   : do not log messages&lt;br /&gt;
  &lt;br /&gt;
    Additional options for create and convert:&lt;br /&gt;
       -a &amp;lt;adapter&amp;gt;         : (for use with -c only) adapter type&lt;br /&gt;
                              (ide, buslogic, lsilogic). Pass lsilogic for other adapter types.&lt;br /&gt;
       -s &amp;lt;size&amp;gt;            : capacity of the virtual disk&lt;br /&gt;
       -t &amp;lt;disk-type&amp;gt;       : disk type id&lt;br /&gt;
  &lt;br /&gt;
    Disk types:&lt;br /&gt;
        0                   : single growable virtual disk&lt;br /&gt;
        1                   : growable virtual disk split in 2GB files&lt;br /&gt;
        2                   : preallocated virtual disk&lt;br /&gt;
        3                   : preallocated virtual disk split in 2GB files&lt;br /&gt;
        4                   : preallocated ESX-type virtual disk&lt;br /&gt;
        5                   : compressed disk optimized for streaming&lt;br /&gt;
        6                   : thin provisioned virtual disk - ESX 3.x and above&lt;br /&gt;
  &lt;br /&gt;
       The capacity can be specified in sectors, KB, MB or GB.&lt;br /&gt;
       The acceptable ranges:&lt;br /&gt;
                             ide/scsi adapter : [1MB, 8192.0GB]&lt;br /&gt;
                             buslogic adapter : [1MB, 2040.0GB]&lt;br /&gt;
          ex 1: vmware-vdiskmanager.exe -c -s 850MB -a ide -t 0 myIdeDisk.vmdk&lt;br /&gt;
          ex 2: vmware-vdiskmanager.exe -d myDisk.vmdk&lt;br /&gt;
          ex 3: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vmdk&lt;br /&gt;
          ex 4: vmware-vdiskmanager.exe -x 36GB myDisk.vmdk&lt;br /&gt;
          ex 5: vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk&lt;br /&gt;
          ex 6: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 4 -h esx-name.mycompany.com \&lt;br /&gt;
                -u username -f passwordfile &amp;quot;[storage1]/path/to/targetDisk.vmdk&amp;quot;&lt;br /&gt;
          ex 7: vmware-vdiskmanager.exe -k myDisk.vmdk&lt;br /&gt;
          ex 8: vmware-vdiskmanager.exe -p &amp;lt;mount-point&amp;gt;&lt;br /&gt;
                (A virtual disk first needs to be mounted at &amp;lt;mount-point&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== Split disks ===&lt;br /&gt;
&lt;br /&gt;
Up until Workstation 11 / Fusion 7 a split disk would never be larger as 2GB.&lt;br /&gt;
&lt;br /&gt;
Due to the virtual disk sizes growing and the extra limitations - such as max open files - that could be hit with larger disks, this is no longer the case for split virtual disks. &lt;br /&gt;
&lt;br /&gt;
Nowadays the split disk size (= extent size) depends on the size you have set your virtual disk to be.&lt;br /&gt;
&lt;br /&gt;
The new split disk scheme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
This means that if you want to keep your Virtual Disks to be transportable via FAT32 that you probably should keep your disk sizes under 128GB.&lt;br /&gt;
&lt;br /&gt;
Note that NTFS or HFS has no such limitation, so choosing your maximum virtual disk size depends on need.&lt;br /&gt;
&lt;br /&gt;
=== External links ===&lt;br /&gt;
&lt;br /&gt;
* [http://kb.vmware.com/kb/1023856 Repairing a virtual disk in Fusion 3.1 and Workstation 7.1]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1544</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1544"/>
		<updated>2022-09-07T20:37:45Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Shrink the disk */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
=== Zero out using fstrim ===&lt;br /&gt;
&lt;br /&gt;
These days there&#039;s an alternative way for zero-ing out the parts of the disk that are not used using [https://www.man7.org/linux/man-pages/man8/fstrim.8.html fstrim].&lt;br /&gt;
&lt;br /&gt;
The great thing about this is that it only zero&#039;s out the parts of the disk that are not zero and as such the disk does not inflate to its full size.&lt;br /&gt;
&lt;br /&gt;
* [https://forums.freebsd.org/threads/ssd-trim-maintenance.56951/post-328912 Detail comment from Theodore Ts&#039;o on using fstrim]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/vmware/open-vm-tools/issues/457 Avoid disk expansion while shrinking (github issue tracker)]&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
On macOS you run it as:&lt;br /&gt;
 /Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root. So certainly try it first without running as root!&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run (as administrator):&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink c:\&lt;br /&gt;
 Please disregard any warnings about disk space for the duration of shrink process.&lt;br /&gt;
 Progress: 62 [=======&amp;gt;   ]&lt;br /&gt;
The progress you see here is VMware Tools blanking out the unused space.&lt;br /&gt;
&lt;br /&gt;
At 99% it will popup the &amp;quot;Shrinking Disk&amp;quot; progress dialog at the host that takes care of the actual shrinking process.&lt;br /&gt;
&lt;br /&gt;
If you are logged in via remote desktop then do expect to loose the connection for a bit while the actual shrinking is taking place.&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-6BB29187-F47F-41D1-AD92-1754036DACD9.html#GUID-6BB29187-F47F-41D1-AD92-1754036DACD9 Clean up a Virtual Machine - VMware Fusion 12 documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1543</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1543"/>
		<updated>2022-07-18T10:10:55Z</updated>

		<summary type="html">&lt;p&gt;Wila: Player - disable mitigations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
==== Linux Host - switch back from Vulkan to X11 ====&lt;br /&gt;
Workstation 16.2.0 and higher&lt;br /&gt;
&lt;br /&gt;
Add to .vmx if changing for one VM, or ~/.vmware/config if you want to change this systemwide:&lt;br /&gt;
&lt;br /&gt;
 mks.enableX11Presentation=TRUE&lt;br /&gt;
 mks.enableVulkanPresentation=FALSE&lt;br /&gt;
&lt;br /&gt;
That will force us to draw the window using X11 instead of Vulkan, which is normally less performant, but might work better on some setups?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-16-2-1-Display-3D-acceleration-not-working-Windows-10/m-p/2877574#M172414 VMware 16.2.1 Display 3D acceleration not working Windows 10]&lt;br /&gt;
&lt;br /&gt;
Has a great explanation on the difference by banackm&lt;br /&gt;
&lt;br /&gt;
Beware that if you have this issue -and your host has more than one GPU- that it also might be because the wrong GPU was selected for Vulkan.&lt;br /&gt;
&lt;br /&gt;
There&#039;s another switch to use the openGL renderer instead of Vulkan:&lt;br /&gt;
&lt;br /&gt;
 mks.enableVulkanRenderer = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and a switch to allow the Vulkan rendered use unsupported devices:&lt;br /&gt;
&lt;br /&gt;
 mks.vk.allowUnsupportedDevices = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There&#039;s even a way to force your VM to use a specific GPU, such as the discrete GPU instead of the integrated GPU.. if your host has both.&lt;br /&gt;
&lt;br /&gt;
 mks.forceDiscreteGPU = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See the tips from BlueFireStorm here: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-Workstation-cannot-connect-to-the-virtual-machine-Vmware/m-p/2899481/highlight/true#M174703 VMware Workstation cannot connect to the virtual machine]&lt;br /&gt;
&lt;br /&gt;
==== Dark Mode ====&lt;br /&gt;
&lt;br /&gt;
In Workstation 16.2 Dark Mode had disappeared by accident, it was discovered that adding the following setting to the preferences.ini file makes it re-appear.&lt;br /&gt;
&lt;br /&gt;
 wsFeatureDarkModeSupported = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-Workstation-16-2-dark-mode/m-p/2874723/highlight/true#M172025 forum user mrdow2000]&lt;br /&gt;
&lt;br /&gt;
==== All USB devices are disabled ====&lt;br /&gt;
&lt;br /&gt;
Check your .vmx file for the following line:&lt;br /&gt;
&lt;br /&gt;
 usb.restrictions.defaultAllow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it has this then remove that line and try again.&lt;br /&gt;
&lt;br /&gt;
It seems that this line is automatically added for Workstation/Player 16.2.x when using &amp;quot;Easy Setup&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
More details here: [https://communities.vmware.com/t5/VMware-Workstation-Player/All-USB-devices-are-greyed-out/m-p/2878067#M37999 All USB devices are greyed out]&lt;br /&gt;
&lt;br /&gt;
=== VMware Player ===&lt;br /&gt;
&lt;br /&gt;
==== Disable mitigations ====&lt;br /&gt;
&lt;br /&gt;
A message about disabling side channel mitigations shows up only when the ULM is used instead of the ring 0 VMM as the hypervisor monitor. &lt;br /&gt;
&lt;br /&gt;
That means the Windows host has been detected to have Hyper-V enabled.&lt;br /&gt;
&lt;br /&gt;
https://blogs.vmware.com/workstation/2020/05/vmware-workstation-now-supports-hyper-v-mode.html&lt;br /&gt;
&lt;br /&gt;
There is no advanced options in VMware Workstation Player. &lt;br /&gt;
&lt;br /&gt;
To disable the side channel mitigation, shut down the VM and add the following to the VM vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 ulm.disableMitigations = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Player/Poor-performance-after-update-with-message-about-side-channel/m-p/2811455/highlight/true#M35855 Poor performance after update with message about side channel mitigation]&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Disable scoreboard files ====&lt;br /&gt;
&lt;br /&gt;
In VMware Fusion 12.2 and Workstation 16.2 new files have been introduced for keeping some sort of statistics.&lt;br /&gt;
&lt;br /&gt;
These are called scoreboard files.&lt;br /&gt;
&lt;br /&gt;
You can disable that feature.&lt;br /&gt;
&lt;br /&gt;
 vmx.scoreboard.enabled = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-Workstation-16-2-0-and-scoreboard-files-What-it-is/m-p/2881784/highlight/true#M172906 Suggestion by DaveP on VMware Workstation 16.2.0 and .scoreboard files. What is it?]&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflectHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1542</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1542"/>
		<updated>2022-03-19T10:30:24Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Linux Host - switch back from Vulkan to X11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
==== Linux Host - switch back from Vulkan to X11 ====&lt;br /&gt;
Workstation 16.2.0 and higher&lt;br /&gt;
&lt;br /&gt;
Add to .vmx if changing for one VM, or ~/.vmware/config if you want to change this systemwide:&lt;br /&gt;
&lt;br /&gt;
 mks.enableX11Presentation=TRUE&lt;br /&gt;
 mks.enableVulkanPresentation=FALSE&lt;br /&gt;
&lt;br /&gt;
That will force us to draw the window using X11 instead of Vulkan, which is normally less performant, but might work better on some setups?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-16-2-1-Display-3D-acceleration-not-working-Windows-10/m-p/2877574#M172414 VMware 16.2.1 Display 3D acceleration not working Windows 10]&lt;br /&gt;
&lt;br /&gt;
Has a great explanation on the difference by banackm&lt;br /&gt;
&lt;br /&gt;
Beware that if you have this issue -and your host has more than one GPU- that it also might be because the wrong GPU was selected for Vulkan.&lt;br /&gt;
&lt;br /&gt;
There&#039;s another switch to use the openGL renderer instead of Vulkan:&lt;br /&gt;
&lt;br /&gt;
 mks.enableVulkanRenderer = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and a switch to allow the Vulkan rendered use unsupported devices:&lt;br /&gt;
&lt;br /&gt;
 mks.vk.allowUnsupportedDevices = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There&#039;s even a way to force your VM to use a specific GPU, such as the discrete GPU instead of the integrated GPU.. if your host has both.&lt;br /&gt;
&lt;br /&gt;
 mks.forceDiscreteGPU = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See the tips from BlueFireStorm here: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-Workstation-cannot-connect-to-the-virtual-machine-Vmware/m-p/2899481/highlight/true#M174703 VMware Workstation cannot connect to the virtual machine]&lt;br /&gt;
&lt;br /&gt;
==== Dark Mode ====&lt;br /&gt;
&lt;br /&gt;
In Workstation 16.2 Dark Mode had disappeared by accident, it was discovered that adding the following setting to the preferences.ini file makes it re-appear.&lt;br /&gt;
&lt;br /&gt;
 wsFeatureDarkModeSupported = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-Workstation-16-2-dark-mode/m-p/2874723/highlight/true#M172025 forum user mrdow2000]&lt;br /&gt;
&lt;br /&gt;
==== All USB devices are disabled ====&lt;br /&gt;
&lt;br /&gt;
Check your .vmx file for the following line:&lt;br /&gt;
&lt;br /&gt;
 usb.restrictions.defaultAllow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it has this then remove that line and try again.&lt;br /&gt;
&lt;br /&gt;
It seems that this line is automatically added for Workstation/Player 16.2.x when using &amp;quot;Easy Setup&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
More details here: [https://communities.vmware.com/t5/VMware-Workstation-Player/All-USB-devices-are-greyed-out/m-p/2878067#M37999 All USB devices are greyed out]&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Disable scoreboard files ====&lt;br /&gt;
&lt;br /&gt;
In VMware Fusion 12.2 and Workstation 16.2 new files have been introduced for keeping some sort of statistics.&lt;br /&gt;
&lt;br /&gt;
These are called scoreboard files.&lt;br /&gt;
&lt;br /&gt;
You can disable that feature.&lt;br /&gt;
&lt;br /&gt;
 vmx.scoreboard.enabled = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-Workstation-16-2-0-and-scoreboard-files-What-it-is/m-p/2881784/highlight/true#M172906 Suggestion by DaveP on VMware Workstation 16.2.0 and .scoreboard files. What is it?]&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflectHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1541</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1541"/>
		<updated>2021-12-08T01:41:26Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Any platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
==== Linux Host - switch back from Vulkan to X11 ====&lt;br /&gt;
Workstation 16.2.0 and higher&lt;br /&gt;
&lt;br /&gt;
Add to .vmx if changing for one VM, or ~/.vmware/config if you want to change this systemwide:&lt;br /&gt;
&lt;br /&gt;
 mks.enableX11Presentation=TRUE&lt;br /&gt;
 mks.enableVulkanPresentation=FALSE&lt;br /&gt;
&lt;br /&gt;
That will force us to draw the window using X11 instead of Vulkan, which is normally less performant, but might work better on some setups?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-16-2-1-Display-3D-acceleration-not-working-Windows-10/m-p/2877574#M172414 VMware 16.2.1 Display 3D acceleration not working Windows 10]&lt;br /&gt;
&lt;br /&gt;
Has a great explanation on the difference by banackm&lt;br /&gt;
&lt;br /&gt;
Beware that if you have this issue -and your host has more than one GPU- that it also might be because the wrong GPU was selected for Vulkan.&lt;br /&gt;
&lt;br /&gt;
==== Dark Mode ====&lt;br /&gt;
&lt;br /&gt;
In Workstation 16.2 Dark Mode had disappeared by accident, it was discovered that adding the following setting to the preferences.ini file makes it re-appear.&lt;br /&gt;
&lt;br /&gt;
 wsFeatureDarkModeSupported = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-Workstation-16-2-dark-mode/m-p/2874723/highlight/true#M172025 forum user mrdow2000]&lt;br /&gt;
&lt;br /&gt;
==== All USB devices are disabled ====&lt;br /&gt;
&lt;br /&gt;
Check your .vmx file for the following line:&lt;br /&gt;
&lt;br /&gt;
 usb.restrictions.defaultAllow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it has this then remove that line and try again.&lt;br /&gt;
&lt;br /&gt;
It seems that this line is automatically added for Workstation/Player 16.2.x when using &amp;quot;Easy Setup&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
More details here: [https://communities.vmware.com/t5/VMware-Workstation-Player/All-USB-devices-are-greyed-out/m-p/2878067#M37999 All USB devices are greyed out]&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Disable scoreboard files ====&lt;br /&gt;
&lt;br /&gt;
In VMware Fusion 12.2 and Workstation 16.2 new files have been introduced for keeping some sort of statistics.&lt;br /&gt;
&lt;br /&gt;
These are called scoreboard files.&lt;br /&gt;
&lt;br /&gt;
You can disable that feature.&lt;br /&gt;
&lt;br /&gt;
 vmx.scoreboard.enabled = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-Workstation-16-2-0-and-scoreboard-files-What-it-is/m-p/2881784/highlight/true#M172906 Suggestion by DaveP on VMware Workstation 16.2.0 and .scoreboard files. What is it?]&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflectHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=DOS&amp;diff=1540</id>
		<title>DOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=DOS&amp;diff=1540"/>
		<updated>2021-11-27T19:03:16Z</updated>

		<summary type="html">&lt;p&gt;Wila: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When creating a virtual machine with MS DOS (or PC Dos) then you&#039;ll notice that there are a few issues.&lt;br /&gt;
&lt;br /&gt;
The first major issue being that the VM will run one of your cores with a high CPU.&lt;br /&gt;
The reason being that MS DOS did not idle your CPU when it wasn&#039;t doing nothing, so instead of having a VM that uses no CPU when not doing anything you have that 1 core going nuts.&lt;br /&gt;
&lt;br /&gt;
The classical way to resolve that is by installing DosIdle.&lt;br /&gt;
&lt;br /&gt;
As it doesn&#039;t appear to be available much, here&#039;s a copy.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.vi-toolkit.com/images/f/f2/DOS-Drivers.zip Dos Drivers download]&lt;br /&gt;
&lt;br /&gt;
Other interesting notes for DOS users of VMware virtual machines:&lt;br /&gt;
&lt;br /&gt;
* [https://communities.vmware.com/t5/VMware-Workstation-Pro-Documents/Sound-Blaster-16-on-VMware-Workstation-15-5-and-VMware-Fusion-11/ta-p/2781947 SoundBlaster 16 support] which has vastly improved thanks to Darius.&lt;br /&gt;
&lt;br /&gt;
You also might want to check out Zamba&#039;s page here:&lt;br /&gt;
&lt;br /&gt;
* http://www.scampers.org/steve/vmware/&lt;br /&gt;
and Ken Kato&#039;s pages here:&lt;br /&gt;
&lt;br /&gt;
* https://sites.google.com/site/chitchatvmback/&lt;br /&gt;
&lt;br /&gt;
See also: [[Windows 3.1]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Windows_3.1&amp;diff=1539</id>
		<title>Windows 3.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Windows_3.1&amp;diff=1539"/>
		<updated>2021-11-27T19:02:48Z</updated>

		<summary type="html">&lt;p&gt;Wila: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some links:&lt;br /&gt;
&lt;br /&gt;
http://www.stankowic-development.net/?p=6674&amp;amp;lang=en&lt;br /&gt;
&lt;br /&gt;
[https://github.com/NattyNarwhal/vmwmouse VMware Mouse driver for Windows 3.x]&lt;br /&gt;
&lt;br /&gt;
See also [[DOS]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Windows_3.1&amp;diff=1538</id>
		<title>Windows 3.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Windows_3.1&amp;diff=1538"/>
		<updated>2021-11-27T18:53:24Z</updated>

		<summary type="html">&lt;p&gt;Wila: Created page with &amp;quot; http://www.scampers.org/steve/vmware/#31pack  http://www.stankowic-development.net/?p=6674&amp;amp;lang=en  https://sites.google.com/site/chitchatvmback/misc  [https://github.com/Nat...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
http://www.scampers.org/steve/vmware/#31pack&lt;br /&gt;
&lt;br /&gt;
http://www.stankowic-development.net/?p=6674&amp;amp;lang=en&lt;br /&gt;
&lt;br /&gt;
https://sites.google.com/site/chitchatvmback/misc&lt;br /&gt;
&lt;br /&gt;
[https://github.com/NattyNarwhal/vmwmouse VMware Mouse driver for Windows 3.x]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1537</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1537"/>
		<updated>2021-11-17T12:07:24Z</updated>

		<summary type="html">&lt;p&gt;Wila: Note about multiple GPU&amp;#039;s when having issues with Vulkan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
==== Linux Host - switch back from Vulkan to X11 ====&lt;br /&gt;
Workstation 16.2.0 and higher&lt;br /&gt;
&lt;br /&gt;
Add to .vmx if changing for one VM, or ~/.vmware/config if you want to change this systemwide:&lt;br /&gt;
&lt;br /&gt;
 mks.enableX11Presentation=TRUE&lt;br /&gt;
 mks.enableVulkanPresentation=FALSE&lt;br /&gt;
&lt;br /&gt;
That will force us to draw the window using X11 instead of Vulkan, which is normally less performant, but might work better on some setups?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-16-2-1-Display-3D-acceleration-not-working-Windows-10/m-p/2877574#M172414 VMware 16.2.1 Display 3D acceleration not working Windows 10]&lt;br /&gt;
&lt;br /&gt;
Has a great explanation on the difference by banackm&lt;br /&gt;
&lt;br /&gt;
Beware that if you have this issue -and your host has more than one GPU- that it also might be because the wrong GPU was selected for Vulkan.&lt;br /&gt;
&lt;br /&gt;
==== Dark Mode ====&lt;br /&gt;
&lt;br /&gt;
In Workstation 16.2 Dark Mode had disappeared by accident, it was discovered that adding the following setting to the preferences.ini file makes it re-appear.&lt;br /&gt;
&lt;br /&gt;
 wsFeatureDarkModeSupported = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-Workstation-16-2-dark-mode/m-p/2874723/highlight/true#M172025 forum user mrdow2000]&lt;br /&gt;
&lt;br /&gt;
==== All USB devices are disabled ====&lt;br /&gt;
&lt;br /&gt;
Check your .vmx file for the following line:&lt;br /&gt;
&lt;br /&gt;
 usb.restrictions.defaultAllow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it has this then remove that line and try again.&lt;br /&gt;
&lt;br /&gt;
It seems that this line is automatically added for Workstation/Player 16.2.x when using &amp;quot;Easy Setup&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
More details here: [https://communities.vmware.com/t5/VMware-Workstation-Player/All-USB-devices-are-greyed-out/m-p/2878067#M37999 All USB devices are greyed out]&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflectHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1536</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1536"/>
		<updated>2021-11-17T12:05:09Z</updated>

		<summary type="html">&lt;p&gt;Wila: Disable all USB devices&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
==== Linux Host - switch back from Vulkan to X11 ====&lt;br /&gt;
Workstation 16.2.0 and higher&lt;br /&gt;
&lt;br /&gt;
Add to .vmx if changing for one VM, or ~/.vmware/config if you want to change this systemwide:&lt;br /&gt;
&lt;br /&gt;
 mks.enableX11Presentation=TRUE&lt;br /&gt;
 mks.enableVulkanPresentation=FALSE&lt;br /&gt;
&lt;br /&gt;
That will force us to draw the window using X11 instead of Vulkan, which is normally less performant, but might work better on some setups?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-16-2-1-Display-3D-acceleration-not-working-Windows-10/m-p/2877574#M172414 VMware 16.2.1 Display 3D acceleration not working Windows 10]&lt;br /&gt;
&lt;br /&gt;
Has a great explanation on the difference by banackm&lt;br /&gt;
&lt;br /&gt;
==== Dark Mode ====&lt;br /&gt;
&lt;br /&gt;
In Workstation 16.2 Dark Mode had disappeared by accident, it was discovered that adding the following setting to the preferences.ini file makes it re-appear.&lt;br /&gt;
&lt;br /&gt;
 wsFeatureDarkModeSupported = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-Workstation-16-2-dark-mode/m-p/2874723/highlight/true#M172025 forum user mrdow2000]&lt;br /&gt;
&lt;br /&gt;
==== All USB devices are disabled ====&lt;br /&gt;
&lt;br /&gt;
Check your .vmx file for the following line:&lt;br /&gt;
&lt;br /&gt;
 usb.restrictions.defaultAllow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If it has this then remove that line and try again.&lt;br /&gt;
&lt;br /&gt;
It seems that this line is automatically added for Workstation/Player 16.2.x when using &amp;quot;Easy Setup&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
More details here: [https://communities.vmware.com/t5/VMware-Workstation-Player/All-USB-devices-are-greyed-out/m-p/2878067#M37999 All USB devices are greyed out]&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflectHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1535</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1535"/>
		<updated>2021-11-12T10:24:20Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Linux Host - switch back from Vulkan to X11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
==== Linux Host - switch back from Vulkan to X11 ====&lt;br /&gt;
Workstation 16.2.0 and higher&lt;br /&gt;
&lt;br /&gt;
Add to .vmx if changing for one VM, or ~/.vmware/config if you want to change this systemwide:&lt;br /&gt;
&lt;br /&gt;
 mks.enableX11Presentation=TRUE&lt;br /&gt;
 mks.enableVulkanPresentation=FALSE&lt;br /&gt;
&lt;br /&gt;
That will force us to draw the window using X11 instead of Vulkan, which is normally less performant, but might work better on some setups?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-16-2-1-Display-3D-acceleration-not-working-Windows-10/m-p/2877574#M172414 VMware 16.2.1 Display 3D acceleration not working Windows 10]&lt;br /&gt;
&lt;br /&gt;
Has a great explanation on the difference by banackm&lt;br /&gt;
&lt;br /&gt;
=== Dark Mode ===&lt;br /&gt;
&lt;br /&gt;
In Workstation 16.2 Dark Mode had disappeared by accident, it was discovered that adding the following setting to the preferences.ini file makes it re-appear.&lt;br /&gt;
&lt;br /&gt;
 wsFeatureDarkModeSupported = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-Workstation-16-2-dark-mode/m-p/2874723/highlight/true#M172025 forum user mrdow2000]&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflectHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1534</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1534"/>
		<updated>2021-11-12T10:21:06Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Change thumbnail speed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
==== Linux Host - switch back from Vulkan to X11 ====&lt;br /&gt;
Workstation 16.x and higher&lt;br /&gt;
&lt;br /&gt;
Add to .vmx if changing for one VM, or ~/.vmware/config if you want to change this systemwide:&lt;br /&gt;
&lt;br /&gt;
 mks.enableX11Presentation=TRUE&lt;br /&gt;
 mks.enableVulkanPresentation=FALSE&lt;br /&gt;
&lt;br /&gt;
That will force us to draw the window using X11 instead of Vulkan, which is normally less performant, but might work better on some setups?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/VMware-16-2-1-Display-3D-acceleration-not-working-Windows-10/m-p/2877574#M172414 VMware 16.2.1 Display 3D acceleration not working Windows 10]&lt;br /&gt;
&lt;br /&gt;
Has a great explanation on the difference by banackm&lt;br /&gt;
&lt;br /&gt;
=== Dark Mode ===&lt;br /&gt;
&lt;br /&gt;
In Workstation 16.2 Dark Mode had disappeared by accident, it was discovered that adding the following setting to the preferences.ini file makes it re-appear.&lt;br /&gt;
&lt;br /&gt;
 wsFeatureDarkModeSupported = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-Workstation-16-2-dark-mode/m-p/2874723/highlight/true#M172025 forum user mrdow2000]&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflectHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Building_Gallium3D&amp;diff=1533</id>
		<title>Building Gallium3D</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Building_Gallium3D&amp;diff=1533"/>
		<updated>2021-11-02T09:55:58Z</updated>

		<summary type="html">&lt;p&gt;Wila: Copy from my internal wiki on how-to build Gallium3D (hopelessly out of date now, but perhaps it helps)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== basic research ====&lt;br /&gt;
&lt;br /&gt;
setup Ubuntu Lucid (10.04) x64&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get mesa-utils&lt;br /&gt;
&lt;br /&gt;
 glxinfo | grep -i render&lt;br /&gt;
&lt;br /&gt;
 sudo add-apt-repository ppa:xorg-edgers/drivers-only &lt;br /&gt;
&lt;br /&gt;
Brian Paul at vmware&lt;br /&gt;
&lt;br /&gt;
Gallium llvmpipe is what we need and a kernel driver called  vmwgfx driver&lt;br /&gt;
===== vmwgfx =====&lt;br /&gt;
The vmwgfx kernel driver source can be found at: http://cgit.freedesktop.org/mesa/vmwgfx/commit/&lt;br /&gt;
direct download link sources:&lt;br /&gt;
http://cgit.freedesktop.org/mesa/vmwgfx/snapshot/vmwgfx-master.tar.gz&lt;br /&gt;
&lt;br /&gt;
In order to built the kernel module you&#039;ll need to have the kernel headers installed.&lt;br /&gt;
No Configure step is needed.&lt;br /&gt;
Just run:&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
The install doesn&#039;t appear to copy the kernel module into the kernel driver tree for whatever reason, so copy by hand: &lt;br /&gt;
 cp vmwgfx.ko /lib/modules/2.6.33-020633-generic/kernel/drivers/gpu/drm/vmwgfx&lt;br /&gt;
(create the vmwgfx subfolder first)&lt;br /&gt;
&lt;br /&gt;
Doesn&#039;t work either....&lt;br /&gt;
&lt;br /&gt;
Restarting X server &amp;gt; Right Alt + Print Screen + k&lt;br /&gt;
instead of Ctrl + Alt + Backspace&lt;br /&gt;
&lt;br /&gt;
===== Mesa =====&lt;br /&gt;
Gallium3D is part of the mesa drivers&lt;br /&gt;
The mesa drivers can be found at: http://cgit.freedesktop.org/mesa/mesa/commit/&lt;br /&gt;
and a direct download link for the source:&lt;br /&gt;
&lt;br /&gt;
http://cgit.freedesktop.org/mesa/mesa/snapshot/mesa-master.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.khattam.info/2010/02/06/installing-kernel-2-6-33-to-lucid-lynx-ubuntu-10-04-without-compiling/&lt;br /&gt;
&lt;br /&gt;
http://www.x.org/wiki/radeonBuildHowTo&lt;br /&gt;
&lt;br /&gt;
 # cd xf86-video-radeonhd/ # ./autogen.sh --prefix=/usr # make # make install&lt;br /&gt;
&lt;br /&gt;
This should install the RadeonHD driver for you. Please note that it might be nontrivial to completely uninstall the driver now.&lt;br /&gt;
&lt;br /&gt;
Also note that you can also drop off the --prefix=/usr part so the driver will be installed to /usr/local. You should at this point find out which path your X downloads its modules from. The next will prepend module search directory under /usr/local before the one which in many computers is the default X.org module path. Not that this can cause your X not to start if main module path is changed for some reason so don&#039;t forget this setting&#039;s existence. The second path needs to be the real X.org module path.&lt;br /&gt;
 File: /etc/X11/xorg.conf&lt;br /&gt;
 Section &amp;quot;Files&amp;quot;&lt;br /&gt;
   ModulePath &amp;quot;/usr/local/lib/xorg/modules,/usr/lib/xorg/modules&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
==== mesa build requirements ====&lt;br /&gt;
 sudo apt-get install build-essentials automake autoconf xserver-xorg-dev libdrm-dev x11proto-gl-dev libxfixes-dev x11proto-fixes-dev&lt;br /&gt;
 mesa-common-dev libosmesa-dev&lt;br /&gt;
 libxext-dev&lt;br /&gt;
 libxdamage-dev&lt;br /&gt;
 libxxf86vm-dev&lt;br /&gt;
 expat libexpat1-dev&lt;br /&gt;
 libxt-dev&lt;br /&gt;
 libxmu-dev&lt;br /&gt;
 libxi-dev&lt;br /&gt;
 llvm-dev&lt;br /&gt;
&lt;br /&gt;
 ./autogen.sh --enable-gallium-llvm --prefix=/opt/xorg&lt;br /&gt;
 ./autogen.sh --enable-gallium-llvm --with-driver=xlib --prefix=/opt/xorg&lt;br /&gt;
 ./autogen.sh --with-driver=osmesa --prefix=/opt/xorg&lt;br /&gt;
&lt;br /&gt;
 ./autogen.sh --prefix=/opt/xorg&lt;br /&gt;
&lt;br /&gt;
Now without gallium-llvm (this is the only one that compiles OK)&lt;br /&gt;
 ./autogen.sh --with-driver=xlib --prefix=/opt/xorg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== External links ====&lt;br /&gt;
&lt;br /&gt;
[http://www.phoronix.com/scan.php?page=article&amp;amp;item=gallium3d_llvmpipe&amp;amp;num=1 LLVMpipe: OpenGL With Gallium3D on Your CPU]&lt;br /&gt;
&lt;br /&gt;
[http://www.phoronix.com/scan.php?page=news_item&amp;amp;px=ODA1OA Gallium3D&#039;s LLVMpipe Software Rasterizer Is Kicking]&lt;br /&gt;
&lt;br /&gt;
[http://www.phoronix.com/scan.php?page=news_item&amp;amp;px=Nzc4Ng VMware Goes For Mainline Inclusion Of Its DRM]&lt;br /&gt;
&lt;br /&gt;
[http://www.phoronix.com/scan.php?page=news_item&amp;amp;px=ODIxMw LLVMpipe Doesn&#039;t Yet Like The GNOME Shell]&lt;br /&gt;
&lt;br /&gt;
http://vmware-svga.sourceforge.net/&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmwgfx&amp;diff=1532</id>
		<title>Vmwgfx</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmwgfx&amp;diff=1532"/>
		<updated>2021-11-02T09:55:22Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* vmwgfx */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== vmwgfx ==&lt;br /&gt;
&lt;br /&gt;
3D accelerated graphics in Linux&lt;br /&gt;
&lt;br /&gt;
This driver is nowadays part of the linux kernel, see:&lt;br /&gt;
&lt;br /&gt;
https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/vmwgfx&lt;br /&gt;
&lt;br /&gt;
Before it was at freedesktop:&lt;br /&gt;
&lt;br /&gt;
https://gitlab.freedesktop.org/mesa/vmwgfx&lt;br /&gt;
&lt;br /&gt;
older&lt;br /&gt;
https://cgit.freedesktop.org/mesa/vmwgfx&lt;br /&gt;
&lt;br /&gt;
and doc with tips on how-to build your own:&lt;br /&gt;
https://docs.mesa3d.org/drivers/svga3d.html&lt;br /&gt;
&lt;br /&gt;
In 2010 I wrote this on my internal wiki [[Building Gallium3D]] when I did build my own.&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmwgfx&amp;diff=1531</id>
		<title>Vmwgfx</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmwgfx&amp;diff=1531"/>
		<updated>2021-11-02T09:54:59Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* vmwgfx */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== vmwgfx ==&lt;br /&gt;
&lt;br /&gt;
3D accelerated graphics in Linux&lt;br /&gt;
&lt;br /&gt;
This driver is nowadays part of the linux kernel, see:&lt;br /&gt;
&lt;br /&gt;
https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/vmwgfx&lt;br /&gt;
&lt;br /&gt;
Before it was at freedesktop:&lt;br /&gt;
&lt;br /&gt;
https://gitlab.freedesktop.org/mesa/vmwgfx&lt;br /&gt;
&lt;br /&gt;
older&lt;br /&gt;
https://cgit.freedesktop.org/mesa/vmwgfx&lt;br /&gt;
&lt;br /&gt;
and doc with tips on how-to build your own:&lt;br /&gt;
https://docs.mesa3d.org/drivers/svga3d.html&lt;br /&gt;
&lt;br /&gt;
In 2010 I wrote this on my internal wiki [Building Gallium3D]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmwgfx&amp;diff=1530</id>
		<title>Vmwgfx</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmwgfx&amp;diff=1530"/>
		<updated>2021-11-02T09:48:12Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* vmwgfx */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== vmwgfx ==&lt;br /&gt;
&lt;br /&gt;
3D accelerated graphics in Linux&lt;br /&gt;
&lt;br /&gt;
This driver is nowadays part of the linux kernel, see:&lt;br /&gt;
&lt;br /&gt;
https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/vmwgfx&lt;br /&gt;
&lt;br /&gt;
Before it was at freedesktop:&lt;br /&gt;
&lt;br /&gt;
https://gitlab.freedesktop.org/mesa/vmwgfx&lt;br /&gt;
&lt;br /&gt;
older&lt;br /&gt;
https://cgit.freedesktop.org/mesa/vmwgfx&lt;br /&gt;
&lt;br /&gt;
and doc with tips on how-to build your own:&lt;br /&gt;
https://docs.mesa3d.org/drivers/svga3d.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmwgfx&amp;diff=1529</id>
		<title>Vmwgfx</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmwgfx&amp;diff=1529"/>
		<updated>2021-11-02T09:32:25Z</updated>

		<summary type="html">&lt;p&gt;Wila: Created page with &amp;quot;== vmwgfx ==  3D accelerated graphics in Linux  This driver is nowadays part of the linux kernel, see:  https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/vmwgfx  B...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== vmwgfx ==&lt;br /&gt;
&lt;br /&gt;
3D accelerated graphics in Linux&lt;br /&gt;
&lt;br /&gt;
This driver is nowadays part of the linux kernel, see:&lt;br /&gt;
&lt;br /&gt;
https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/vmwgfx&lt;br /&gt;
&lt;br /&gt;
Before it was at freedesktop:&lt;br /&gt;
&lt;br /&gt;
https://gitlab.freedesktop.org/mesa/vmwgfx&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Build_guest_vmware_kernel_modules&amp;diff=1528</id>
		<title>Build guest vmware kernel modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Build_guest_vmware_kernel_modules&amp;diff=1528"/>
		<updated>2021-11-02T09:30:23Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* available kernel modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Pre built modules are sometimes not enough====&lt;br /&gt;
When you select &amp;quot;install VMware Tools&amp;quot; then your VMware product will try to install the available vmware modules.&lt;br /&gt;
If you run linux then sometimes the kernel will not match up with the prebuilt modules as are supplied with your vmware product.&lt;br /&gt;
You can unzip the vmware tools .tar.gz bundle from the attached virtual CDrom and run the perl script, but if you just supply defaults you might still miss out on some modules as it will fail silently.&lt;br /&gt;
&lt;br /&gt;
eg running:&lt;br /&gt;
 ./vmware-install.pl --default&lt;br /&gt;
is great as long as you have provided the VM with the right prerequisites.&lt;br /&gt;
====The solution====&lt;br /&gt;
Present the linux vmware tools virtual cd-rom to the VM and mount as a CDRom.&lt;br /&gt;
    mount /dev/sr0 /mnt/cdrom  &lt;br /&gt;
Copy the files to your home folder&lt;br /&gt;
    cd ~  &lt;br /&gt;
    cp /mnt/cdrom/VMwareTools-*.tar.gz .  &lt;br /&gt;
unzip&lt;br /&gt;
    tar xfz VMwareTools-*.tar.gz  &lt;br /&gt;
go into sub folder to build the tools&lt;br /&gt;
    cd vmware-tools-distrib/  &lt;br /&gt;
check and run pre-requisites from next paragraph if needed and then run:&lt;br /&gt;
    sudo ./vmware-install.pl  &lt;br /&gt;
Press &amp;lt;enter&amp;gt; on any questions asked.&lt;br /&gt;
&lt;br /&gt;
After you are done you can remove the vmware-tool-distrib folder as it is only needed before the install.&lt;br /&gt;
&lt;br /&gt;
After installing VMware Tools you now have the possibility to run&lt;br /&gt;
 vmware-config-tools.pl&lt;br /&gt;
to configure how vmware tools is supposed to work.&lt;br /&gt;
&lt;br /&gt;
Please note that on linux kernels 3.3 and higher, the original vmxnet module is no longer recommended.&lt;br /&gt;
You are advised to use a newer virtual NIC such as vmxnet3 or e1000e.&lt;br /&gt;
&lt;br /&gt;
====Preconditions for the script to work====&lt;br /&gt;
&lt;br /&gt;
If you try to run the vmware-install.pl script and you need to build new kernel modules, then the script might give you the following error:&lt;br /&gt;
 Before you can compile modules, you need to have the following installed...&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
 gcc&lt;br /&gt;
 kernel headers of the running kernel&lt;br /&gt;
&lt;br /&gt;
You will have to get your kernel-headers and a compiler and build system before hand.&lt;br /&gt;
On Ubuntu or debian based systems execute this:&lt;br /&gt;
 sudo apt-get install build-essential linux-headers-$(uname -r)&lt;br /&gt;
On fedora / Red Hat based systems:&lt;br /&gt;
 su -c &amp;quot;yum install kernel-devel&amp;quot;&lt;br /&gt;
On SUSE / openSUSE use YaST to fetch the latest linux-kernel-headers&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
===== available kernel modules =====&lt;br /&gt;
After the manual compile, you can run the lsmod command to see what modules it was able to load:&lt;br /&gt;
 $ lsmod | grep -i vm&lt;br /&gt;
&lt;br /&gt;
The following kernel modules are currently available:&lt;br /&gt;
* vmhgfs - shared folders&lt;br /&gt;
* vmxnet3 - virtual network adapter&lt;br /&gt;
* vmmemctl - memory&lt;br /&gt;
* vmw_balloon - balloon memory driver&lt;br /&gt;
* vmw_pvscsi - paravirtual scsi&lt;br /&gt;
* [[vmwgfx]] - accelerated graphics&lt;br /&gt;
* vmblock - enable drag &amp;amp; drop between guest and host OS (desktop feature)&lt;br /&gt;
* vmsync -&lt;br /&gt;
* vgauth - Guest Authentication&lt;br /&gt;
* vmw_vmci - inter-VM and host interface&lt;br /&gt;
* vmw_vsock_vmci_transport - &lt;br /&gt;
* vsock - virtual sockets&lt;br /&gt;
&lt;br /&gt;
Interesting tidbit, the reason that there&#039;s a &amp;quot;vmw_&amp;quot; prefix means it is VMware only and if there&#039;s no prefix, like vsock, then it is because it is a hypervisor-independent interface. See [https://communities.vmware.com/thread/497086 (1)] for details&lt;br /&gt;
&lt;br /&gt;
There&#039;s also a number of additional commands/scripts to enable other features&lt;br /&gt;
* /usr/bin/vmware-toolbox-cmd - shrink, upgrade, statistics, version, timesync, run scripts on power operations, power operations, control devices&lt;br /&gt;
* /usr/bin/vmware-user - advanced X features, guest resolution fit, drag and drop, file and text copy &amp;amp; paste. Running this will start the vmtoolsd daemon in /usr/lib/vmware-tools/sbin64&lt;br /&gt;
* /usr/lib/vmware-tools/sbin64/vmware-checkvm - prints VMware software version&lt;br /&gt;
* /usr/lib/vmware-tools/sbin64/vmware-modconfig-console - module helper for acquiring status, kernel headers version, is a link to /usr/lib/vmware-tools/bin64/appLoader option --install-all will actually build all of your modules as well.&lt;br /&gt;
* vmware-tools-thinprint - printing integration with the host using a virtual printing daemon&lt;br /&gt;
&lt;br /&gt;
===== unable to start services for VMware Tools =====&lt;br /&gt;
&lt;br /&gt;
 Creating a new initrd boot image for the kernel.&lt;br /&gt;
 &lt;br /&gt;
 NOTE: both /etc/vmware-tools/GuestProxyData/server/key.pem and&lt;br /&gt;
       /etc/vmware-tools/GuestProxyData/server/cert.pem already exist.&lt;br /&gt;
       They are not generated again. To regenerate them by force,&lt;br /&gt;
       use the &amp;quot;vmware-guestproxycerttool -g -f&amp;quot; command.&lt;br /&gt;
 &lt;br /&gt;
 initctl: Job failed to start&lt;br /&gt;
 Unable to start services for VMware Tools&lt;br /&gt;
 &lt;br /&gt;
 Execution aborted.&lt;br /&gt;
&lt;br /&gt;
If you get the above error then you can probably do as is sugggested above. I simply nuked the folder /etc/vmware-tools/GuestProxyData (rm -rf ) and completely reran the installer, after that it worked.&lt;br /&gt;
&lt;br /&gt;
===== vgauth what? =====&lt;br /&gt;
&lt;br /&gt;
Nowadays VMware Tools asks if you want to enable the CAF agent (Common Agent Framework agent).&lt;br /&gt;
&lt;br /&gt;
If you are like me then you are probably wondering what this is.&lt;br /&gt;
&lt;br /&gt;
At the forums there&#039;s an answer ( https://communities.vmware.com/message/2604183#2604183 by VMware employee ykzang)&lt;br /&gt;
&lt;br /&gt;
I&#039;m quoting that here for ease of reading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Multiple VMware management solutions (e.g. vCM, Hyperic, Log Insight) require  installation of in-guest agents.The Common Agent Framework attempts to provide a common framework to unify and simplify the management of various types of agents, and these agents would be referred to as Common Agent.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Those VMware solutions are working on distinct administrative domains from the guest. VGAuth provides a way to authorize those solutions users&#039; behaviors(install agent for example) within guest.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Alternative solution====&lt;br /&gt;
Many Linux distributions now come with a package called [[open-vm-tools]] and while that does give you a good bases, there are still things missing.&lt;br /&gt;
Most notable is the host guest file system integration that is provided by the vmhgfs kernel module.&lt;br /&gt;
&lt;br /&gt;
[[Category: CLI]] [[Category: Bash]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1527</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1527"/>
		<updated>2021-10-29T09:07:16Z</updated>

		<summary type="html">&lt;p&gt;Wila: Add Dark Mode setting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
=== Dark Mode ===&lt;br /&gt;
&lt;br /&gt;
In Workstation 16.2 Dark Mode had disappeared by accident, it was discovered that adding the following setting to the preferences.ini file makes it re-appear.&lt;br /&gt;
&lt;br /&gt;
 wsFeatureDarkModeSupported = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-Workstation-16-2-dark-mode/m-p/2874723/highlight/true#M172025 forum user mrdow2000]&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflectHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1526</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1526"/>
		<updated>2021-10-12T23:15:55Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Zero out using fstrim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
=== Zero out using fstrim ===&lt;br /&gt;
&lt;br /&gt;
These days there&#039;s an alternative way for zero-ing out the parts of the disk that are not used using [https://www.man7.org/linux/man-pages/man8/fstrim.8.html fstrim].&lt;br /&gt;
&lt;br /&gt;
The great thing about this is that it only zero&#039;s out the parts of the disk that are not zero and as such the disk does not inflate to its full size.&lt;br /&gt;
&lt;br /&gt;
* [https://forums.freebsd.org/threads/ssd-trim-maintenance.56951/post-328912 Detail comment from Theodore Ts&#039;o on using fstrim]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/vmware/open-vm-tools/issues/457 Avoid disk expansion while shrinking (github issue tracker)]&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root.&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run (as administrator):&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink c:\&lt;br /&gt;
 Please disregard any warnings about disk space for the duration of shrink process.&lt;br /&gt;
 Progress: 62 [=======&amp;gt;   ]&lt;br /&gt;
The progress you see here is VMware Tools blanking out the unused space.&lt;br /&gt;
&lt;br /&gt;
At 99% it will popup the &amp;quot;Shrinking Disk&amp;quot; progress dialog at the host that takes care of the actual shrinking process.&lt;br /&gt;
&lt;br /&gt;
If you are logged in via remote desktop then do expect to loose the connection for a bit while the actual shrinking is taking place.&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-6BB29187-F47F-41D1-AD92-1754036DACD9.html#GUID-6BB29187-F47F-41D1-AD92-1754036DACD9 Clean up a Virtual Machine - VMware Fusion 12 documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1525</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1525"/>
		<updated>2021-10-12T22:23:06Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Zero out using fstrim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
=== Zero out using fstrim ===&lt;br /&gt;
&lt;br /&gt;
These days there&#039;s an alternative way for zero-ing out the parts of the disk that are not used using [https://www.man7.org/linux/man-pages/man8/fstrim.8.html fstrim].&lt;br /&gt;
&lt;br /&gt;
The great thing about this is that it only zero&#039;s out the parts of the disk that are not zero and as such the disk does not inflate to its full size.&lt;br /&gt;
&lt;br /&gt;
[https://forums.freebsd.org/threads/ssd-trim-maintenance.56951/post-328912 Detail comment from Theodore Ts&#039;o on using fstrim]&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root.&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run (as administrator):&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink c:\&lt;br /&gt;
 Please disregard any warnings about disk space for the duration of shrink process.&lt;br /&gt;
 Progress: 62 [=======&amp;gt;   ]&lt;br /&gt;
The progress you see here is VMware Tools blanking out the unused space.&lt;br /&gt;
&lt;br /&gt;
At 99% it will popup the &amp;quot;Shrinking Disk&amp;quot; progress dialog at the host that takes care of the actual shrinking process.&lt;br /&gt;
&lt;br /&gt;
If you are logged in via remote desktop then do expect to loose the connection for a bit while the actual shrinking is taking place.&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-6BB29187-F47F-41D1-AD92-1754036DACD9.html#GUID-6BB29187-F47F-41D1-AD92-1754036DACD9 Clean up a Virtual Machine - VMware Fusion 12 documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1524</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1524"/>
		<updated>2021-10-12T22:14:49Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Zero out using fstrim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
=== Zero out using fstrim ===&lt;br /&gt;
&lt;br /&gt;
These days there&#039;s an alternative way for zero-ing out the parts of the disk that are not used using [https://www.man7.org/linux/man-pages/man8/fstrim.8.html fstrim].&lt;br /&gt;
&lt;br /&gt;
The great thing about this is that it only zero&#039;s out the parts of the disk that are not zero and as such the disk does not inflate to its full size.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root.&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run (as administrator):&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink c:\&lt;br /&gt;
 Please disregard any warnings about disk space for the duration of shrink process.&lt;br /&gt;
 Progress: 62 [=======&amp;gt;   ]&lt;br /&gt;
The progress you see here is VMware Tools blanking out the unused space.&lt;br /&gt;
&lt;br /&gt;
At 99% it will popup the &amp;quot;Shrinking Disk&amp;quot; progress dialog at the host that takes care of the actual shrinking process.&lt;br /&gt;
&lt;br /&gt;
If you are logged in via remote desktop then do expect to loose the connection for a bit while the actual shrinking is taking place.&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-6BB29187-F47F-41D1-AD92-1754036DACD9.html#GUID-6BB29187-F47F-41D1-AD92-1754036DACD9 Clean up a Virtual Machine - VMware Fusion 12 documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1523</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1523"/>
		<updated>2021-10-12T22:12:58Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Zero out a part of your virtual disk */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
=== Zero out using fstrim ===&lt;br /&gt;
&lt;br /&gt;
These days there&#039;s an alternative way for zero-ing out the parts of the disk that are not used using fstrim.&lt;br /&gt;
&lt;br /&gt;
The great thing about this is that it only zero&#039;s out the parts of the disk that are not zero and as such the disk does not inflate to its full size.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root.&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run (as administrator):&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink c:\&lt;br /&gt;
 Please disregard any warnings about disk space for the duration of shrink process.&lt;br /&gt;
 Progress: 62 [=======&amp;gt;   ]&lt;br /&gt;
The progress you see here is VMware Tools blanking out the unused space.&lt;br /&gt;
&lt;br /&gt;
At 99% it will popup the &amp;quot;Shrinking Disk&amp;quot; progress dialog at the host that takes care of the actual shrinking process.&lt;br /&gt;
&lt;br /&gt;
If you are logged in via remote desktop then do expect to loose the connection for a bit while the actual shrinking is taking place.&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-6BB29187-F47F-41D1-AD92-1754036DACD9.html#GUID-6BB29187-F47F-41D1-AD92-1754036DACD9 Clean up a Virtual Machine - VMware Fusion 12 documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Open-vm-tools&amp;diff=1522</id>
		<title>Open-vm-tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Open-vm-tools&amp;diff=1522"/>
		<updated>2021-10-11T22:56:38Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* old links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Open Virtual Machine Tools ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools.&lt;br /&gt;
&lt;br /&gt;
Almost all of the current Linux distributions carry this version of VMware Tools in their repositories.&lt;br /&gt;
This is also the preferred version of VMware Tools over what might be bundled with VMware&#039;s products.&lt;br /&gt;
&lt;br /&gt;
You will also find this on other open source operating systems such as FreeBSD.&lt;br /&gt;
&lt;br /&gt;
The Open Virtual Machine Tools project aims to provide a suite of open source virtualization utilities and drivers to improve the functionality and user experience of virtualization. The project currently runs in guest operating systems under VMware hypervisors.&lt;br /&gt;
&lt;br /&gt;
Project page: https://github.com/vmware/open-vm-tools&lt;br /&gt;
&lt;br /&gt;
=== Install on Debian / Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
On a server:&lt;br /&gt;
 sudo apt-get install open-vm-tools &lt;br /&gt;
&lt;br /&gt;
On a desktop:&lt;br /&gt;
 sudo apt-get install open-vm-tools open-vm-tools-desktop&lt;br /&gt;
&lt;br /&gt;
=== Install on CentOS / RedHat ===&lt;br /&gt;
&lt;br /&gt;
On a server:&lt;br /&gt;
 sudo dnf install open-vm-tools &lt;br /&gt;
&lt;br /&gt;
On a desktop:&lt;br /&gt;
 sudo dnf install open-vm-tools open-vm-tools-desktop&lt;br /&gt;
&lt;br /&gt;
Installing X11 driver:&lt;br /&gt;
 sudo dnf install xorg-x11-drv-vmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== old links ===&lt;br /&gt;
* [http://sourceforge.net/projects/open-vm-tools/ sourceforge open-vm-tools project page]&lt;br /&gt;
&lt;br /&gt;
* [http://open-vm-tools.sourceforge.net/ homepage]&lt;br /&gt;
&lt;br /&gt;
[[Category: VMware OSS]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Open-vm-tools&amp;diff=1521</id>
		<title>Open-vm-tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Open-vm-tools&amp;diff=1521"/>
		<updated>2021-10-11T22:56:16Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* old links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Open Virtual Machine Tools ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools.&lt;br /&gt;
&lt;br /&gt;
Almost all of the current Linux distributions carry this version of VMware Tools in their repositories.&lt;br /&gt;
This is also the preferred version of VMware Tools over what might be bundled with VMware&#039;s products.&lt;br /&gt;
&lt;br /&gt;
You will also find this on other open source operating systems such as FreeBSD.&lt;br /&gt;
&lt;br /&gt;
The Open Virtual Machine Tools project aims to provide a suite of open source virtualization utilities and drivers to improve the functionality and user experience of virtualization. The project currently runs in guest operating systems under VMware hypervisors.&lt;br /&gt;
&lt;br /&gt;
Project page: https://github.com/vmware/open-vm-tools&lt;br /&gt;
&lt;br /&gt;
=== Install on Debian / Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
On a server:&lt;br /&gt;
 sudo apt-get install open-vm-tools &lt;br /&gt;
&lt;br /&gt;
On a desktop:&lt;br /&gt;
 sudo apt-get install open-vm-tools open-vm-tools-desktop&lt;br /&gt;
&lt;br /&gt;
=== Install on CentOS / RedHat ===&lt;br /&gt;
&lt;br /&gt;
On a server:&lt;br /&gt;
 sudo dnf install open-vm-tools &lt;br /&gt;
&lt;br /&gt;
On a desktop:&lt;br /&gt;
 sudo dnf install open-vm-tools open-vm-tools-desktop&lt;br /&gt;
&lt;br /&gt;
Installing X11 driver:&lt;br /&gt;
 sudo dnf install xorg-x11-drv-vmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== old links ====&lt;br /&gt;
* [http://sourceforge.net/projects/open-vm-tools/ sourceforge open-vm-tools project page]&lt;br /&gt;
&lt;br /&gt;
* [http://open-vm-tools.sourceforge.net/ homepage]&lt;br /&gt;
&lt;br /&gt;
[[Category: VMware OSS]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Open-vm-tools&amp;diff=1520</id>
		<title>Open-vm-tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Open-vm-tools&amp;diff=1520"/>
		<updated>2021-10-11T22:55:47Z</updated>

		<summary type="html">&lt;p&gt;Wila: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Open Virtual Machine Tools ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools.&lt;br /&gt;
&lt;br /&gt;
Almost all of the current Linux distributions carry this version of VMware Tools in their repositories.&lt;br /&gt;
This is also the preferred version of VMware Tools over what might be bundled with VMware&#039;s products.&lt;br /&gt;
&lt;br /&gt;
You will also find this on other open source operating systems such as FreeBSD.&lt;br /&gt;
&lt;br /&gt;
The Open Virtual Machine Tools project aims to provide a suite of open source virtualization utilities and drivers to improve the functionality and user experience of virtualization. The project currently runs in guest operating systems under VMware hypervisors.&lt;br /&gt;
&lt;br /&gt;
Project page: https://github.com/vmware/open-vm-tools&lt;br /&gt;
&lt;br /&gt;
=== Install on Debian / Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
On a server:&lt;br /&gt;
 sudo apt-get install open-vm-tools &lt;br /&gt;
&lt;br /&gt;
On a desktop:&lt;br /&gt;
 sudo apt-get install open-vm-tools open-vm-tools-desktop&lt;br /&gt;
&lt;br /&gt;
=== Install on CentOS / RedHat ===&lt;br /&gt;
&lt;br /&gt;
On a server:&lt;br /&gt;
 sudo dnf install open-vm-tools &lt;br /&gt;
&lt;br /&gt;
On a desktop:&lt;br /&gt;
 sudo dnf install open-vm-tools open-vm-tools-desktop&lt;br /&gt;
&lt;br /&gt;
Installing X11 driver:&lt;br /&gt;
 sudo dnf install xorg-x11-drv-vmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== old links =====&lt;br /&gt;
* [http://sourceforge.net/projects/open-vm-tools/ sourceforge open-vm-tools project page]&lt;br /&gt;
&lt;br /&gt;
* [http://open-vm-tools.sourceforge.net/ homepage]&lt;br /&gt;
&lt;br /&gt;
[[Category: VMware OSS]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Open-vm-tools&amp;diff=1519</id>
		<title>Open-vm-tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Open-vm-tools&amp;diff=1519"/>
		<updated>2021-10-11T22:46:52Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Open Virtual Machine Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Open Virtual Machine Tools ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools.&lt;br /&gt;
&lt;br /&gt;
Almost all of the current Linux distributions carry this version of VMware Tools in their repositories.&lt;br /&gt;
This is also the preferred version of VMware Tools over what might be bundled with VMware&#039;s products.&lt;br /&gt;
&lt;br /&gt;
You will also find this on other open source operating systems such as FreeBSD.&lt;br /&gt;
&lt;br /&gt;
The Open Virtual Machine Tools project aims to provide a suite of open source virtualization utilities and drivers to improve the functionality and user experience of virtualization. The project currently runs in guest operating systems under VMware hypervisors.&lt;br /&gt;
&lt;br /&gt;
Project page: https://github.com/vmware/open-vm-tools&lt;br /&gt;
&lt;br /&gt;
=== Install on Debian / Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
On a server:&lt;br /&gt;
 sudo apt-get install open-vm-tools &lt;br /&gt;
&lt;br /&gt;
On a desktop:&lt;br /&gt;
 sudo apt-get install open-vm-tools open-vm-tools-desktop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== old links =====&lt;br /&gt;
* [http://sourceforge.net/projects/open-vm-tools/ sourceforge open-vm-tools project page]&lt;br /&gt;
&lt;br /&gt;
* [http://open-vm-tools.sourceforge.net/ homepage]&lt;br /&gt;
&lt;br /&gt;
[[Category: VMware OSS]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1518</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1518"/>
		<updated>2021-10-07T16:23:25Z</updated>

		<summary type="html">&lt;p&gt;Wila: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflectHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1517</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1517"/>
		<updated>2021-08-09T13:35:49Z</updated>

		<summary type="html">&lt;p&gt;Wila: Added an example of the shrinking process in progress and listing the RDP side effect that I am seeing here.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root.&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run (as administrator):&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink c:\&lt;br /&gt;
 Please disregard any warnings about disk space for the duration of shrink process.&lt;br /&gt;
 Progress: 62 [=======&amp;gt;   ]&lt;br /&gt;
The progress you see here is VMware Tools blanking out the unused space.&lt;br /&gt;
&lt;br /&gt;
At 99% it will popup the &amp;quot;Shrinking Disk&amp;quot; progress dialog at the host that takes care of the actual shrinking process.&lt;br /&gt;
&lt;br /&gt;
If you are logged in via remote desktop then do expect to loose the connection for a bit while the actual shrinking is taking place.&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-6BB29187-F47F-41D1-AD92-1754036DACD9.html#GUID-6BB29187-F47F-41D1-AD92-1754036DACD9 Clean up a Virtual Machine - VMware Fusion 12 documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Resources&amp;diff=1516</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Resources&amp;diff=1516"/>
		<updated>2021-06-07T14:10:08Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* VMware Developer targeted sites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== VMware Developer targeted sites ====&lt;br /&gt;
&lt;br /&gt;
* [http://blogs.vmware.com/PowerCLI/ VMware PowerCLI blog]&lt;br /&gt;
&lt;br /&gt;
* [https://blogs.vmware.com/code/ VMware Developer center blog] (old link is [http://blogs.vmware.com/developer here])&lt;br /&gt;
&lt;br /&gt;
* [https://code.vmware.com VMware {code}] and [https://twitter.com/vmwarecode @vmwarecode twitter feed]&lt;br /&gt;
&lt;br /&gt;
* [https://communities.vmware.com/t5/VMware-code/ct-p/4500-home VMware {code} forum]&lt;br /&gt;
&lt;br /&gt;
* [https://communities.vmware.com/t5/Sample-Exchange-Discussions/bd-p/4502 VMware {code} sample exchange discussions] VMware Community Sample Code&lt;br /&gt;
&lt;br /&gt;
* [http://libraries.io/search?page=1&amp;amp;q=vmware Libraries.io VMware pages]&lt;br /&gt;
&lt;br /&gt;
==== Sites with code ====&lt;br /&gt;
Places to visit for information, scripts, code snippets and tools (usually) with source code.&lt;br /&gt;
&lt;br /&gt;
* [http://powerscripting.net/ Powershell powerscripting.net]&lt;br /&gt;
&lt;br /&gt;
* [https://sites.google.com/site/chitchatvmback/ Ken Kato VMware&#039;s Back]&lt;br /&gt;
&lt;br /&gt;
* [http://sanbarrow.com sanbarrow site]&lt;br /&gt;
&lt;br /&gt;
* [https://williamlam.com/ William Lam&#039;s blog] (formerly known as virtuallyghetto.com)&lt;br /&gt;
&lt;br /&gt;
* [http://www.astroarch.com/ Edward Haletky&#039;s site]&lt;br /&gt;
&lt;br /&gt;
* [http://www.vm-help.com/index.html Dave Mishchenko&#039;s ESX host help site] ( you need it )&lt;br /&gt;
&lt;br /&gt;
* [http://www.vmwarescripting.com/ VMwarescripting.com forum]&lt;br /&gt;
&lt;br /&gt;
==== Must read Blogs about Powershell and the vSphere API ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.virtu-al.net Virtu-Al blog]&lt;br /&gt;
&lt;br /&gt;
* [http://lucd.info Luc D&#039;s notes]&lt;br /&gt;
&lt;br /&gt;
* [http://www.peetersonline.nl/index.php/powershell/some-advice-on-creating-powershell-scripts/ peetersonline powershell scripts]&lt;br /&gt;
&lt;br /&gt;
* [http://ict-freak.nl/ ICT-Freak.nl]&lt;br /&gt;
&lt;br /&gt;
* [http://www.van-lieshout.com Arnim van Lieshout]&lt;br /&gt;
&lt;br /&gt;
* [http://jonathanmedd.net/ Jonathan Medd&#039;s blog]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ntpro.nl/blog/categories/10-VMware-PowerShell NTPRO Powershell]&lt;br /&gt;
&lt;br /&gt;
==== Interesting Blogs ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.yellow-bricks.com/ Duncan Epping&#039;s Yellow Bricks]&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetvm.net/ Tom Howarth&#039;s Planet VM]&lt;br /&gt;
&lt;br /&gt;
[[Category: website]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Resources&amp;diff=1515</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Resources&amp;diff=1515"/>
		<updated>2021-06-07T14:08:03Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* VMware Developer targeted sites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== VMware Developer targeted sites ====&lt;br /&gt;
&lt;br /&gt;
* [http://blogs.vmware.com/PowerCLI/ VMware PowerCLI blog]&lt;br /&gt;
&lt;br /&gt;
* [https://blogs.vmware.com/code/ VMware Developer center blog] (old link is [http://blogs.vmware.com/developer here])&lt;br /&gt;
&lt;br /&gt;
* [https://code.vmware.com VMware {code}] and [https://twitter.com/vmwarecode @vmwarecode twitter feed]&lt;br /&gt;
&lt;br /&gt;
* [https://communities.vmware.com/t5/VMware-code/ct-p/4500-home VMware {code} forum]&lt;br /&gt;
&lt;br /&gt;
* [http://communities.vmware.com/community/developer/codecentral VMware code central] VMware Community Sample Code&lt;br /&gt;
&lt;br /&gt;
* [http://libraries.io/search?page=1&amp;amp;q=vmware Libraries.io VMware pages]&lt;br /&gt;
&lt;br /&gt;
==== Sites with code ====&lt;br /&gt;
Places to visit for information, scripts, code snippets and tools (usually) with source code.&lt;br /&gt;
&lt;br /&gt;
* [http://powerscripting.net/ Powershell powerscripting.net]&lt;br /&gt;
&lt;br /&gt;
* [https://sites.google.com/site/chitchatvmback/ Ken Kato VMware&#039;s Back]&lt;br /&gt;
&lt;br /&gt;
* [http://sanbarrow.com sanbarrow site]&lt;br /&gt;
&lt;br /&gt;
* [https://williamlam.com/ William Lam&#039;s blog] (formerly known as virtuallyghetto.com)&lt;br /&gt;
&lt;br /&gt;
* [http://www.astroarch.com/ Edward Haletky&#039;s site]&lt;br /&gt;
&lt;br /&gt;
* [http://www.vm-help.com/index.html Dave Mishchenko&#039;s ESX host help site] ( you need it )&lt;br /&gt;
&lt;br /&gt;
* [http://www.vmwarescripting.com/ VMwarescripting.com forum]&lt;br /&gt;
&lt;br /&gt;
==== Must read Blogs about Powershell and the vSphere API ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.virtu-al.net Virtu-Al blog]&lt;br /&gt;
&lt;br /&gt;
* [http://lucd.info Luc D&#039;s notes]&lt;br /&gt;
&lt;br /&gt;
* [http://www.peetersonline.nl/index.php/powershell/some-advice-on-creating-powershell-scripts/ peetersonline powershell scripts]&lt;br /&gt;
&lt;br /&gt;
* [http://ict-freak.nl/ ICT-Freak.nl]&lt;br /&gt;
&lt;br /&gt;
* [http://www.van-lieshout.com Arnim van Lieshout]&lt;br /&gt;
&lt;br /&gt;
* [http://jonathanmedd.net/ Jonathan Medd&#039;s blog]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ntpro.nl/blog/categories/10-VMware-PowerShell NTPRO Powershell]&lt;br /&gt;
&lt;br /&gt;
==== Interesting Blogs ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.yellow-bricks.com/ Duncan Epping&#039;s Yellow Bricks]&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetvm.net/ Tom Howarth&#039;s Planet VM]&lt;br /&gt;
&lt;br /&gt;
[[Category: website]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Resources&amp;diff=1514</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Resources&amp;diff=1514"/>
		<updated>2021-06-07T14:05:30Z</updated>

		<summary type="html">&lt;p&gt;Wila: Fixing link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== VMware Developer targeted sites ====&lt;br /&gt;
&lt;br /&gt;
* [http://blogs.vmware.com/PowerCLI/ VMware PowerCLI blog]&lt;br /&gt;
&lt;br /&gt;
* [https://blogs.vmware.com/code/ VMware Developer center blog] (old link is [http://blogs.vmware.com/developer here])&lt;br /&gt;
&lt;br /&gt;
* [https://code.vmware.com VMware {code}] and [https://twitter.com/vmwarecode @vmwarecode twitter feed]&lt;br /&gt;
&lt;br /&gt;
* [http://communities.vmware.com/community/developer/codecentral VMware code central] VMware Community Sample Code&lt;br /&gt;
&lt;br /&gt;
* [http://libraries.io/search?page=1&amp;amp;q=vmware Libraries.io VMware pages]&lt;br /&gt;
&lt;br /&gt;
==== Sites with code ====&lt;br /&gt;
Places to visit for information, scripts, code snippets and tools (usually) with source code.&lt;br /&gt;
&lt;br /&gt;
* [http://powerscripting.net/ Powershell powerscripting.net]&lt;br /&gt;
&lt;br /&gt;
* [https://sites.google.com/site/chitchatvmback/ Ken Kato VMware&#039;s Back]&lt;br /&gt;
&lt;br /&gt;
* [http://sanbarrow.com sanbarrow site]&lt;br /&gt;
&lt;br /&gt;
* [https://williamlam.com/ William Lam&#039;s blog] (formerly known as virtuallyghetto.com)&lt;br /&gt;
&lt;br /&gt;
* [http://www.astroarch.com/ Edward Haletky&#039;s site]&lt;br /&gt;
&lt;br /&gt;
* [http://www.vm-help.com/index.html Dave Mishchenko&#039;s ESX host help site] ( you need it )&lt;br /&gt;
&lt;br /&gt;
* [http://www.vmwarescripting.com/ VMwarescripting.com forum]&lt;br /&gt;
&lt;br /&gt;
==== Must read Blogs about Powershell and the vSphere API ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.virtu-al.net Virtu-Al blog]&lt;br /&gt;
&lt;br /&gt;
* [http://lucd.info Luc D&#039;s notes]&lt;br /&gt;
&lt;br /&gt;
* [http://www.peetersonline.nl/index.php/powershell/some-advice-on-creating-powershell-scripts/ peetersonline powershell scripts]&lt;br /&gt;
&lt;br /&gt;
* [http://ict-freak.nl/ ICT-Freak.nl]&lt;br /&gt;
&lt;br /&gt;
* [http://www.van-lieshout.com Arnim van Lieshout]&lt;br /&gt;
&lt;br /&gt;
* [http://jonathanmedd.net/ Jonathan Medd&#039;s blog]&lt;br /&gt;
&lt;br /&gt;
* [http://www.ntpro.nl/blog/categories/10-VMware-PowerShell NTPRO Powershell]&lt;br /&gt;
&lt;br /&gt;
==== Interesting Blogs ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.yellow-bricks.com/ Duncan Epping&#039;s Yellow Bricks]&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetvm.net/ Tom Howarth&#039;s Planet VM]&lt;br /&gt;
&lt;br /&gt;
[[Category: website]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Pyvmware&amp;diff=1513</id>
		<title>Pyvmware</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Pyvmware&amp;diff=1513"/>
		<updated>2021-06-07T14:01:45Z</updated>

		<summary type="html">&lt;p&gt;Wila: Fixing link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A python module that makes use of the vmware client sdk to control vmware instances.&lt;br /&gt;
&lt;br /&gt;
NOTE: Currently beta with limited implemented methods. Enough to start, stop, and revert a VM. &lt;br /&gt;
&lt;br /&gt;
https://code.google.com/archive/p/pyvmware/&lt;br /&gt;
&lt;br /&gt;
[[Category:SDK]] [[Category:python]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Protecting_ESX_VMFS_Stores_with_Automation&amp;diff=1512</id>
		<title>Protecting ESX VMFS Stores with Automation</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Protecting_ESX_VMFS_Stores_with_Automation&amp;diff=1512"/>
		<updated>2021-06-07T13:57:46Z</updated>

		<summary type="html">&lt;p&gt;Wila: Fixing link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;author: Mike La Spina&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Some time ago Mike shared some interesting information about VMFS volumes that he found using direct analysis in his blog named [http://blog.laspina.ca/ubiquitous/understanding-vmfs-volumes Understanding VMFS volumes]. &lt;br /&gt;
&lt;br /&gt;
This spawned some discussions on the VMware Community forums and it became apparent that an automated backup of the critical VMFS info could be useful in the event of an undesirable security event that impacts our system availability. &lt;br /&gt;
&lt;br /&gt;
By creating a simple backup script process we can provide the ability to recover much more quickly from such events. In this howto guide we will enable this process with a cron job using the existing /etc/cron.daily/ job location directory. &lt;br /&gt;
&lt;br /&gt;
We simply need to copy an automation script to this location and it will run daily. Or if your change rate is less frequent maybe the /etc/cron.weekly location is more suitable.  ...&lt;br /&gt;
&lt;br /&gt;
==== Location ====&lt;br /&gt;
&lt;br /&gt;
[http://blog.laspina.ca/ubiquitous/understanding-vmfs-volumes Ubiquitous: Protecting ESX VMFS Stores with Automation]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
[http://blog.laspina.ca/ubiquitous/additional-vmfs-backup-automation-script-features Ubiquitous: Additional VMFS Backup Automation script features]&lt;br /&gt;
&lt;br /&gt;
[[Category: Bash]] [[Category: Forensics]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Protecting_ESX_VMFS_Stores_with_Automation&amp;diff=1511</id>
		<title>Protecting ESX VMFS Stores with Automation</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Protecting_ESX_VMFS_Stores_with_Automation&amp;diff=1511"/>
		<updated>2021-06-07T13:56:27Z</updated>

		<summary type="html">&lt;p&gt;Wila: Fixing link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;author: Mike La Spina&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Some time ago Mike shared some interesting information about VMFS volumes that he found using direct analysis in his blog named [http://blog.laspina.ca/ubiquitous/understanding-vmfs-volumes Understanding VMFS volumes]. &lt;br /&gt;
&lt;br /&gt;
This spawned some discussions on the VMware Community forums and it became apparent that an automated backup of the critical VMFS info could be useful in the event of an undesirable security event that impacts our system availability. &lt;br /&gt;
&lt;br /&gt;
By creating a simple backup script process we can provide the ability to recover much more quickly from such events. In this howto guide we will enable this process with a cron job using the existing /etc/cron.daily/ job location directory. &lt;br /&gt;
&lt;br /&gt;
We simply need to copy an automation script to this location and it will run daily. Or if your change rate is less frequent maybe the /etc/cron.weekly location is more suitable.  ...&lt;br /&gt;
&lt;br /&gt;
==== Location ====&lt;br /&gt;
&lt;br /&gt;
[http://blog.laspina.ca/roller/Ubiquitous/entry/understanding_vmfs_volumes Ubiquitous: Protecting ESX VMFS Stores with Automation]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
[http://blog.laspina.ca/roller/Ubiquitous/entry/additional_vmfs_backup_automation_script Ubiquitous: Additional VMFS Backup Automation script features]&lt;br /&gt;
&lt;br /&gt;
[[Category: Bash]] [[Category: Forensics]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vitoolkit:_Status&amp;diff=1510</id>
		<title>Vitoolkit: Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vitoolkit:_Status&amp;diff=1510"/>
		<updated>2021-06-05T23:42:58Z</updated>

		<summary type="html">&lt;p&gt;Wila: Moved from /wiki folder to wiki subdomain earlier this week&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Status site ====&lt;br /&gt;
&lt;br /&gt;
December 5, 2008: Initial setup&lt;br /&gt;
&lt;br /&gt;
December 13, 2008: Full system backup, and added this page :)&lt;br /&gt;
&lt;br /&gt;
Januari 1, 2009: Full system backup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Things to do ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a list of things still to do, there&#039;s no time line as I don&#039;t want to put myself (or others) under stress.&lt;br /&gt;
This site is completely depending  on free time of its contributors so only work on it if you want to.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt; Add daily backup to another machine&amp;lt;/s&amp;gt; weekly is fine&lt;br /&gt;
* &amp;lt;s&amp;gt;Add proper category pages. Partly done &amp;lt;/s&amp;gt; &lt;br /&gt;
* &amp;lt;s&amp;gt;Add &amp;quot;what&#039;s new&amp;quot; to the main page&amp;lt;/s&amp;gt; use [[Special:RecentChanges|Recent changes]] link at top of page instead.&lt;br /&gt;
* &amp;lt;s&amp;gt;Add # of articles/pages to the main page&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;Fix css for code snippets, it doesn&#039;t look like the current font is monospaced&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Fix theme template / settings so that we can edit per paragraph as well&amp;lt;/s&amp;gt;&lt;br /&gt;
* Fix the silly html metatag redirection and use a proper 301 redirect&lt;br /&gt;
* &amp;lt;s&amp;gt;Redirect all alternative domain names to this site (like the .net and .org one, but especially the vitoolkit.com one)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Do email notifications work? (I think not)&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;Find a better way to present what&#039;s available on the site, improve ways to restructure the data. &amp;lt;/s&amp;gt; The support for category tree at the main page now gives a much easier way to navigate the site. But it never hurts to find better ways as this doesn&#039;t scale too well (look at the vimsh category for example)&lt;br /&gt;
* Improve main page&lt;br /&gt;
* Add example code&lt;br /&gt;
* &amp;lt;s&amp;gt;Add a theme for mobile phones, so it is easier to read the content&amp;lt;/s&amp;gt; Disabled the plugin as it was hopelessly out of date, I think the current theme is rather OK on mobile, but no phone to test now.&lt;br /&gt;
&lt;br /&gt;
==== Things to make our mind up about ====&lt;br /&gt;
&lt;br /&gt;
* Does the site need a forum? &amp;lt;- No, you can use the talk page if you have a comment or contact me directly. Maybe in a later incarnation.&lt;br /&gt;
* Does the site need an instant messager type of control ? &amp;lt;- No, use twitter @wilva for contacting me or use email wila under the site&#039;s domain name.&lt;br /&gt;
* Do we need a version code control system (my personal fav is [http://subversion.tigris.org/ subversion]) ? &amp;lt;- No, we don&#039;t host much code on the site right now. Pretty much all of the code snippets are located elsewhere and copying those over to this site makes no sense as it will only complicate things.&lt;br /&gt;
* Do we need project tracking a la [http://trac.edgewall.org/ Trac] ? My impression is that at this stage it´s a bit over the top.&lt;br /&gt;
* &amp;lt;s&amp;gt;  Would it be better to change our url to https://wiki.vi-toolkit.com ? Probably ;) &amp;lt;/s&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category: website]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=PowerCLI:_Change_Virtual_Machines_Guest_OS_Names&amp;diff=1509</id>
		<title>PowerCLI: Change Virtual Machines Guest OS Names</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=PowerCLI:_Change_Virtual_Machines_Guest_OS_Names&amp;diff=1509"/>
		<updated>2021-06-05T16:11:05Z</updated>

		<summary type="html">&lt;p&gt;Wila: Adding the code itself (just in case)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  PowerCLI: Change Virtual Machines Guest OS Names ===&lt;br /&gt;
author: Rawlinson&lt;br /&gt;
==== Description ====&lt;br /&gt;
The script displayed here queries the VM name at the host level and will use that to set the name of the operating system within the guest OS. The example code here is used for windows guests.&lt;br /&gt;
&lt;br /&gt;
==== Code ====&lt;br /&gt;
&lt;br /&gt;
 $VMs = Get-VM | Where {$_.PowerState -eq &amp;quot;PoweredOn&amp;quot;} &lt;br /&gt;
 &lt;br /&gt;
 Foreach ($VM in $VMS){&lt;br /&gt;
       $VCName = $VM.Name&lt;br /&gt;
       $WinName = $VM.Guest.Hostname&lt;br /&gt;
       If ($WinName -ne $VCName) {&lt;br /&gt;
             Write-Host &amp;quot;$VCName is currently $WinName... renaming&amp;quot;&lt;br /&gt;
             $renamecomputer = &amp;quot;wmic path win32_computersystem where &amp;quot;&amp;quot;Name=&#039;%computername%&#039;&amp;quot;&amp;quot; CALL rename name=&#039;$VCName&#039;&amp;quot;&lt;br /&gt;
             Invoke-VMScript -VM $VM -GuestUser &amp;quot;Administrator&amp;quot; -GuestPassword &amp;quot;vmware&amp;quot; -ScriptType Bat -ScriptText $renamecomputer&lt;br /&gt;
             restart-vmguest -VM $VM -Confirm:$false&lt;br /&gt;
       }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
Save as a script and run it.&lt;br /&gt;
&lt;br /&gt;
==== Location ====&lt;br /&gt;
&lt;br /&gt;
* [http://web.archive.org/web/20160616222335/http://www.punchingclouds.com/2013/06/06/powercli-change-virtual-machines-guest-os-names/ http://www.punchingclouds.com/2013/06/06/powercli-change-virtual-machines-guest-os-names/]&lt;br /&gt;
&lt;br /&gt;
[[Category: PowerCLI]] [[Category: VM Management]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=PowerCLI:_Change_Virtual_Machines_Guest_OS_Names&amp;diff=1508</id>
		<title>PowerCLI: Change Virtual Machines Guest OS Names</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=PowerCLI:_Change_Virtual_Machines_Guest_OS_Names&amp;diff=1508"/>
		<updated>2021-06-05T16:09:19Z</updated>

		<summary type="html">&lt;p&gt;Wila: Updated link to point to a copy at web.archive.org as the site is no longer there.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  PowerCLI: Change Virtual Machines Guest OS Names ===&lt;br /&gt;
author: Rawlinson&lt;br /&gt;
==== Description ====&lt;br /&gt;
The script displayed here queries the VM name at the host level and will use that to set the name of the operating system within the guest OS. The example code here is used for windows guests.&lt;br /&gt;
&lt;br /&gt;
==== Usage ====&lt;br /&gt;
&lt;br /&gt;
Save as a script and run it.&lt;br /&gt;
&lt;br /&gt;
==== Location ====&lt;br /&gt;
&lt;br /&gt;
* [http://web.archive.org/web/20160616222335/http://www.punchingclouds.com/2013/06/06/powercli-change-virtual-machines-guest-os-names/ http://www.punchingclouds.com/2013/06/06/powercli-change-virtual-machines-guest-os-names/]&lt;br /&gt;
&lt;br /&gt;
[[Category: PowerCLI]] [[Category: VM Management]]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1507</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1507"/>
		<updated>2021-04-21T14:48:13Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Open file with host OS application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841711/highlight/true#M169663 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflecHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1506</id>
		<title>Vmx hacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Vmx_hacks&amp;diff=1506"/>
		<updated>2021-04-21T14:47:10Z</updated>

		<summary type="html">&lt;p&gt;Wila: /* Pass OS X host serial number */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== VMX hacks ===&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my internal list of the .vmx hacks that I collected over time.&lt;br /&gt;
&lt;br /&gt;
Beware that editing a .vmx file manually and adding any of these options is unsupported. &lt;br /&gt;
&lt;br /&gt;
If you end up breaking your VM by editing the .vmx ... then restore the backup! (If you had no backups before hacking on your config, you are doing something wrong)&lt;br /&gt;
&lt;br /&gt;
Also note that some options might no longer be active as they might be for an earlier version of a VMware product.&lt;br /&gt;
&lt;br /&gt;
==== Wait 5 seconds on booting ====&lt;br /&gt;
Wait 5 seconds on booting:&lt;br /&gt;
 bios.bootDelay = &amp;quot;5000&amp;quot;&lt;br /&gt;
Time is in milliseconds, change it accordingly.&lt;br /&gt;
==== Open BIOS settings on next boot ====&lt;br /&gt;
Open BIOS settings on next boot:&lt;br /&gt;
 bios.forceSetupOnce = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
In VMware Server 2, this setting is also in the web management interface, choose &amp;quot;Configure VM&amp;quot;, power tabdialog, near the bottom.&lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1648 Automatically Connecting USB Devices at Virtual Machine Power On]&lt;br /&gt;
==== Disable all Power menu and keyboard shortcuts====&lt;br /&gt;
 gui.restricted=&amp;quot;true&amp;quot; &lt;br /&gt;
This disables all power menu and keyboard shortcuts. It also disables suspend button&lt;br /&gt;
&lt;br /&gt;
==== Fix repeating keys ====&lt;br /&gt;
&lt;br /&gt;
To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console.&lt;br /&gt;
&lt;br /&gt;
    Power off the virtual machine.&lt;br /&gt;
    Add a line, similar to this, at the end of your virtual machine&#039;s configuration (.vmx) file:&lt;br /&gt;
&lt;br /&gt;
    keyboard.typematicMinDelay = &amp;quot;2000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    The delay is specified in micro-seconds, so the line in the example above increases the repeat time to 2 seconds. This should ensure that you never get auto-repeat unless you intend it. &lt;br /&gt;
&lt;br /&gt;
[http://kb.vmware.com/kb/196 Repeated characters when typing in remote console]&lt;br /&gt;
&lt;br /&gt;
==== Disables suspend option ====&lt;br /&gt;
 suspend.disabled = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
This disables the suspend option in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
==== Fix Caps Lock synchronisation issues ====&lt;br /&gt;
This tip fixes the caps lock sync issue in Fusion 2.0.x and Tech Preview. I found it to be invaluable, add this to your VM&#039;s configuration file (.vmx):&lt;br /&gt;
&lt;br /&gt;
 mks.keyboard.syncLEDs = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
==== Run a VM without a suspend file====&lt;br /&gt;
isn&#039;t there an option to run a VM without a suspend file (which is a file named like abcdef01-abcd-abcd-abcd-abcdef012345.vmem)&lt;br /&gt;
you mean&lt;br /&gt;
 mainmem.useNamedFile = &amp;quot;false&amp;quot;&lt;br /&gt;
only works in windows&lt;br /&gt;
&lt;br /&gt;
==== Use FT in a VM under Workstation ====&lt;br /&gt;
To use FT in a nested VM, you will still have to supply the entirely unsupported option (for the inner VM):&lt;br /&gt;
&lt;br /&gt;
 replay.allowBTOnly = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://communities.vmware.com/message/1343622 VMTN Anyone had sucess setting up a ESX40 Lab on Workstation 7.0?]&lt;br /&gt;
&lt;br /&gt;
==== Disable VIX ====&lt;br /&gt;
&lt;br /&gt;
An interesting tidbit if you’re super security cautious you can disable VIX by adding&lt;br /&gt;
&lt;br /&gt;
 “Guest.Command.Enabled”=”False”&lt;br /&gt;
&lt;br /&gt;
to either the VM or the host.  Be aware that this WILL break upgrading of VMware tools, and Guest customization as they both use vix as the underlying technology!&lt;br /&gt;
&lt;br /&gt;
==== Optimize performance linux VM ====&lt;br /&gt;
&lt;br /&gt;
mainmem.useNamedFile is no longer longer used on Linux hosts that run VMplayer 3 or Workstation 7.&lt;br /&gt;
&lt;br /&gt;
New parameters are :&lt;br /&gt;
 mainmem.backing = &amp;quot;swap&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;named&amp;quot;&lt;br /&gt;
 mainmem.backing = &amp;quot;unnamed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see http://sanbarrow.com/vmx/vmx-advanced.html#mainmem&lt;br /&gt;
&lt;br /&gt;
==== Optimize troubleshooting ====&lt;br /&gt;
Please power off your VM and add the following configuration option to your .vmx file:&lt;br /&gt;
 vmx.buildType = stats&lt;br /&gt;
Boot the VM and run your benchmark.  &lt;br /&gt;
Shut down the VM and send me the contents of the stats directory that will be created in the same folder as the VM.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2408159#2408159&lt;br /&gt;
&lt;br /&gt;
==== Hardening your vmx file for security ====&lt;br /&gt;
&lt;br /&gt;
http://virtualfoundry.blogspot.com/2009/04/hardening-vmx-file.html&lt;br /&gt;
&lt;br /&gt;
==== Spurious APIC interrupt on CPU#1, should never happen ====&lt;br /&gt;
&lt;br /&gt;
These messages are the result of an optimization Workstation 11 uses for inter-processor interrupts between virtual CPUs.  The interrupt vector used for this purpose is 0xff, which is the Linux spurious APIC interrupt vector.  In some cases, an inter-processor interrupt may arrive on a physical processor after Workstation has relinquished the processor to the host OS.  Linux will discard the interrupt and print this message.&lt;br /&gt;
&lt;br /&gt;
Unless these messages occur with high frequency, they should be innocuous.&lt;br /&gt;
&lt;br /&gt;
The following configuration option should disable the optimization and make the messages stop:&lt;br /&gt;
 monitor_control.disable_hostedIPI = TRUE&lt;br /&gt;
&lt;br /&gt;
You can add this setting to /etc/vmware/config, and it will take effect for all VMs the next time they are powered on&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2456565#2456565 Spurious APIC interrupt on CPU#1, should never happen]&lt;br /&gt;
&lt;br /&gt;
==== CPU Masking ====&lt;br /&gt;
&lt;br /&gt;
Yes, it is possible to mask the CPUID values in a VM (except for user mode code when using binary translation).  However, masking only changes what CPUID reports; it doesn&#039;t change the way the processor behaves.  Thus, masking may cause unexpected guest behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The general format for CPUID masking is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 cpuid.&amp;lt;leaf&amp;gt;.&amp;lt;register&amp;gt; = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The right hand side is a binary representation of the desired value, most significant bit first.  Aside from &#039;0&#039; and &#039;1,&#039; two other important symbols are &#039;h,&#039; which means to pass through the bit from the host CPUID and &#039;-,&#039; which means not to override the normal handling for this bit.&lt;br /&gt;
&lt;br /&gt;
Specifying a different CPU vendor is not recommended.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/405727 thread masking] Mr JMattson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In any event, the first thing to do is to pretend to be an AMD CPU.  These settings should accomplish that:&lt;br /&gt;
&lt;br /&gt;
 cpuid.0.ebx = &amp;quot;0110:1000:0111:0100:0111:0101:0100:0001&amp;quot;&lt;br /&gt;
 cpuid.0.ecx = &amp;quot;0100:0100:0100:1101:0100:0001:0110:0011&amp;quot;&lt;br /&gt;
 cpuid.0.edx = &amp;quot;0110:1001:0111:0100:0110:1110:0110:0101&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Then you want to claim the family, model, and stepping of an actual AMD CPU.  This setting should do that (claiming to be an early 64-bit Opteron):&lt;br /&gt;
&lt;br /&gt;
 cpuid.1.eax=&amp;quot;----:0000:0000:0000:----:1111:0100:0110&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Even with these settings, some guests may still be unhappy.&lt;br /&gt;
&lt;br /&gt;
=== Workstation ===&lt;br /&gt;
&lt;br /&gt;
==== USB debugging ====&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2473661#2473661 Conversion from Workstation 10 to 11 breaks USB connections]&lt;br /&gt;
 usb.quirks.device0 = &amp;quot;0x04e8:0x685b skip-reset&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== USB Passthrough on Linux Host ====&lt;br /&gt;
&#039;Passthrough&#039; mode was disabled on Linux host as it conflicted with shared mode provided via pcscd&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2462510#2462510 Gemalto Smart Card Reader only appears as &amp;quot;Shared&amp;quot; not &amp;quot;Passthrough&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* 1) Go to the VM&#039;s installation directory. Typically C:\Users\&amp;lt;username&amp;gt;\Documents\Virtual Machines\&lt;br /&gt;
* 2) Open &amp;lt;virtual-machine-name&amp;gt;.vmx file&lt;br /&gt;
* 3) Append the following lines:&lt;br /&gt;
  usb.generic.allowCCID = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
  usb.ccid.disable = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
* 4) Kill the process corresponding to the PCSC daemon on the Linux host&lt;br /&gt;
&lt;br /&gt;
Do a # ps -ef | grep -i pcsc on your Linux host&lt;br /&gt;
 sudo kill -9 &amp;lt;pid of the process that corresponds to pcscd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* 1) The first line in step 3 enables the passthrough mode&lt;br /&gt;
* 2) The second line in step 3 disables shared mode&lt;br /&gt;
* 3) Since you are killing the pcscd on your host, you wont be able to use the smart card on the host. You can passthrough the smart card now and use it in the VM&lt;br /&gt;
&lt;br /&gt;
==== Change thumbnail speed ====&lt;br /&gt;
&lt;br /&gt;
From Workstation 14 including 15, the thumbnail views are not in real time any more and the default refresh interval value is 3000 ms.&lt;br /&gt;
&lt;br /&gt;
You can add&lt;br /&gt;
&lt;br /&gt;
 pref.thumbnailRefreshIntervalMs = 1000&lt;br /&gt;
&lt;br /&gt;
(or other values) in the preference file %appdata%/vmware/preferences.ini to change the refesh rate. But keep in mind that this way may cause high CPU usage.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you really need the previous real time thumbnail, you can use&lt;br /&gt;
&lt;br /&gt;
 pref.closeInactiveMKSWindows =  &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
But this way may cause mouse/keyboard functions under multi tabs not working well.&lt;br /&gt;
&lt;br /&gt;
Both these settings are not documented or tested, so I cannot guarantee they working normally.&lt;br /&gt;
&lt;br /&gt;
Note that you should make changes to the preferences.ini file with VMware Workstation shut down.&lt;br /&gt;
&lt;br /&gt;
from: https://communities.vmware.com/message/2807350#2807350&lt;br /&gt;
&lt;br /&gt;
=== Fusion ===&lt;br /&gt;
==== Applying a setting over all VMs ====&lt;br /&gt;
&lt;br /&gt;
Instead of editing each .vmx file manually, you can also apply config options to all VMs, by creating/editing the user global config file that can be found at: ~/Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
There&#039;s already a &#039;preferences&#039; file in the same directory, but normally the config file has to be created.&lt;br /&gt;
&lt;br /&gt;
If an individual .vmx file contains the same config options as the global file, the .vmx file will take precedence.&lt;br /&gt;
&lt;br /&gt;
==== Hide the Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.showFullScreenTitleBar = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/1348663#1348663&lt;br /&gt;
&lt;br /&gt;
==== Delay drop down Full Screen application menu ====&lt;br /&gt;
&lt;br /&gt;
Edit /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 fusion.fullScreenMenuDelay = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The delay is in seconds and the default is 1.5 seconds, added since Fusion 4.1&lt;br /&gt;
A value of &amp;quot;0&amp;quot; removes the delay.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/message/2273022&lt;br /&gt;
&lt;br /&gt;
On VMware Workstation you would add the following lines to the preferences.ini file.&lt;br /&gt;
&lt;br /&gt;
 pref.fullscreen.showDelay = &amp;quot;5000&amp;quot; &lt;br /&gt;
to delay the showing of the toolbar 5000ms (5 seconds) &lt;br /&gt;
 pref.fullscreen.hideDelay = &amp;quot;1000&amp;quot;&lt;br /&gt;
to hide the toolbar after 1000ms (1 second)&lt;br /&gt;
&lt;br /&gt;
For Win7 the preferences.ini file is located under:&lt;br /&gt;
 C:\Users\&amp;lt;username&amp;gt;\AppData\Roaming\VMware&lt;br /&gt;
&lt;br /&gt;
==== debug menu ====&lt;br /&gt;
&lt;br /&gt;
 fusion.enableDebugMenu&lt;br /&gt;
&lt;br /&gt;
(never tried)&lt;br /&gt;
&lt;br /&gt;
==== Turn off full screen autofit to host ====&lt;br /&gt;
&lt;br /&gt;
Here&#039;s another way to stop the guest from automagically being resized at each swipe:&lt;br /&gt;
&lt;br /&gt;
* Open Finder, select the &amp;quot;Go&amp;quot; menu then select &amp;quot;Go To Folder...&amp;quot; and type in: ~/Library/Preferences/VMware Fusion/&lt;br /&gt;
* Open the preferences file in a text editor and add/append the following lines at the end of the file: &lt;br /&gt;
&lt;br /&gt;
 pref.autoFitGuestToWindow = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
 pref.autoFitFullScreen = &amp;quot;stretchGuestToHost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Taken from: https://communities.vmware.com/message/2293562&lt;br /&gt;
&lt;br /&gt;
==== Pass through host model ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s unsupported, but try editing /Users/$USER/Library/Preferences/VMware Fusion/preferences and add the line:&lt;br /&gt;
&lt;br /&gt;
 hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause the VM to see the same model ID as the host.  The default for this option is FALSE.  Be aware that using this option may cause VM portability issues since the guest may now depend on this behavior and the type of the underlying Mac.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/336922&lt;br /&gt;
&lt;br /&gt;
==== VM power options always display &amp;quot;Force&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
If the Virtual Machine was not originally created in VMware Fusion then you will notice that the Fusion Virtual Machine menu has the word &amp;quot;Force&amp;quot; inserted before any power option.&lt;br /&gt;
For example copying a VM from a Windows systems to Mac it displays the &amp;quot;Force ...&amp;quot; commands by default.  In other words, pressing the Option Key is backwards of what it is supposed to be.  This is because the following options are missing from the Virtual Machine&#039;s .vmx configuration file.&lt;br /&gt;
&lt;br /&gt;
 powerType.powerOff = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.powerOn = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.suspend = &amp;quot;soft&amp;quot;  &lt;br /&gt;
 powerType.reset = &amp;quot;soft&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
By default, VMware Fusion creates these options in the Virtual Machine&#039;s .vmx configuration file while VMware Player/Workstation does not.  So, add the above options to the Virtual Machine&#039;s .vmx configuration file and the &amp;quot;Force ...&amp;quot; commands will then exhibit VMware Fusion normal behavior.  Meaning in order to access the &amp;quot;Force ...&amp;quot; commands one will need to press the Option Key.&lt;br /&gt;
&lt;br /&gt;
See also: http://communities.vmware.com/thread/402281&lt;br /&gt;
&lt;br /&gt;
==== kernel debugging ====&lt;br /&gt;
&lt;br /&gt;
You can attach a remote debugger such as gdb to your vm to do kernel debugging.&lt;br /&gt;
&lt;br /&gt;
DebugStub knows nothing at all about the guest OS.  Think of debugStub as an In-Circuit Debugger for the virtual CPU(s).&lt;br /&gt;
&lt;br /&gt;
 debugStub.listen.guest64 = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.listen.guest64.remote = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
 debugStub.hideBreakpoints=1&lt;br /&gt;
specify a custom port with:&lt;br /&gt;
 debugStub.port.guest64 = &amp;quot;8865&amp;quot;&lt;br /&gt;
other options:&lt;br /&gt;
 debugStub.listen.guest32 = &amp;quot;TRUE&amp;quot;                          # Enable listener for 32 bit guest&lt;br /&gt;
 debugStub.listen.guest32.remote = &amp;quot;TRUE&amp;quot;              # Allow remote connection&lt;br /&gt;
 debugStub.port.guest32 = &amp;quot;32001&amp;quot;                          # Listen on specified port NNN&lt;br /&gt;
&lt;br /&gt;
see also: [https://communities.vmware.com/thread/470936 Using debugStub to debug a guest linux kernel]&lt;br /&gt;
&lt;br /&gt;
==== Additional logging ====&lt;br /&gt;
For troubleshooting boot issues etcetera you can increase the log level in vmware.log&lt;br /&gt;
&lt;br /&gt;
 monitor_control.log_vmsample = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/471833 Fusion 6.0.2 / OS X 10.9.2 Host / OS X 10.9 Guest VM running &amp;gt;100% CPU no matter what]&lt;br /&gt;
&lt;br /&gt;
==== memory hole ====&lt;br /&gt;
&lt;br /&gt;
At 3.2 GB there&#039;s a 1024kB memory hole.&lt;br /&gt;
&lt;br /&gt;
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000.  The default is&lt;br /&gt;
&lt;br /&gt;
   pciHole.start = 3072&lt;br /&gt;
&lt;br /&gt;
which corresponds to 0xC0000000.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/thread/478739 Memory hole at 3.2GB]&lt;br /&gt;
&lt;br /&gt;
==== Disable Shared Folder event notification ====&lt;br /&gt;
&lt;br /&gt;
 isolation.tools.hgfs.notify.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: http://kb.vmware.com/kb/2011360&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shared folder size check ====&lt;br /&gt;
&lt;br /&gt;
The other workaround is to stop the VM, edit the VM&#039;s .vmx file and add the following setting:&lt;br /&gt;
&lt;br /&gt;
 tools.hgfs.volumeInfoType = &amp;quot;max&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then start the VM again, and this time you will not need to disable the other shares which are on smaller sized volumes.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The default setting causes the shares to be aggregated to the smallest volume size that a share resides on when our file system is queried for size and free space.&lt;br /&gt;
&lt;br /&gt;
The above setting overrides this to pick the largest volume size. The downside is that you can start a copy to a share on volume with a smaller amount of free space and it will only fail when it actually fails to write when the free space is exhausted.&lt;br /&gt;
&lt;br /&gt;
If you know you are not going to run into that type of scenario yourself or you verify prior to starting the copy operation then you will be fine.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Note, the above can only be set to &amp;quot;min&amp;quot; or &amp;quot;max&amp;quot; and if not set at all, then &amp;quot;min&amp;quot; is the default.&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2381223#2381223 Folder copy on Windows 7 vm fails for &amp;quot;not enough space&amp;quot;, but there is.]&lt;br /&gt;
&lt;br /&gt;
==== Disable location services ====&lt;br /&gt;
&lt;br /&gt;
 sensor.location = &amp;quot;disable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
to vmx.&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/message/2383410#2383410 how-to disable location services]&lt;br /&gt;
&lt;br /&gt;
==== Disable automatic USB connect to guest feature ====&lt;br /&gt;
&lt;br /&gt;
1. Suspend or shut down any running VMs and quit Fusion.&lt;br /&gt;
&lt;br /&gt;
2. Ensure that the vmware-usbarbitrator process is no longer running.&lt;br /&gt;
&lt;br /&gt;
3. Create/edit the host-global configuration file, with root privileges: (this example uses nano, but feel free to use any other editor)&lt;br /&gt;
&lt;br /&gt;
    sudo nano /Library/Preferences/VMware\ Fusion/config&lt;br /&gt;
&lt;br /&gt;
4. Add the following line to disable the automatic claiming of USB devices:&lt;br /&gt;
&lt;br /&gt;
    usbarb.autoconnect.claimAll = &amp;quot;FALSE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Save the file and quit the editor.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
With this change, all USB devices should automatically connect to the host even when VMs are running. Note that it will completely disable the USB connection prompt, and will prevent devices from automatically connecting to VMs (even if the option is selected in settings). However it should still be possible to manually connect USB devices to a running VM (except possibly in cases where the reset command is not correctly issued via the hub).&lt;br /&gt;
&lt;br /&gt;
from: [https://communities.vmware.com/message/2393343#2393343 2014 Preview still has USB 3 hub issue]&lt;br /&gt;
&lt;br /&gt;
==== Open file with host OS application ====&lt;br /&gt;
When a file is located on a shared folder (VMware HGFS) then you can choose to be able to open this file with the host OS default application.&lt;br /&gt;
For example. Your png file can open in macOS Preview.&lt;br /&gt;
&lt;br /&gt;
  proxyApps.publishToGuest = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: [https://communities.vmware.com/t5/VMware-Workstation-Pro/Has-there-ever-been-a-solution-to-opening-a-host-application/m-p/2841051 Has there ever been a solution to opening a host application from a guest OS?]&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host serial number ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s serial number, you&#039;ll need to add this option to the VM&#039;s configuration:&lt;br /&gt;
&lt;br /&gt;
  serialNumber.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ====&lt;br /&gt;
&lt;br /&gt;
To pass hardware model to the guest (not even sure this works, as it does not seem to do anything for me, but ... Fusion does not error on starting the VM )&lt;br /&gt;
&lt;br /&gt;
  hw.model.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Pass OS X host hardware model ID ====&lt;br /&gt;
&lt;br /&gt;
If you want an OS X guest to use the host&#039;s hardware model ID (i.e. &amp;quot;MacPro5,1&amp;quot;), board ID (i.e. &amp;quot;Mac-12345678&amp;quot;) and serial number all together:&lt;br /&gt;
&lt;br /&gt;
  smbios.reflectHost = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Any platform ===&lt;br /&gt;
&lt;br /&gt;
==== Slow down time in guest ====&lt;br /&gt;
&lt;br /&gt;
You can&#039;t quite stop time, but you can make it go extremely slowly.  Set the following in your system-wide configuration file (/etc/vmware/config on Linux; C:\ProgramData\VMware\VMware Workstation\config.ini on Windows):&lt;br /&gt;
&lt;br /&gt;
 host.cpukHz = 1000&lt;br /&gt;
&lt;br /&gt;
This is probably not all that useful in practice, unless the guest OS has no reliance on any time sources.&lt;br /&gt;
&lt;br /&gt;
from [https://communities.vmware.com/message/2431592#2431592 System time]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set max number of snapshots ====&lt;br /&gt;
&lt;br /&gt;
 snapshot.maxSnapshots = 100&lt;br /&gt;
&lt;br /&gt;
==== Enable DX11 or OpenGL Host Renderer ====&lt;br /&gt;
&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 mks.enableDX11Renderer&lt;br /&gt;
&lt;br /&gt;
When 3D accelerated graphics is enabled in Workstation 12/14/15 the default value is &amp;quot;TRUE&amp;quot; (i.e. the line does not have to be present in the vmx file), VMware Workstation uses DX11 of the Windows host to deliver the DX10/OpenGL 3.3 core profile capability inside the VMs. For Linux hosts, the equivalent is mks.enableGLRenderer = &amp;quot;TRUE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Enable D3D Renderer ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mks.enableD3DRenderer&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot; from Workstation 12.x and later. This is only useful in version 12.x if the host graphics card does not have DX11 capability and setting this to TRUE and enableDX11Renderer to FALSE let the VM have some limited 3D accelerated graphics capability. This looks like is already ineffective in version 14/15.&lt;br /&gt;
&lt;br /&gt;
==== Select host Graphics card to use ====&lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mks.dx11.vendorID&lt;br /&gt;
&lt;br /&gt;
valid values are the vendor ID of the graphic card, 0x8086 for Intel, 0x10DE for Nvidia, 0x1002 for AMD.&lt;br /&gt;
&lt;br /&gt;
If this line is not present, VMware Workstation will use the default graphic card of the Windows host system. This line is useful if the system has two graphic cards from two different vendors that are simultaneously active on the host machine (example: Intel integrated graphics in the CPU and a discrete graphics card from Nvidia or AMD).&lt;br /&gt;
&lt;br /&gt;
==== ReflecHost ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 SMBIOS.reflectHost&lt;br /&gt;
&lt;br /&gt;
Default is &amp;quot;FALSE&amp;quot;. If set to &amp;quot;TRUE&amp;quot; some of the DMI info will use the host values (example: manufacturer will change from VMware to the host value). You can see this difference by using msinfo32 in Windows VM or dmidecode in Linux VM. This is not so useful anymore to hide the fact that the VM is a VM.&lt;br /&gt;
&lt;br /&gt;
==== vmx.buildType ==== &lt;br /&gt;
Courtesy @bluefirestorm at [https://communities.vmware.com/message/2812499#2812499 setting *.vmx]&lt;br /&gt;
&lt;br /&gt;
 vmx.buildType&lt;br /&gt;
&lt;br /&gt;
Valid values are &amp;quot;release&amp;quot; and &amp;quot;debug&amp;quot;. The &amp;quot;debug&amp;quot; is the default for the beta versions (aka Tech Preview). When set to &amp;quot;debug&amp;quot;, vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger.&lt;br /&gt;
&lt;br /&gt;
=== External sites ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one .vmx site that has most .vmx options and that&#039;s Ulli&#039;s reference over at sanbarrow:&lt;br /&gt;
&lt;br /&gt;
http://sanbarrow.com/vmx/vmx-advanced.html&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1505</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1505"/>
		<updated>2021-04-15T22:39:01Z</updated>

		<summary type="html">&lt;p&gt;Wila: and for Fusion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root.&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run:&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-6BB29187-F47F-41D1-AD92-1754036DACD9.html#GUID-6BB29187-F47F-41D1-AD92-1754036DACD9 Clean up a Virtual Machine - VMware Fusion 12 documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1504</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1504"/>
		<updated>2021-04-15T22:30:48Z</updated>

		<summary type="html">&lt;p&gt;Wila: adding links to the official doc of VMware Workstation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root.&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run:&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts - Workstation 16 Pro documentation]&lt;br /&gt;
&lt;br /&gt;
* [https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3F94C7B5-19A5-4E91-9709-B17FAA93FF75.html Configuring and Maintaining Virtual Hard Disks - Workstation 16 Pro documentation]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1503</id>
		<title>Shrink guest on hosted platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=Shrink_guest_on_hosted_platform&amp;diff=1503"/>
		<updated>2021-04-15T22:24:45Z</updated>

		<summary type="html">&lt;p&gt;Wila: Note about zero&amp;#039;ing out an encrypted disk&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important ==&lt;br /&gt;
Note that the technique described below to zero out the unused space on the guest OS will in fact make your guest virtual disk grow to the maximum size first. For each byte that is changed to zero the virtual disk will need to claim a byte. This means that while you can use the technique to reclaim disk space after the unused space is zero&#039;d out, it is important to have enough space before you start.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have that kind of free disk space then you can skip the zero-ing out part. You can still reclaim space, but it will be less optimal.&lt;br /&gt;
Alternatively you can use the &amp;quot;Partially zero out&amp;quot; trick described below.&lt;br /&gt;
&lt;br /&gt;
=== How much free space do you need before shrinking? ===&lt;br /&gt;
Also please note that you need more free space in order to be able to run the shrinking process.&lt;br /&gt;
The shrinking process consists of making a copy of your virtual disk while omitting the zero&#039;d out blocks. &lt;br /&gt;
So how much extra space you need depends on how you configured the virtual disk for your Virtual Machine. &lt;br /&gt;
If your Virtual Disk is a single file, then your free space requirement can grow up-to the full size of that virtual disk.&lt;br /&gt;
&lt;br /&gt;
If OTOH you are using the split disk scheme where a virtual disk is sliced into multiple files the maximum free space you need is the maximum size a slice can be. Nowadays there&#039;s not a fixed slice size, it depends on how big your virtual disk actually is.&lt;br /&gt;
&lt;br /&gt;
The split disk scheme since VMware Workstation 11 (VMware Fusion 7), older version of Workstation/Fusion use a 2GB split disk scheme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Capacity           Extent size&lt;br /&gt;
 ================================&lt;br /&gt;
 &amp;lt;=128GB            4GB (increased from 2GB)&lt;br /&gt;
 &amp;gt;128GB &amp;amp;&amp;amp; &amp;lt;2TB     Capacity / 32 (so maximum of 32 extents)&lt;br /&gt;
 &amp;gt;=2TB              2TB&lt;br /&gt;
&lt;br /&gt;
For extra safety I recommend to make sure you have an additional 2GB of free space on top of those requirements as mentioned above.&lt;br /&gt;
&lt;br /&gt;
As side note, this also explains why it is generally recommended at the forum by the regulars to use a split disk scheme over single disk files.&lt;br /&gt;
This same problem also exists when you want to commit snapshots.&lt;br /&gt;
&lt;br /&gt;
=== Using the clean up option in the menu ===&lt;br /&gt;
&lt;br /&gt;
When you use the &amp;quot;Clean Up Disks&amp;quot; option in the menu in VMware Workstation 12 or later, then you do not require extra disk space for reclaiming space (see also: [https://docs.vmware.com/en/VMware-Workstation-Pro/14.0/com.vmware.ws.using.doc/GUID-421A1073-BF16-4BC7-AA76-46B954CA438D.html Clean Up a Virtual Hard Disk on Windows Hosts] ) &lt;br /&gt;
&lt;br /&gt;
Currently this only works for Windows guests where the filesystem is NTFS.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space in a Linux VM ==&lt;br /&gt;
&lt;br /&gt;
Before we try to shrink the virtual disk files, we should try to remove any unneeded files from the virtual machine to free space.&lt;br /&gt;
More free space means more disk space that can get reclaimed.&lt;br /&gt;
&lt;br /&gt;
One of the areas in a VM that can take up a lot of disk space is the repository cache. So I personally tend to clean the cache in the VM before reclaiming disk space at the host.&lt;br /&gt;
&lt;br /&gt;
Clean up your repositories:&lt;br /&gt;
&lt;br /&gt;
For example, on Debian-based VMs, you can run the following command (in the VM)&lt;br /&gt;
&lt;br /&gt;
 apt-get clean all&lt;br /&gt;
&lt;br /&gt;
to clear out the local repository of retrieved package files.&lt;br /&gt;
&lt;br /&gt;
On red hat based VMs that would be:&lt;br /&gt;
&lt;br /&gt;
 yum clean&lt;br /&gt;
&lt;br /&gt;
The next step is important:&lt;br /&gt;
&lt;br /&gt;
Shut down any services that depend on having enough available disk space to run.&lt;br /&gt;
&lt;br /&gt;
The reason for this is that we are going to write out zero&#039;s to the file system until the file system is full and we do not want any application - for example a database system like mySQL or postgreSQL - to run out of disk space while we are zeroing out the file system. If mySQL would try to write when your disk is full you risk a corrupted database. So this step is important!&lt;br /&gt;
&lt;br /&gt;
Next run (also from within the VM):&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; zero.fill;sync;sleep 1;sync;rm -f zero.fill&lt;br /&gt;
&lt;br /&gt;
to fill the unused space with zeros and then remove the &amp;quot;zero.fill&amp;quot; that has all the zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
As this command writes to the disk until it runs out of disk space, you will get an error &amp;quot;No space left on the device&amp;quot;. This is expected.&lt;br /&gt;
&lt;br /&gt;
Note that you have multiple partitions that you have to repeat the above command to zero out for each partition.&lt;br /&gt;
Adjust &amp;quot;zero.fill&amp;quot; to the relevant mountpoint, for example if you have a separate partition for home it would become:&lt;br /&gt;
&lt;br /&gt;
 cat /dev/zero &amp;gt; /home/zero.fill;sync;sleep 1;sync;rm -f /home/zero.fill&lt;br /&gt;
&lt;br /&gt;
=== Zero out a part of your virtual disk ===&lt;br /&gt;
&lt;br /&gt;
If your virtual machine cannot be taken down and you do not want to shut down services that might end up corrupting files because of the &amp;quot;No space left on the device&amp;quot; problem then an idea that might work is to zero out a part of your partition.&lt;br /&gt;
&lt;br /&gt;
This for example creates a 100MB size file filled with zero&#039;s&lt;br /&gt;
&lt;br /&gt;
 # dd if=/dev/zero of=zero.fill bs=1024 count=102400&lt;br /&gt;
 102400+0 records in&lt;br /&gt;
 102400+0 records out&lt;br /&gt;
 104857600 bytes (105 MB) copied, 0.3839 s, 273 MB/s&lt;br /&gt;
&lt;br /&gt;
So if you want to zero out 10GB instead, add two more zero&#039;s to the count parameter, eg: count=10240000&lt;br /&gt;
&lt;br /&gt;
If you want to fill up in steps, just change the output file name from &amp;quot;zero.fill&amp;quot; into &amp;quot;zero.fill2&amp;quot; etcetera..&lt;br /&gt;
&lt;br /&gt;
Then run the &amp;quot;sync; sleep 1; sync&amp;quot; from above and remove the zero.fill files.&lt;br /&gt;
&lt;br /&gt;
If your VM is running on VMware vSphere and you have a NFS LUN with enough free space then one way to reclaim your space is to Storage vMotion the VM to NFS storage and back. Once done the zero&#039;d out data has been reclaimed. No need to shut down the VM. &lt;br /&gt;
&lt;br /&gt;
If this is not for you, then do read on.&lt;br /&gt;
&lt;br /&gt;
== Zero out unused space on a Windows VM ==&lt;br /&gt;
&lt;br /&gt;
To do the same with a windows VM, you can use Microsoft&#039;s tool [http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx sdelete].&lt;br /&gt;
&lt;br /&gt;
Run it as &lt;br /&gt;
 sdelete -z c:&lt;br /&gt;
&lt;br /&gt;
To clean out the free space on disk c:&lt;br /&gt;
&lt;br /&gt;
Careful!&lt;br /&gt;
&lt;br /&gt;
As of sdelete v1.6 -c and -z have changed meanings, many instructions say -c zeros free space, this is no longer the case, it zeros the space then fills with random data in accordance with DOD spec: DOD 5220.22-M, random data will prevent the reclaim logic from working.&lt;br /&gt;
&lt;br /&gt;
The trigger to zero space with 0x00 has changed to -z!&lt;br /&gt;
&lt;br /&gt;
== Zeroing an encrypted disk ==&lt;br /&gt;
&lt;br /&gt;
If you use disk encryption in the guest OS then zero&#039;ing out the disk won&#039;t help.&lt;br /&gt;
&lt;br /&gt;
The reason is that a good disk encryption scheme will write out random data to the disk when you write out zero&#039;s.&lt;br /&gt;
&lt;br /&gt;
In other words, if you have enabled full disk encryption in the guest then you can not shrink the disk anymore as there is no space to reclaim.&lt;br /&gt;
&lt;br /&gt;
== Shrink the disk ==&lt;br /&gt;
&lt;br /&gt;
Then power down the VM and open a terminal on the Linux host.&lt;br /&gt;
&lt;br /&gt;
Navigate to the directory where the .vmdk files are located, e.g.:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/vmware/Virtual\ Machines/Ubuntu\ Desktop/&lt;br /&gt;
&lt;br /&gt;
You can shrink the .vmdk file as follows:&lt;br /&gt;
&lt;br /&gt;
 vmware-vdiskmanager -k Ubuntu\ Desktop.vmdk&lt;br /&gt;
&lt;br /&gt;
On Windows the command also uses the -k option, so I leave that for you as an exercise.&lt;br /&gt;
&lt;br /&gt;
Note that vmware-vdiskmanager is probably not in your search path, so you might have to prepend the vmware-vdiskmanager command with the actual path with the command is located.&lt;br /&gt;
&lt;br /&gt;
If you need to use &amp;quot;sudo&amp;quot; in order to be able to run the above then beware that the ownership of the .vmdk files might get changed to root.&lt;br /&gt;
&lt;br /&gt;
You will have to change the ownership back to your own user, eg:&lt;br /&gt;
 sudo chown username: *.vmdk&lt;br /&gt;
If you don&#039;t change the ownership back you might see errors like:&lt;br /&gt;
 &amp;quot;Unable to open file .../Virtual Disk.vmdk: Insufficient permission to access file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Shrink using vmware tools ==&lt;br /&gt;
&lt;br /&gt;
Nowadays you can also shrink the guest by using the shrink feature as offered via vmware tools.&lt;br /&gt;
&lt;br /&gt;
So for clarity all of the following commands are run from within the guest to shrink the disk while the guest is running.&lt;br /&gt;
&lt;br /&gt;
On linux in order to use this run:&lt;br /&gt;
 sudo vmware-toolbox-cmd disk shrink /&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;/&amp;quot; is the mount point of the partition that you want to shrink.&lt;br /&gt;
&lt;br /&gt;
On Windows in order to use this run:&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\VMware\VMware Tools&amp;gt;VMwareToolboxCmd.exe disk shrink &amp;lt;location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;location&amp;gt; is the drive you want to shrink&lt;br /&gt;
&lt;br /&gt;
On OS X / macOS the command to use is:&lt;br /&gt;
&lt;br /&gt;
 sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /&lt;br /&gt;
&lt;br /&gt;
== Shrink macOS VM with APFS ==&lt;br /&gt;
&lt;br /&gt;
[https://communities.vmware.com/thread/581576 Solved: Shrink an APFS virtual disk]&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
	<entry>
		<id>https://wiki.vi-toolkit.com/index.php?title=DOS&amp;diff=1502</id>
		<title>DOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.vi-toolkit.com/index.php?title=DOS&amp;diff=1502"/>
		<updated>2021-02-13T17:39:45Z</updated>

		<summary type="html">&lt;p&gt;Wila: Added a few relevant links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When creating a virtual machine with MS DOS (or PC Dos) then you&#039;ll notice that there are a few issues.&lt;br /&gt;
&lt;br /&gt;
The first major issue being that the VM will run one of your cores with a high CPU.&lt;br /&gt;
The reason being that MS DOS did not idle your CPU when it wasn&#039;t doing nothing, so instead of having a VM that uses no CPU when not doing anything you have that 1 core going nuts.&lt;br /&gt;
&lt;br /&gt;
The classical way to resolve that is by installing DosIdle.&lt;br /&gt;
&lt;br /&gt;
As it doesn&#039;t appear to be available much, here&#039;s a copy.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.vi-toolkit.com/images/f/f2/DOS-Drivers.zip Dos Drivers download]&lt;br /&gt;
&lt;br /&gt;
Other interesting notes for DOS users of VMware virtual machines:&lt;br /&gt;
&lt;br /&gt;
* [https://communities.vmware.com/t5/VMware-Workstation-Pro-Documents/Sound-Blaster-16-on-VMware-Workstation-15-5-and-VMware-Fusion-11/ta-p/2781947 SoundBlaster 16 support] which has vastly improved thanks to Darius.&lt;br /&gt;
&lt;br /&gt;
You also might want to check out Zamba&#039;s page here:&lt;br /&gt;
&lt;br /&gt;
* http://www.scampers.org/steve/vmware/&lt;br /&gt;
and Ken Kato&#039;s pages here:&lt;br /&gt;
&lt;br /&gt;
* https://sites.google.com/site/chitchatvmback/&lt;/div&gt;</summary>
		<author><name>Wila</name></author>
	</entry>
</feed>