When you copy or move the data store location of an existing VM running on VMware vSphere you will be presented with a message box (as seen below) in the vCenter Client asking if your VM has either been ‘moved’ or ‘copied’. As you can see the message box also mentions “msg.uuid.altered: This virtual machine may have been moved or copied”, but what does this actually mean?
Figure 1. Has the VM been moved or copied?
What is a VM’s UUID?
Firstly, it is important to have an understanding of what a ‘UUID’ (universally unique identifier) is. As the name suggests the UUID is a ‘identifier’ (128 bit integer) which is ‘unique’ to that VM, and effectively gives it a digital fingerprint to differentiate it from other VMs.
The UUID is automatically generated when a VM is first powered on or moved, with the UUID value being based on the physical host’s identifier and also the path to the VM’s configuration (vmx) file. Within this configuration file the UUID value is stored in two places:
- uuid.bios
- uuid.location (hash based on the current path of the VM)
For example: uuid.bios = "56 4d 5e 58 66 f5 2d 04-03 31 0a bd 6f a7 19 88"
The UUID is also stored in the SMBIOS system information (ie: the BIOS of the VM) descriptor. When the VM is started or moved the location UUID (ie: uuid.location) which is hashed from the VM’s data store path is compared to the UUID location hash which already exists in the configuration file. At this point if the new and existing location UUID value differs then ESX knows that the VM is now running from a different data store location and will present the ‘Virtual Machine Message’ in figure 1 above.
But why do we care if the VM has the same or a new UUID?
We saw in the message above provided by ESX informing that the UUID has in someway been altered but why does this really matter? The answer to this you’ll be pleased to know is quite simple. A VM’s unique UUID is used to generate other unique values used by the VM such as the unique MAC (media access control) address of the network card(s). For example if you had multiple copies of the same VM/Guest OS running in your vSphere environment all with the same (ie: non-unique) network MAC address you will likely receive duplicate MAC address error messages within the guest OS which can cause a number of issues.
Another potential point to be mindful of is that some software licensing can be linked to a MAC address of a guest OS’s network card. This includes software such as Microsoft Windows where changing the MAC address and some other key hardware components (eg: moving from an Intel based ESX host to a AMD based ESX host) can mean you have to re-activate the software again. The changing of a VM’s MAC address will occur when you select “I copied it”, the next couple of sections will go into more detail on what exactly is altered.
Should I Select “I Moved It” or “I Copied It”?
So what is the difference between selecting “I_moved it” or “I_copied it”? The easiest way to demonstrate the differences is by viewing the configuration file (vmx) for the VM before and after the two different options have been selected.
“I Moved It”
By indicating that you had moved the VM (instead of copying it) the only UUID change that is made to the configuration file is to the ‘uuid.location’ setting, which as you’d expect indicates a change of location for the VM. The ‘uuid.bios’ and the existing generated network MAC address remains that same.
You will also notice that the CPUID settings have also changed which is also the case for when you indicate that the VM was copied.
The “I Moved It” option should be used when ‘moving’ the location of where a VM resides and a copy of the VM has not been made.
“I Copied It”
When you select that the VM has been copied then there a few more changes that are made to the VM’s configuration file when compared to just moving it. These changes are to the ‘uuid.bios’, ‘uuid.location’ and as a result of these changes a newly generated network MAC address (ethernet.generatedaddress).
The “I Copied It” option should be used when you’ve made, and intend to run, more than one copy of the VM in your vSphere environment.
To summarise, here is a table which outlines the changes that are made when either the “I Moved It” or “I Copied It” are selected
“I Moved It” (change?) | “I Copied It” (change?) | |
uuid.bios | ![]() |
![]() |
uuid.location | ![]() |
![]() |
ethernet.generatedaddress | ![]() |
![]() |
guestCPUID.x | ![]() |
![]() |
hostCPUID.x | ![]() |
![]() |
userCPUID.x | ![]() |
![]() |
As you can see it is worth spending the time to understand the changes which will be made when presented with the “I moved it” or “I copied it” options as it can impact (eg: software re-activation) the guest OS of the VMware vSphere VM.
I hope this helps clarify this small aspect of VMware vSphere administration which can sometimes be an area of confusion.
Hi Si, I’ve always wondered what the difference was. Makes sense if you think about it.
Cheers for the write up.
Si
Hi,
Some 3rd party tools also make use of the UUID, I have seen customers choose “I copied it” when they meant “I moved it” when moving some VMs around, and then had issues when their 3rd party backup tool no longer could find their VMs.
-Rod
Makes sense, I always kind of wondered what the story was behind that message.
Nice one Si, that clears that one up, I did wonder what exactly it was doing regarding UUID.
Cheers
Craig
excelent post, the change of the mac address in the “i copied” option is something to take into consideration.
Hi there,
Thanks for your feedback – much appreciated. 🙂
Glad you found the post of use. Watch this space for a further post on this topic, going into some more detail on how to ‘tweak’ the UUID for some scenarios.
All the best,
Si
Brilliant post!
I would like to know whether there is any security vulnerability when you use VMs with the same UUIDs. Some host-level Anti-Viruses starts to complain when running VMs with the same UUIDs.
Thanks,
Arun.P.C
I am using VMware Worsktation 6.5.3. I see this dialog when I start a VM for the first time after copying vmdk and vmx files. Do you know if there is any way to avoid this dialog? May be with the help of some command line utility?
Here is a nice article which describes how to configure a virtual machine to automatically answer these Virtual Machine Message questions so that manual user intervention is not required-
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1027096
Thanks Si for the blog. This came in very handy helping us understand what the actual differences are and when to use each option. Especially when doing a restore onto an ESXi server!!
Hello! I am new to the community. Thank you very much look forward to your next article.
Great job! After such a clear explanation, I’m not sure why I was confused in the first place.
Thanks!
Great explanation on this! I’ve always been confused about the difference and now its clear. Thanks again
Thorough post and clearly explained, nicely done Simon.
Thanks, a good explanation and well illustrated.
Hi Andrew,
Glad it was of use. 🙂
Cheers,
Simon
Great! Thank you.
Well done, just a side note “VM Ware ESXI Copied It” link is broken to the blown up view of that graphic. “I moved it” works.
Thanks for the heads-up John, that should now be fixed.
Cheers,
Simon
Thanks a lot for your explanaitions on that topic. But I’m writing an Application and I have to protect it from unauthorized access. This means, that no person without a license key is allowed to use it. To do this, I have to prevent that the whole VM is copied to another PC.
Every time, the applivation is started, I check the CPU ID of the System running in a VM. But when I copy it but answer the dialog with “I MOVED IT”, the CPU ID is not changing. Can anyone tell me why it does not change?
Hi,
Awesome post.
I have one question. I export OVF image from ESXi and now I am importing this image on workstation 9.0. But while importing and start-up machine, I am not getting any message of “moved” or “copied”. Is there any way I can get the message. Without this message I am having error for activating windows again?
Thanks,
Nasir
Hi…I hope you can help me. I am not sure where to turn at this point.
I am using ESXi, so I know this may not fully apply, but I am having a strange issue when I clone a windows 7 PC.
I work around not having the cloning wizard that comes with the full VMware version by going into the datastore and copying the source template image. I then change the SID using..basically sysprep…before the machine boots. I do get the prompt you describe and I always choose copy it. All seems to work on my domain EXCEPT for WSUS. When two machines are forced to register in WSUS, they basically overwrite one another. For ex:
Machine A is forced to register in WSUS
Machine A will show up in WSUS
Machine B (copied using the same template/image) is then forced to register in WSUS
Machine B DOES register, but machine A disappears.
I can go back and forth all day long. Register one after the other and they will both overwrite (?) one another within WSUS.
I do not have this issue with any other physical machine on the network, thus, it has to be related to the cloning process I am using.
Again, I do have a unique SID, MAC address, etc, yet, this occurs. There are no other odd symptoms on the machines on the domain.
I know…needle in a haystack, but any thoughts would be so appreciated. Thanks!
Hi,
WSUS SID might be a source of the problem.
Try this: http://www.stratesave.com/html/sidchg.html
Thanks some much for this information! I has helped me a lot!
Hi,
Thanks for sharing an article. I have doubt about copied and moved.I’ve always been confused about the difference and now its clear.
Regards,
Kiran,
awesome article… Thanx bro..