Disclaimer: This is a personal document and is not official or endorsed by VMware. Feedback, suggestions, and edits are welcome.
This document is intended for someone new to Fusion, and possibly someone who is new to Macs in general. It describes basic terminology/concepts, where to find things, and notes on using virtual machines.
If you want to be notified of changes and additions to this document, you can use the "Receive email notifications" action in the sidebar on the left. People can't seem to stop using the comments section inappropriately, so I've locked it. For any concerns about this document, please PM me instead.
Another good resource for beginners is the free eBook Take Control of VMware Fusion 3 (oriented towards Fusion 3, obviously).
More advanced users may be interested in A Power User's Guide to VMware Fusion.
Virtualization software lets you run multiple operating systems at once. A hosted product (such as Fusion, Workstation, Server, and Player) runs on top of another OS, called the host. In the case of Fusion, the host is OS X. The OS (such as Windows XP, Ubuntu 7.04, or most x86 OSes) that you run inside the virtualization software is called the guest.
As a side note and comparison, bare metal virtualization (such as ESX/ESXi/vSphere) gets rid of the host OS to improve performance and reduce security vulnerabilities.
See Glossary of Virtualization (and Computing) Terms for a more complete list.
Where to Find Things
Fusion and vmware-vmx Processes
When Fusion runs a virtual machine, there are actually two processes involved: the Fusion GUI and vmware-vmx. The GUI takes care of things like accepting input and drawing to the screen, while the vmware-vmx process does the heavy work of actually running the guest. If you ever want to see how much CPU Fusion is taking up, remember that you need to consider both processes. vmware-vmx is a root-owned process, so to see it in Activity Monitor you have to choose to view All Processes.
If you force quit Fusion, this only kills the GUI process; the vmware-vmx process continues running. If you really want to force quit all of Fusion, you need to kill vmware-vmx as well. Note: If it's just the guest that's not responding, you can tell Fusion to shut down or restart it by holding option and selecting Virtual Machine > Power Off or Virtual Machine > Reset. This is similar to pulling the power cord on a physical computer.
Virtual Machine Files
For non-boot Camp virtual machines, Fusion puts virtual machines (VMs) in "/Users/yourusername/Documents/Virtual Machines/" by default. Boot Camp virtual machines are located in "/Users/yourusername/Library/Application Support/VMware Fusion/Virtual Machines/". You can also see the location of a virtual machine in the Virtual Machine Library by hovering the mouse over the listing - the location should pop up in a tooltip.
Another simple way to locate your VM while open is to Control-Click on the VM windows icon. This will bring up a pop-up box showing all of the enclosing folders to your virtual machine. Clicking on its proximal containing folder will open it in a new Finder window.
VMs are packaged up in bundles a.k.a. packages, which is OS X's way of showing things that really belong together. Other examples of bundles include most applications and installers. Fusion bundles have the extension ".vmwarevm" (OS X may hide this by default). You can examine the contents of a bundle by going to the bundle in the Finder, ctrl-clicking it, and choosing "Show Package Contents"
By default, bundles contain the files that describe a virtual machine. These files include:
- A virtual disk file (*.vmdk)
- This can be a single large file or many 2GB chunks, depending on how you set up your disk. If you have a snapshot, there will also be more of these.
- A configuration file (*.vmx)
- This is a plaintext file describing the virtual machine, such as which files it uses, how much RAM it gets, and various settings. Since it's a plaintext file, you can use your favorite text editor to modify it, but be sure that the virtual machine and Fusion is not running when you do this. Note that editing the .vmx file is not supported and can cause problems if you don't know what you're doing.
- A BIOS file (*.nvram)
- This contains information such as the virtual machine's boot order
- Log file(s) (vmware.log)
- This is a plaintext file that contains information on the most recent run of the virtual machine, and corresponds to the vmware-vmx process. The next-most-recent is called vmware-0.log, then vmware-1.log, and finally vmware-2.log. If you ever have a problem with Fusion, you may be asked to provide this file.
Other files are created when you run the virtual machine. These include:
- Lock files (*.lck)
- Memory file (*.vmem)
- Fusion UI log ("/Users/yourusername/Library/Logs/VMware Fusion/vmware-vmfusion.log")
- Just as the vmware-vmx process creates vmware.log, the Fusion UI process creates this log. Like vmware.log, this is a rotating log.
- Tools images ("/Library/Application Support/VMware Fusion/isoimages/")
- You shouldn't normally have to deal with these, Fusion should automatically take care of connecting them to the guest when you choose Virtual Machine > Install VMware Tools.
- User-wide configuration, essentially .vmx defaults. Individual .vmx files override this. ("/Users/yourusername/Library/Preferences/VMware Fusion/config")
- User-wide preferences, mostly UI controls. Individual .vmx settings do not override this because these settings do not apply to individual VMs. ("/Users/yourusername/Library/Preferences/VMware Fusion/preferences")
- Note the difference between the config and preferences files is mostly by convention, it's possible (but bad practice) to mix entries between them. This doesn't always work, though.
Working With Virtual Machines
With the exception of Boot Camp virtual machines, VMs are just files (albeit very large ones that happens to be able to run other programs). Because of this, you can back them up by simply making a copy to external media (Warning: FAT32 has filesize limitations) and restore them by copying back. You delete them from your computer by deleting them in the Finder (you can remove them from the Virtual Machine Library by selecting the entry and pressing Delete).
Boot Camp virtual machines are a little different, because instead of having a virtual hard disk, the VM uses the Boot Camp partition. Thus you can't simply copy the virtual machine to make a backup.
Fusion (the application) is distinct from virtual machines. Updating or uninstalling Fusion does not affect any virtual machines you have, just as updating iTunes does not affect your mp3s and updating Word doesn't affect your documents. When changing the version of Fusion (or any VMware product), it's good practice to shut your virtual machines down first (e.g. don't suspend a virtual machine then open it with a different version of Fusion). While it'll probably work, we don't guarantee it.
Important: Whenever you do file operations (move, copy, edit, delete, etc.) to a VM, make sure it is powered down and Fusion isn't running. You don't want to change the data out from under Fusion.
Virtual Machine Settings
When selecting disk size, there are two big considerations. The first is how much space the operating system needs. Some guest OSes need lots of space -- I believe Vista wants 7 GB -- while at the other end of the spectrum, Linux Live CDs don't need any. The other concern is how much space you need. If you're just surfing the web and downloading the occasional file, you might not need much extra space. On the other hand, if you're going to be doing things like working with databases, editing video, compiling large programs, etc., you might want lots more space.
I's OK if you selected a size that's too small - unlike a normal physical disk, it's possible to expand a virtual disk. This is a slightly involved process, and Pat Lee has written a good step-by-step guide Resizing Virtual Disks With Step by Step Instructions (a similar procedure works for other guest OSes). You can also add additional virtual disks later, which is an easier way of increasing space. However, the easiest of all is to get it right from the beginning.
Virtual disks can be monolithic or split, and sparse or preallocated. These options can be found under the Advanced disk options triangle in the Virtual Hard Disk step. It is possible to convert between these options later using vmware-vdiskmanager, but it may require a lot of extra space. The default type is monolithic-sparse. My personal recommendation is split-sparse.
Monolithic disks means the virtual disk is one file, while a split disk means the virtual disk is broken up into chunks of at most 2GB each. The split type should be used any time you want to keep the VM on a limited filesystem (such as FAT32) that does not understand large files. The split type also makes certain operations easier - for example, compacting a monolithic disk requires as much additional space as the entire virtual disk, but compacting a split disk only requires an additional 2GB. In some cases, split disks are also easier to repair (i.e. fewer steps) if something goes wrong.
Sparse disks start off small and grow as needed to the maximum size you specified. Preallocated disks are always the maximum size that you specified. Sparse disks are nice because they don't take up space until they need it, while preallocated disks may avoid fragmentation problems on the host. Sparse disks can also be compacted (say you start off with 4 GB of data, write 6 GB more, then delete 5 GB - you could compact a sparse disk back down to 5 GB) by using VMware Tools in the guest. One caveat is that you can't compact a sparse disk if you have a snapshot.
It's important for the guest to have enough RAM to be able to do whatever it needs to, and also important for the host to have enough RAM to be able to do whatever it needs to. It's a bad idea to allocate too much or too little RAM to the guest. As with choosing virtual disk size, the correct choice depends on the guest OS and what you want to do with the VM. The choice of guest determines the minimum RAM you should give it, and the amount of RAM your computer has determines the maximum RAM you should give the guest. Other considerations include what you plan on doing in the host - if you're going to be running Photoshop, iTunes, Mail, VLC, etc. all at the same time, you might want to consider leaving more RAM for OS X. When the virtual machine is off, you can change the RAM allocation under Virtual Machine > Settings > Memory.
Virtual machines love RAM - once you've tweaked settings, the most cost-effective way to improve virtual machine performance is usually to install more RAM on the host. This has two advantages - you can give more RAM to the guest or OS X. If you give it to the guest, your guest applications can use it. If you give it to OS X, OS X can use the RAM as a cache to improve disk performance in the guest.
If you experience stuttering in iTunes or pauses when switching back and forth between the guest and OS X, try disabling disk caching by choosing VMware Fusion > Preferences > Optimize for Mac OS application performance.
By itself, Fusion has a very low-level view of the world - it sees CPU instructions, not programs; disk blocks, not filesystems; etc. This keeps things simple ("all" we have to do is correctly virtualize hardware without worrying about what's the guest is trying to do), but it makes it hard to do certain things that require higher level knowledge. Some examples include copying files directly into or out of a guest, being more efficient than regular drivers, and being able to tell when the mouse enters or exits the guest. To get around this, Fusion uses a helper in the guest called VMware Tools. Tools gives Fusion the high-level knowledge to take shortcuts and do things it otherwise couldn't.
The general way to install Tools is as follows:
- Make sure the guest has an optical drive. If you cannot add one, it may still be possible to install Tools by getting the files in some other way, perhaps over the network, but that is beyond the scope of this document.
- Make sure the virtual machine is running and logged in; you will need administrator privileges in the guest.
- Connect the appropriate Tools image by selecting Virtual Machine > Install VMware Tools. The Tools CD should appear in the guest.
- The next step varies depending on the guest and your setup, but some general guidelines are:
Windows: Tools should install automatically unless you've disabled autorun, in which case you'll have to run D:\setup.exe (or wherever your optical drive is) yourself.
Linux: Installing is a two step process: Unpack and install the tools, then configure them. If you're using a RPM-based distro (e.g. Red Hat), use the .rpm, otherwise use the .tgz by unpacking it and running vmware-install.pl as root. To configure tools, run vmware-config-tools.pl.
More detailed instructions (including instructions for Solaris/Netware/FreeBSD) can be found at http://pubs.vmware.com/guestnotes/
Determining Which Version of Tools You Have
On Windows, open the VMware Toolbox by clicking on the VMware-three-boxes logo ( ) in the taskbar. On Linux, run vmware-toolbox (some options require running as root). In either case, go to the About tab and look for "Version X.y.z, build-NNNNN"
How To Shrink
Note: You cannot shrink a disk if it has snapshots.
Open the Toolbox as in the previous section, select the Shrink tab, select the partition(s) you want to shrink, then press the Shrink button. Fusion will think for a while as it figures out which parts of the disk are actual data and marks parts which aren't needed anymore, then ask you for a confirmation. Accept and Fusion will finish shrinking the disk. The entire process may take some time (on the order of an hour), especially if you have a large, empty disk. Other running programs on the host may also slow down the process.
Starting a VM...
...in One Click
You probably already know you can open an application by opening a document that is associated with the application. Remembering that a virtual machine is still a document (just a very large one that's capable of running other programs), you can do things like putting the VM on the right side of the Dock and launch it in one click.
...in Unity or Fullscreen mode
In 2.0, when you suspend, Fusion remembers the last view mode you used and changes back to it when you resume. So instead of powering off your virtual machine, you can suspend it and next time you come back, it will be in the proper view mode.
In 1.x, things were a little different.
Once you've run a VM in Unity, the .vmwarevm bundle should have a folder named "Applications" that has small helper applications representing guest apps. If you open one of these, it should start the guest program (after powering on the VM and switching to Unity, if these have not already been done). You can also put them in the Dock. So to start in Unity, just start the VM via the helper app you want to use.
An alternative that also allows starting up in fullscreen is to use AppleScript: AppleScript to Run Virtual Machine and switch to Full Screen View or Unity View at Login.
If you go to System Preferences > Accounts > yourusername > Login Items, you can select applications or documents to open at login time. You can of course put a virtual machine here, too.
...at Boot Time
Sharing Virtual Machines Between Users
First, the caveats: Only one person can be using the virtual machine at a time (and Fast User Switching doesn't count). Suspending (and possibly snapshotting) the VM will probably cause other people to not be able to use the VM.
Important: Whenever you do file operations (move, copy, edit, delete, etc.) to a VM, make sure it is powered down and Fusion isn't running. You don't want to change the data out from under Fusion.
To do this, the main things you need to do are:
- Move the virtual machine to a shared location so other users can access it
- An example of this is /Users/Shared/
- Change permissions so that any user can access the virtual machine
- For OS X 10.4 In the Finder, select the virtual machine and select Get Info. Then change "Ownership & Permissions > Others" to "Read & Write". (I'm not sure if you need to do this for Group Access also). You also need to do this to the contents of the VM - remember the bit earlier about how to get inside a bundle? Do that and repeat the Get Info correction on everything in the bundle.
- For OS X 10.5 In the Finder, select the virtual machine and select Get Info. Click the disclosure triangle beside "Sharing & Permissions". Then click on the lock on the bottom right and authenticate with your password. Click the + sign on the left side of the window, click on the user you want to access the virtual machine and click "select". Once the user is added give that user Read & Write permissions. The changes are usually applied to the items in the virtual machine package but you should Ctrl+Click the virtual machine and show package contents then verify the files have the same change applied.
Fusion doesn't scan your hard drive for virtual machines, it just remembers ones it's seen before. So in order for the shared VM to appear in another user's Virtual Machine Library, you need to either open the shared VM in Fusion as that user or drag-and-drop it to that user's Library.
Remember that if you've moved the virtual machine from it's original location then you'll need to re-add it to your own Virtual Machine Library so that the new location is taken into account.
Sharing Virtual Machines Between Platforms
Fusion uses the same virtual machine format as Workstation 6 and Player 2. Generally speaking, you should be able to move a virtual machine between these programs.
The fine print is that there's the usual cross-platform caveats (i.e. OS X uses "/Users/yourusername/", Windows uses "C:\Documents and Settings\yourusername\My Documents\", Linux might use "/home/yourusername/"), so absolute paths in the .vmx need to be corrected. Not all features are in all products (e.g. Fusion lacks Record/Replay, Workstation lacks Unity, etc.), and hardware may be a problem too (e.g. Macs don't have a parallel port).
Older virtual machines, such as those created in Workstation 5, should also work in Fusion (and the other current versions), they'll just be missing newer features such as USB 2. You can upgrade older VMs by choosing Virtual Machine > Upgrade Virtual Machine. If you need to use a Fusion-created VM with an older VMware product such as Workstation 5 or Server 1, you need to downgrade the VM. Fusion doesn't have this capability, but Workstation 6 does.
Fusion doesn't scan your hard drive for virtual machines, it just remembers those that it has seen before. If you have an existing VM you'd like to use, you need to open it in Fusion or drag-and-drop it to the Virtual Machine Library window before it will show up there.
Working With Multiple Displays
Fusion supports spanning the full screen view over multiple displays in guest OSes with a compatible display model. Guests OSes known to work include Windows XP and Vista, Ubuntu 8.04 and above (and presumably any Linux distribution using an Xorg version supporting the same display model). Windows 2000 is known not to work.
Multiple display support is not a VM hardware setting. It is enabled at run-time via the View / Use All Displays in Full Screen menu option.
There is a lot more useful information in various resources. Here's an incomplete list:
- Anything in the documents section of this forum, including:
- Choosing the Right Virtual Machine Settings
- Resizing Virtual Disks With Step by Step Instructions
- Glossary of Virtualization (and Computing) Terms
- Frequently Asked Questions about VMware Fusion
- Frequently Asked Questions about Guest OSes
- Understanding Networking in VMware Fusion
- A Power User's Guide to VMware Fusion
- Third-party utilities/scripts for VMware Fusion