Home > Blogs > VMware Fusion Blog


VMware Fusion 101: Unique Identifiers

If you enter a room and want to get someone’s attention, you might call out their name so they know you want to talk to them (and not, say, the person standing next to them). Computers have various unique identifiers that serve a similar purpose, and if these identifiers conflict, they might not be able to communicate with each other. A common identifier is the MAC (short for Media Access Control) address. Every network adapter has one of these. VMware virtual machines have another identifier called the UUID – this isn’t important to the guest, but is how Fusion (or other VMware products) keeps track of virtual machines.

Movedcopied_2
Whenever you move or copy a virtual machine, Fusion needs to know which happened — if you’ve moved the virtual machine, the UUID and MAC address(es) remain the same. In the people-in-a-room analogy, you just walked over to a different spot. If you’ve copied the virtual machine, Fusion assigns a new UUID and MAC address(es) — in the people-in-a-room analogy, your twin sibling just walked in and needs a different name so people don’t confuse the two of you. Maintaining the same unique identifier is less disruptive for the virtual machine, while creating a new identifier is required if you’re going to use an original and a copy at the same time.

So far so good, but to make things more complicated, there are potentially other unique identifiers associated with each computer that Fusion doesn’t know about and so can’t change. If your guest has one of these, you’ll need to update it if you copy the virtual machine or else things may not work. One example is Windows, which has a Security Identifier, or SID. Even if two computers have independent MAC address, if the SID is the same, one won’t be able to access the network. You may need to use a tool like NewSID to update the SID of a copied Windows virtual machine. Another example is older versions of Ubuntu, which stored the MAC address in /etc/iftab; networking didn’t work if the MAC address changed and this file wasn’t updated.

4 thoughts on “VMware Fusion 101: Unique Identifiers

  1. Jon-Eric Eliker

    Nice explanation. Is there a way to force a VM to create a new UUID? I have discovered that by renaming the folder it’s in, the move/copy prompt will display next time the VM is activated but it seems like there ought to be a more direct way to make the change.

    Reply
  2. Eric Tung

    @Jon-Eric: Not directly – you usually only need to cause Fusion to create a new UUID when you move/copy a virtual machine, which should trigger this process anyway. If you really want to do this without moving/renaming the location, edit the virtual machine’s .vmx config file (while it’s not running, of course) and delete the uuid lines. Fusion will recreate a UUID the next time the virtual machine is loaded. There are also .vmx options to always create a new UUID or always keep the existing UUID when a virtual machine is moved/copied.
    However, unless you’ve actually changed something since the UUID was generated, this won’t generate a *new* UUID – it’s currently a deterministic algorithm. I believe the UUID is a hash of the file path and the computer ID.
    Note: I’m using UUID as shorthand for UUID + MAC addresses.

    Reply
  3. Hanif

    Hi Eric, I would like to work on the same VM at two locations, as in the office and at home.
    I copied the VM on an external HDD and am running it from the external HDD, and i chose “moved” but the software i am using is asking for activation
    How can I do this?
    Thank you in advance

    Reply
  4. Caroline

    My VM creates a new machine ID and Mac address every single time it reboots. From reading your article, I get the impression that this is not supposed to happen. Do you have any idea why it’s happening to me, or do you know how to stop this from happening? I tried adding the property uuid.action = “keep” in the VMX file, but that didn’t do anything.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *