Make a clone of VirtualBox Machine that doesn't cause Windows Re-Activation after installing Windows












12















Most guides for installing Windows on VirtualBox to act as a template for quick Windows jobs tell you to take a few steps to prepare the Virtual Machine before installing Windows (the best guide I found: grahamrhay.wordpress.com; another fairly good guide: www.windowstablettv.com). Unfortunately, I didn't read these guides before installing and activating Windows on the VM I wanted to use as a template.



I want to know how to clone my already-active VM in such a way that would not require re-activation from Windows.



Looking in the template VM Definition file (the VBOX or XML file for the VM), the /VirtualBox/Machine/Hardware (XPath ID) node has no uuid attribute. But, if I try to use VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> to set a new UUID for the template VM, then the template VM loses its activation status! (Thankfully, I had made a backup of the template.) So, to accomplish my aim, I can't just follow those guides pretending that I haven't installed Windows yet.










share|improve this question





























    12















    Most guides for installing Windows on VirtualBox to act as a template for quick Windows jobs tell you to take a few steps to prepare the Virtual Machine before installing Windows (the best guide I found: grahamrhay.wordpress.com; another fairly good guide: www.windowstablettv.com). Unfortunately, I didn't read these guides before installing and activating Windows on the VM I wanted to use as a template.



    I want to know how to clone my already-active VM in such a way that would not require re-activation from Windows.



    Looking in the template VM Definition file (the VBOX or XML file for the VM), the /VirtualBox/Machine/Hardware (XPath ID) node has no uuid attribute. But, if I try to use VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> to set a new UUID for the template VM, then the template VM loses its activation status! (Thankfully, I had made a backup of the template.) So, to accomplish my aim, I can't just follow those guides pretending that I haven't installed Windows yet.










    share|improve this question



























      12












      12








      12


      6






      Most guides for installing Windows on VirtualBox to act as a template for quick Windows jobs tell you to take a few steps to prepare the Virtual Machine before installing Windows (the best guide I found: grahamrhay.wordpress.com; another fairly good guide: www.windowstablettv.com). Unfortunately, I didn't read these guides before installing and activating Windows on the VM I wanted to use as a template.



      I want to know how to clone my already-active VM in such a way that would not require re-activation from Windows.



      Looking in the template VM Definition file (the VBOX or XML file for the VM), the /VirtualBox/Machine/Hardware (XPath ID) node has no uuid attribute. But, if I try to use VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> to set a new UUID for the template VM, then the template VM loses its activation status! (Thankfully, I had made a backup of the template.) So, to accomplish my aim, I can't just follow those guides pretending that I haven't installed Windows yet.










      share|improve this question
















      Most guides for installing Windows on VirtualBox to act as a template for quick Windows jobs tell you to take a few steps to prepare the Virtual Machine before installing Windows (the best guide I found: grahamrhay.wordpress.com; another fairly good guide: www.windowstablettv.com). Unfortunately, I didn't read these guides before installing and activating Windows on the VM I wanted to use as a template.



      I want to know how to clone my already-active VM in such a way that would not require re-activation from Windows.



      Looking in the template VM Definition file (the VBOX or XML file for the VM), the /VirtualBox/Machine/Hardware (XPath ID) node has no uuid attribute. But, if I try to use VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> to set a new UUID for the template VM, then the template VM loses its activation status! (Thankfully, I had made a backup of the template.) So, to accomplish my aim, I can't just follow those guides pretending that I haven't installed Windows yet.







      windows virtualbox virtual-machine windows-activation






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Sep 12 '12 at 16:13







      palswim

















      asked Sep 11 '12 at 20:08









      palswimpalswim

      1,77382952




      1,77382952






















          4 Answers
          4






          active

          oldest

          votes


















          9














          Thankfully, I noticed something about all of my Virtual Machines that I hadn't prepared as those guides had outlined.



          I ran VBoxManage showvminfo <uuid|name> and noticed that the UUID valued matched the Hardware UUID value, leading me to surmise that if any VM Definition didn't have a uuid attribute in the /VirtualBox/Machine/Hardware node, then the VM would use the "Machine UUID" value as the "Hardware UUID" value. So, for my template VM, it did have a "Hardware UUID" that I could use; I just had to find how to transfer it to any clones I would make.



          To ensure that the UUID transfers, you can take one of two approaches:




          • You can edit the template VM Definition file directly. The "Hardware UUID" will only transfer to clones if the /VirtualBox/Machine/Hardware has the uuid attribute. So, copy the /VirtualBox/Machine uuid attribute and add it to the /VirtualBox/Machine/Hardware uuid attribute. You probably want to re-initialize the VirtualBox machine database after this, by closing/killing any VirtualBox process you're running. (VBoxSVC sometimes lingers on Windows; you may have to kill it from the Task Manager.)

          • You can clone your template and make a new template VM, and then use VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> to set the new template's "Hardware UUID" to the original template's "Machine UUID"/"Hardware UUID". I say you have to clone the VM to create a new template VM because if you try to set the "Hardware UUID" with this command on the original template, it won't add the uuid attribute to the /VirtualBox/Machine/Hardware node, since it can still imply it from the "Machine UUID", and thus won't copy this value to any clone it makes.






          share|improve this answer


























          • It's not clear of which VM you're talking about in first point; also it's better to use VBoxManage modifyvm --hardwareuuid <uuid>

            – CharlesB
            Apr 15 '14 at 7:35






          • 2





            The modifyvm command will not set the /VirtualBox/Machine/Hardware node uuid attribute if you pass a UUID with the same value as the VM's /VirtalBox/Machine node uuid attribute. You must edit the VBOX file directly.

            – palswim
            Apr 15 '14 at 17:27



















          3














          This powershell script does the work:




          1. clone the machine that is already activated.

          2. close virtualbox precesses from task manager.

          3. run this script, modifing the variables to your values.


          Remember that the virtual machines names are case sensitive.



          $ORIGVirtualMachineName="BaseDevWin7"
          $clonedVirtualMachineName="DevWin7a"
          $vboxDir="c:Program FilesOracleVirtualBox"
          cd $vboxDir
          $uid=$($($(.VBoxManage.exe showvminfo $ORIGVirtualMachineName|select-string "Hardware UUID:").ToString()).Split())[4]
          .VBoxManage modifyvm $clonedVirtualMachineName --hardwareuuid $uid





          share|improve this answer

































            2














            Thanks to the hints above I have successfully cloned a machine with Win7 guest running on a Kubuntu host for test purposes without re-activation.



            My machine was activated already and (as described above) actually had no hardware UUID.



            For me it looks like the MACHINE UUID is only for Virtualbox management, whereas the HARDWARE UUID is used by Windows activation logic. If there is no hardware UUID then Virtualbox provides the machine UUID to the guest, i.e. Microsoft knows the machine UUID.



            So this is how it worked well without re-activation in my case:
            1) Copy the virtual machine (folder) with normal file browser.
            2) Open the .vbox file in a simple text editor.
            3) As there was no UUID attribute for the "hardware", copy the machine UUID attribute (e.g. uuid="{xxx11111-2222-3333-4444-xxxxxxxxxxxx}" ) to the "hardware" entry.
            4) Generate a new UUID for the machine, e.g. with uuidgenerator.net.
            5) Overwrite the UUID machine VALUE with the generated UUID value.
            => Done.



            In order to manage both machines in parallel in VB Manager it is more tricky:

            1. Rename the clones's harddisk .vdi file.

            2. In command line provide a new UUID to the harddisk via command "VBoxManage internalcommands sethduuid .vdi. VBManager will set a new UUID and display it.

            3. In VB Manager add the new machine. Edit the machine by adding the new harddisk file (and remove original vdi, if still present).



            Now you have unique IDs for all virtual machines and harddisks. You can manage both machine's within the VB Manager in parallel.






            share|improve this answer

































              1














              Full clone the machine. Do not start it.



              From command line:



              VBoxManage modifyvm "Cloned VM name" --hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx



              As UUID use the the machine id (or hardware id if present) from the original machine.



              To get the that UUID use:



              VBoxManage showvminfo "Original VM name"



              This should work. Tested on Windows 10 guest, already activated.






              share|improve this answer
























              • This works in most cases except where the UUID matches the VM's /VirtalBox/Machine node's uuid attribute, as the question and another comment indicate.

                – palswim
                Feb 11 at 20:58













              Your Answer








              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "3"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f472951%2fmake-a-clone-of-virtualbox-machine-that-doesnt-cause-windows-re-activation-afte%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              4 Answers
              4






              active

              oldest

              votes








              4 Answers
              4






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              9














              Thankfully, I noticed something about all of my Virtual Machines that I hadn't prepared as those guides had outlined.



              I ran VBoxManage showvminfo <uuid|name> and noticed that the UUID valued matched the Hardware UUID value, leading me to surmise that if any VM Definition didn't have a uuid attribute in the /VirtualBox/Machine/Hardware node, then the VM would use the "Machine UUID" value as the "Hardware UUID" value. So, for my template VM, it did have a "Hardware UUID" that I could use; I just had to find how to transfer it to any clones I would make.



              To ensure that the UUID transfers, you can take one of two approaches:




              • You can edit the template VM Definition file directly. The "Hardware UUID" will only transfer to clones if the /VirtualBox/Machine/Hardware has the uuid attribute. So, copy the /VirtualBox/Machine uuid attribute and add it to the /VirtualBox/Machine/Hardware uuid attribute. You probably want to re-initialize the VirtualBox machine database after this, by closing/killing any VirtualBox process you're running. (VBoxSVC sometimes lingers on Windows; you may have to kill it from the Task Manager.)

              • You can clone your template and make a new template VM, and then use VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> to set the new template's "Hardware UUID" to the original template's "Machine UUID"/"Hardware UUID". I say you have to clone the VM to create a new template VM because if you try to set the "Hardware UUID" with this command on the original template, it won't add the uuid attribute to the /VirtualBox/Machine/Hardware node, since it can still imply it from the "Machine UUID", and thus won't copy this value to any clone it makes.






              share|improve this answer


























              • It's not clear of which VM you're talking about in first point; also it's better to use VBoxManage modifyvm --hardwareuuid <uuid>

                – CharlesB
                Apr 15 '14 at 7:35






              • 2





                The modifyvm command will not set the /VirtualBox/Machine/Hardware node uuid attribute if you pass a UUID with the same value as the VM's /VirtalBox/Machine node uuid attribute. You must edit the VBOX file directly.

                – palswim
                Apr 15 '14 at 17:27
















              9














              Thankfully, I noticed something about all of my Virtual Machines that I hadn't prepared as those guides had outlined.



              I ran VBoxManage showvminfo <uuid|name> and noticed that the UUID valued matched the Hardware UUID value, leading me to surmise that if any VM Definition didn't have a uuid attribute in the /VirtualBox/Machine/Hardware node, then the VM would use the "Machine UUID" value as the "Hardware UUID" value. So, for my template VM, it did have a "Hardware UUID" that I could use; I just had to find how to transfer it to any clones I would make.



              To ensure that the UUID transfers, you can take one of two approaches:




              • You can edit the template VM Definition file directly. The "Hardware UUID" will only transfer to clones if the /VirtualBox/Machine/Hardware has the uuid attribute. So, copy the /VirtualBox/Machine uuid attribute and add it to the /VirtualBox/Machine/Hardware uuid attribute. You probably want to re-initialize the VirtualBox machine database after this, by closing/killing any VirtualBox process you're running. (VBoxSVC sometimes lingers on Windows; you may have to kill it from the Task Manager.)

              • You can clone your template and make a new template VM, and then use VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> to set the new template's "Hardware UUID" to the original template's "Machine UUID"/"Hardware UUID". I say you have to clone the VM to create a new template VM because if you try to set the "Hardware UUID" with this command on the original template, it won't add the uuid attribute to the /VirtualBox/Machine/Hardware node, since it can still imply it from the "Machine UUID", and thus won't copy this value to any clone it makes.






              share|improve this answer


























              • It's not clear of which VM you're talking about in first point; also it's better to use VBoxManage modifyvm --hardwareuuid <uuid>

                – CharlesB
                Apr 15 '14 at 7:35






              • 2





                The modifyvm command will not set the /VirtualBox/Machine/Hardware node uuid attribute if you pass a UUID with the same value as the VM's /VirtalBox/Machine node uuid attribute. You must edit the VBOX file directly.

                – palswim
                Apr 15 '14 at 17:27














              9












              9








              9







              Thankfully, I noticed something about all of my Virtual Machines that I hadn't prepared as those guides had outlined.



              I ran VBoxManage showvminfo <uuid|name> and noticed that the UUID valued matched the Hardware UUID value, leading me to surmise that if any VM Definition didn't have a uuid attribute in the /VirtualBox/Machine/Hardware node, then the VM would use the "Machine UUID" value as the "Hardware UUID" value. So, for my template VM, it did have a "Hardware UUID" that I could use; I just had to find how to transfer it to any clones I would make.



              To ensure that the UUID transfers, you can take one of two approaches:




              • You can edit the template VM Definition file directly. The "Hardware UUID" will only transfer to clones if the /VirtualBox/Machine/Hardware has the uuid attribute. So, copy the /VirtualBox/Machine uuid attribute and add it to the /VirtualBox/Machine/Hardware uuid attribute. You probably want to re-initialize the VirtualBox machine database after this, by closing/killing any VirtualBox process you're running. (VBoxSVC sometimes lingers on Windows; you may have to kill it from the Task Manager.)

              • You can clone your template and make a new template VM, and then use VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> to set the new template's "Hardware UUID" to the original template's "Machine UUID"/"Hardware UUID". I say you have to clone the VM to create a new template VM because if you try to set the "Hardware UUID" with this command on the original template, it won't add the uuid attribute to the /VirtualBox/Machine/Hardware node, since it can still imply it from the "Machine UUID", and thus won't copy this value to any clone it makes.






              share|improve this answer















              Thankfully, I noticed something about all of my Virtual Machines that I hadn't prepared as those guides had outlined.



              I ran VBoxManage showvminfo <uuid|name> and noticed that the UUID valued matched the Hardware UUID value, leading me to surmise that if any VM Definition didn't have a uuid attribute in the /VirtualBox/Machine/Hardware node, then the VM would use the "Machine UUID" value as the "Hardware UUID" value. So, for my template VM, it did have a "Hardware UUID" that I could use; I just had to find how to transfer it to any clones I would make.



              To ensure that the UUID transfers, you can take one of two approaches:




              • You can edit the template VM Definition file directly. The "Hardware UUID" will only transfer to clones if the /VirtualBox/Machine/Hardware has the uuid attribute. So, copy the /VirtualBox/Machine uuid attribute and add it to the /VirtualBox/Machine/Hardware uuid attribute. You probably want to re-initialize the VirtualBox machine database after this, by closing/killing any VirtualBox process you're running. (VBoxSVC sometimes lingers on Windows; you may have to kill it from the Task Manager.)

              • You can clone your template and make a new template VM, and then use VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid> to set the new template's "Hardware UUID" to the original template's "Machine UUID"/"Hardware UUID". I say you have to clone the VM to create a new template VM because if you try to set the "Hardware UUID" with this command on the original template, it won't add the uuid attribute to the /VirtualBox/Machine/Hardware node, since it can still imply it from the "Machine UUID", and thus won't copy this value to any clone it makes.







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Apr 15 '14 at 17:10

























              answered Sep 11 '12 at 20:08









              palswimpalswim

              1,77382952




              1,77382952













              • It's not clear of which VM you're talking about in first point; also it's better to use VBoxManage modifyvm --hardwareuuid <uuid>

                – CharlesB
                Apr 15 '14 at 7:35






              • 2





                The modifyvm command will not set the /VirtualBox/Machine/Hardware node uuid attribute if you pass a UUID with the same value as the VM's /VirtalBox/Machine node uuid attribute. You must edit the VBOX file directly.

                – palswim
                Apr 15 '14 at 17:27



















              • It's not clear of which VM you're talking about in first point; also it's better to use VBoxManage modifyvm --hardwareuuid <uuid>

                – CharlesB
                Apr 15 '14 at 7:35






              • 2





                The modifyvm command will not set the /VirtualBox/Machine/Hardware node uuid attribute if you pass a UUID with the same value as the VM's /VirtalBox/Machine node uuid attribute. You must edit the VBOX file directly.

                – palswim
                Apr 15 '14 at 17:27

















              It's not clear of which VM you're talking about in first point; also it's better to use VBoxManage modifyvm --hardwareuuid <uuid>

              – CharlesB
              Apr 15 '14 at 7:35





              It's not clear of which VM you're talking about in first point; also it's better to use VBoxManage modifyvm --hardwareuuid <uuid>

              – CharlesB
              Apr 15 '14 at 7:35




              2




              2





              The modifyvm command will not set the /VirtualBox/Machine/Hardware node uuid attribute if you pass a UUID with the same value as the VM's /VirtalBox/Machine node uuid attribute. You must edit the VBOX file directly.

              – palswim
              Apr 15 '14 at 17:27





              The modifyvm command will not set the /VirtualBox/Machine/Hardware node uuid attribute if you pass a UUID with the same value as the VM's /VirtalBox/Machine node uuid attribute. You must edit the VBOX file directly.

              – palswim
              Apr 15 '14 at 17:27













              3














              This powershell script does the work:




              1. clone the machine that is already activated.

              2. close virtualbox precesses from task manager.

              3. run this script, modifing the variables to your values.


              Remember that the virtual machines names are case sensitive.



              $ORIGVirtualMachineName="BaseDevWin7"
              $clonedVirtualMachineName="DevWin7a"
              $vboxDir="c:Program FilesOracleVirtualBox"
              cd $vboxDir
              $uid=$($($(.VBoxManage.exe showvminfo $ORIGVirtualMachineName|select-string "Hardware UUID:").ToString()).Split())[4]
              .VBoxManage modifyvm $clonedVirtualMachineName --hardwareuuid $uid





              share|improve this answer






























                3














                This powershell script does the work:




                1. clone the machine that is already activated.

                2. close virtualbox precesses from task manager.

                3. run this script, modifing the variables to your values.


                Remember that the virtual machines names are case sensitive.



                $ORIGVirtualMachineName="BaseDevWin7"
                $clonedVirtualMachineName="DevWin7a"
                $vboxDir="c:Program FilesOracleVirtualBox"
                cd $vboxDir
                $uid=$($($(.VBoxManage.exe showvminfo $ORIGVirtualMachineName|select-string "Hardware UUID:").ToString()).Split())[4]
                .VBoxManage modifyvm $clonedVirtualMachineName --hardwareuuid $uid





                share|improve this answer




























                  3












                  3








                  3







                  This powershell script does the work:




                  1. clone the machine that is already activated.

                  2. close virtualbox precesses from task manager.

                  3. run this script, modifing the variables to your values.


                  Remember that the virtual machines names are case sensitive.



                  $ORIGVirtualMachineName="BaseDevWin7"
                  $clonedVirtualMachineName="DevWin7a"
                  $vboxDir="c:Program FilesOracleVirtualBox"
                  cd $vboxDir
                  $uid=$($($(.VBoxManage.exe showvminfo $ORIGVirtualMachineName|select-string "Hardware UUID:").ToString()).Split())[4]
                  .VBoxManage modifyvm $clonedVirtualMachineName --hardwareuuid $uid





                  share|improve this answer















                  This powershell script does the work:




                  1. clone the machine that is already activated.

                  2. close virtualbox precesses from task manager.

                  3. run this script, modifing the variables to your values.


                  Remember that the virtual machines names are case sensitive.



                  $ORIGVirtualMachineName="BaseDevWin7"
                  $clonedVirtualMachineName="DevWin7a"
                  $vboxDir="c:Program FilesOracleVirtualBox"
                  cd $vboxDir
                  $uid=$($($(.VBoxManage.exe showvminfo $ORIGVirtualMachineName|select-string "Hardware UUID:").ToString()).Split())[4]
                  .VBoxManage modifyvm $clonedVirtualMachineName --hardwareuuid $uid






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Mar 25 '15 at 6:20









                  DavidPostill

                  106k26228263




                  106k26228263










                  answered Mar 25 '15 at 5:00









                  Marcelo SaiedMarcelo Saied

                  312




                  312























                      2














                      Thanks to the hints above I have successfully cloned a machine with Win7 guest running on a Kubuntu host for test purposes without re-activation.



                      My machine was activated already and (as described above) actually had no hardware UUID.



                      For me it looks like the MACHINE UUID is only for Virtualbox management, whereas the HARDWARE UUID is used by Windows activation logic. If there is no hardware UUID then Virtualbox provides the machine UUID to the guest, i.e. Microsoft knows the machine UUID.



                      So this is how it worked well without re-activation in my case:
                      1) Copy the virtual machine (folder) with normal file browser.
                      2) Open the .vbox file in a simple text editor.
                      3) As there was no UUID attribute for the "hardware", copy the machine UUID attribute (e.g. uuid="{xxx11111-2222-3333-4444-xxxxxxxxxxxx}" ) to the "hardware" entry.
                      4) Generate a new UUID for the machine, e.g. with uuidgenerator.net.
                      5) Overwrite the UUID machine VALUE with the generated UUID value.
                      => Done.



                      In order to manage both machines in parallel in VB Manager it is more tricky:

                      1. Rename the clones's harddisk .vdi file.

                      2. In command line provide a new UUID to the harddisk via command "VBoxManage internalcommands sethduuid .vdi. VBManager will set a new UUID and display it.

                      3. In VB Manager add the new machine. Edit the machine by adding the new harddisk file (and remove original vdi, if still present).



                      Now you have unique IDs for all virtual machines and harddisks. You can manage both machine's within the VB Manager in parallel.






                      share|improve this answer






























                        2














                        Thanks to the hints above I have successfully cloned a machine with Win7 guest running on a Kubuntu host for test purposes without re-activation.



                        My machine was activated already and (as described above) actually had no hardware UUID.



                        For me it looks like the MACHINE UUID is only for Virtualbox management, whereas the HARDWARE UUID is used by Windows activation logic. If there is no hardware UUID then Virtualbox provides the machine UUID to the guest, i.e. Microsoft knows the machine UUID.



                        So this is how it worked well without re-activation in my case:
                        1) Copy the virtual machine (folder) with normal file browser.
                        2) Open the .vbox file in a simple text editor.
                        3) As there was no UUID attribute for the "hardware", copy the machine UUID attribute (e.g. uuid="{xxx11111-2222-3333-4444-xxxxxxxxxxxx}" ) to the "hardware" entry.
                        4) Generate a new UUID for the machine, e.g. with uuidgenerator.net.
                        5) Overwrite the UUID machine VALUE with the generated UUID value.
                        => Done.



                        In order to manage both machines in parallel in VB Manager it is more tricky:

                        1. Rename the clones's harddisk .vdi file.

                        2. In command line provide a new UUID to the harddisk via command "VBoxManage internalcommands sethduuid .vdi. VBManager will set a new UUID and display it.

                        3. In VB Manager add the new machine. Edit the machine by adding the new harddisk file (and remove original vdi, if still present).



                        Now you have unique IDs for all virtual machines and harddisks. You can manage both machine's within the VB Manager in parallel.






                        share|improve this answer




























                          2












                          2








                          2







                          Thanks to the hints above I have successfully cloned a machine with Win7 guest running on a Kubuntu host for test purposes without re-activation.



                          My machine was activated already and (as described above) actually had no hardware UUID.



                          For me it looks like the MACHINE UUID is only for Virtualbox management, whereas the HARDWARE UUID is used by Windows activation logic. If there is no hardware UUID then Virtualbox provides the machine UUID to the guest, i.e. Microsoft knows the machine UUID.



                          So this is how it worked well without re-activation in my case:
                          1) Copy the virtual machine (folder) with normal file browser.
                          2) Open the .vbox file in a simple text editor.
                          3) As there was no UUID attribute for the "hardware", copy the machine UUID attribute (e.g. uuid="{xxx11111-2222-3333-4444-xxxxxxxxxxxx}" ) to the "hardware" entry.
                          4) Generate a new UUID for the machine, e.g. with uuidgenerator.net.
                          5) Overwrite the UUID machine VALUE with the generated UUID value.
                          => Done.



                          In order to manage both machines in parallel in VB Manager it is more tricky:

                          1. Rename the clones's harddisk .vdi file.

                          2. In command line provide a new UUID to the harddisk via command "VBoxManage internalcommands sethduuid .vdi. VBManager will set a new UUID and display it.

                          3. In VB Manager add the new machine. Edit the machine by adding the new harddisk file (and remove original vdi, if still present).



                          Now you have unique IDs for all virtual machines and harddisks. You can manage both machine's within the VB Manager in parallel.






                          share|improve this answer















                          Thanks to the hints above I have successfully cloned a machine with Win7 guest running on a Kubuntu host for test purposes without re-activation.



                          My machine was activated already and (as described above) actually had no hardware UUID.



                          For me it looks like the MACHINE UUID is only for Virtualbox management, whereas the HARDWARE UUID is used by Windows activation logic. If there is no hardware UUID then Virtualbox provides the machine UUID to the guest, i.e. Microsoft knows the machine UUID.



                          So this is how it worked well without re-activation in my case:
                          1) Copy the virtual machine (folder) with normal file browser.
                          2) Open the .vbox file in a simple text editor.
                          3) As there was no UUID attribute for the "hardware", copy the machine UUID attribute (e.g. uuid="{xxx11111-2222-3333-4444-xxxxxxxxxxxx}" ) to the "hardware" entry.
                          4) Generate a new UUID for the machine, e.g. with uuidgenerator.net.
                          5) Overwrite the UUID machine VALUE with the generated UUID value.
                          => Done.



                          In order to manage both machines in parallel in VB Manager it is more tricky:

                          1. Rename the clones's harddisk .vdi file.

                          2. In command line provide a new UUID to the harddisk via command "VBoxManage internalcommands sethduuid .vdi. VBManager will set a new UUID and display it.

                          3. In VB Manager add the new machine. Edit the machine by adding the new harddisk file (and remove original vdi, if still present).



                          Now you have unique IDs for all virtual machines and harddisks. You can manage both machine's within the VB Manager in parallel.







                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Mar 23 '17 at 0:44









                          Journeyman Geek

                          113k44217371




                          113k44217371










                          answered Mar 19 '16 at 15:53









                          Dieter SchlueterDieter Schlueter

                          292




                          292























                              1














                              Full clone the machine. Do not start it.



                              From command line:



                              VBoxManage modifyvm "Cloned VM name" --hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx



                              As UUID use the the machine id (or hardware id if present) from the original machine.



                              To get the that UUID use:



                              VBoxManage showvminfo "Original VM name"



                              This should work. Tested on Windows 10 guest, already activated.






                              share|improve this answer
























                              • This works in most cases except where the UUID matches the VM's /VirtalBox/Machine node's uuid attribute, as the question and another comment indicate.

                                – palswim
                                Feb 11 at 20:58


















                              1














                              Full clone the machine. Do not start it.



                              From command line:



                              VBoxManage modifyvm "Cloned VM name" --hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx



                              As UUID use the the machine id (or hardware id if present) from the original machine.



                              To get the that UUID use:



                              VBoxManage showvminfo "Original VM name"



                              This should work. Tested on Windows 10 guest, already activated.






                              share|improve this answer
























                              • This works in most cases except where the UUID matches the VM's /VirtalBox/Machine node's uuid attribute, as the question and another comment indicate.

                                – palswim
                                Feb 11 at 20:58
















                              1












                              1








                              1







                              Full clone the machine. Do not start it.



                              From command line:



                              VBoxManage modifyvm "Cloned VM name" --hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx



                              As UUID use the the machine id (or hardware id if present) from the original machine.



                              To get the that UUID use:



                              VBoxManage showvminfo "Original VM name"



                              This should work. Tested on Windows 10 guest, already activated.






                              share|improve this answer













                              Full clone the machine. Do not start it.



                              From command line:



                              VBoxManage modifyvm "Cloned VM name" --hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx



                              As UUID use the the machine id (or hardware id if present) from the original machine.



                              To get the that UUID use:



                              VBoxManage showvminfo "Original VM name"



                              This should work. Tested on Windows 10 guest, already activated.







                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Oct 19 '17 at 17:50









                              user4691user4691

                              3218




                              3218













                              • This works in most cases except where the UUID matches the VM's /VirtalBox/Machine node's uuid attribute, as the question and another comment indicate.

                                – palswim
                                Feb 11 at 20:58





















                              • This works in most cases except where the UUID matches the VM's /VirtalBox/Machine node's uuid attribute, as the question and another comment indicate.

                                – palswim
                                Feb 11 at 20:58



















                              This works in most cases except where the UUID matches the VM's /VirtalBox/Machine node's uuid attribute, as the question and another comment indicate.

                              – palswim
                              Feb 11 at 20:58







                              This works in most cases except where the UUID matches the VM's /VirtalBox/Machine node's uuid attribute, as the question and another comment indicate.

                              – palswim
                              Feb 11 at 20:58




















                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Super User!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f472951%2fmake-a-clone-of-virtualbox-machine-that-doesnt-cause-windows-re-activation-afte%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              How do I know what Microsoft account the skydrive app is syncing to?

                              Grease: Live!

                              When does type information flow backwards in C++?