4

Background

I'm running ESXi 6.0.0 in free mode. I created one VM and then copied its files to another folder in the datastore to create the next machine (almost like a template). I wound up with two working VM's that have been doing just fine in production.

Problem

My backup drives finally came in, so now I'm trying to set up Unitrends to do VM level backups. When I try to connect Unitrends to ESXi, it gives an error:

Virtual machines "vm1name" and "vm2name" have the same Instance UUID. Please use the VMware vSphere Client or another administration tool to assign a new UUID to one of the virtual machines.

According to the advice on this forum post: I tried to edit the VMX file to change the bios.uuid value. That didn't resolve the error. Next I tried to use the script form the same post in PowerCLI. It showed me that I do indeed have duplicate instance UUID's. These are apparently different from the UUID values in the vmx file (which are unique). I have two machines that both have the instance UUID of

52c7dbf3-e442-da43-a0b1-2a9befd93919

Unforrunately, it seems that I can't find a way to change the instance UUID. I haven't been able to find anything about it online.

Question

How do I change the Instance UUID for a virtual machine on ESXi? I really must get it working, and I'd appreciate any help you can provide. Thank you!

trademark
  • 188
  • 1
  • 1
  • 7

2 Answers2

5

The most clean and troublefree solution would be to create a new machine and attach the disks.


However, if you want to edit the configuration, there are three UUIDs in a machine's settings.

  • You can delete uuid.location and uuid.bios from .vmx configuration file, for example with the following commands:

    sed -i '/uuid.location/d' ./*.vmx
    sed -i '//d' ./*.vmx
    

    and restart the machine -- it should force the generation of new UUIDs (the last three digits of uuid.bios will also match the part of MAC address in ethernet0.generatedAddress).

  • The third one vc.uuid (most likely the one that Unitrends complains about) does not get recreated, but you can change its value to another deliberate random number. In your case the line in the .vmx should be:

    vc.uuid = "52 c7 db f3 e4 42 da 43-a0 b1 2a 9b ef d9 39 19"
    

You need to perform the changes to the .vmx file while the machine is stopped, otherwise they will get overwritten.

techraf
  • 4,163
  • 8
  • 27
  • 44
  • Will this actually change the **instance** UUID (the one with 4 dashes)? The value that is stored in uuid.location and uuid.bios is not a duplicate. Perhaps your solution causes a new instance UUID to be generated as well, in which case that would be great. – trademark Aug 03 '16 at 14:39
  • This did not work. The **instance** UUID is not changed. I am **not** trying to change the UUID values stored in the vmx file. Those values are fine, and removing those lines did not force regeneration of the **instance** UUID – trademark Aug 03 '16 at 18:52
  • 1
    Then it is `vc.uuid` which you are looking for (it's also in `.vmx`). You'd need to unregister VM (Actions -> Unregister), change the value of `vc.uuid` manually (if you look closely it's the same string, just dashes differ), re-register the machine and check the InstanceUUID with PowerCLI (and always, as I already mentioned above, you can create a new machine and attach the disks, that would be the cleanest way to do it). – techraf Aug 03 '16 at 22:42
  • Unregistered, changed the vc.uuid value, uploaded, and re-registered. Unitrends looks happy now. Thank you so much! – trademark Aug 04 '16 at 18:30
  • 1
    Glad it helped. Frankly speaking, thanks to your question I had to revise some old scripts that didn't take into account `vc.uuid`. Otherwise I might have ran into the same problem one day. – techraf Aug 04 '16 at 23:09
0

So the answer to this issue is to shutdown the VM in question from the vCentre (or vCloud Director if your using it)

You do not need to unregister unless its on a single host.

Download the vmx file from the VM`s folder

Edit the bios.uuid and vc.uuid in the file

Upload the new vmx to the VM`s folder

Migrate the Vm to another host using the Webclient, this then forces a change in UUID as it notices its been changed.

Boot the machine up now and it will have a new UUID.

If using vCloud Director, make sure you power the machine off from the VCD console and power up from there also.

  • Good suggestion that I found quite useful, especially the bit about coaxing the system to generate new UUID by migrating VM to another host. I found this even more useful and practical than the accepted answer. Who downvoted this and why? – Chux Uzoeto Feb 24 '21 at 13:11