Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

UPDATE : I believe (I have not tested this scenario yet) you can use your existing Windows 8 partition to create a recovery USB drive that can be used to do the repair without the ISO, see http://howto.cnet.com/8301-11310_39-57601638-285/how-to-create-a-windows-8-usb-recovery-drive/, and here is how to mount that USB as a drive for Hyper-V to see, http://www.petri.co.il/boot-hyper-v-virtual-machine-usb-drive.htm#

Boot to VHD – dual booting Windows 7 and Windows 8 became easy

When Windows 8 arrived, quite a few people decided that they would still dual boot their machines, and instead of mucking about with resizing disk partitions to free up space for Windows 8 they decided to use the boot from VHD feature to create a huge hard disc image into which Windows 8 could be installed.  Scott Hanselman wrote this installation guide, while I myself used the installation guide from Ed Bott of ZD net fame.

Boot to VHD is a great solution, it achieves a dual boot, can be backed up easily and had virtually no effect on the original Windows 7 partition. As a developer who has dual booted Windows operating systems for years, hacking boot.ini files, the boot to VHD was a much easier solution.

Upgrade to Windows 8.1 – ah, you can’t do that on a virtual disk installation (boot to VHD)

Last week the final version of Windows 8.1 arrived, and I went into the Windows Store to upgrade.  Luckily I’m on a fast download service, and use an SSD, because once the upgrade was downloaded and prepared Windows informed that This PC can’t run Windows 8.1, and provided the reason, You can’t install Windows on a virtual drive.  You can see an image of the message and discussion that sparked my search for a solution in this Microsoft Technet forum post.

I was determined not to have to resize partitions yet again and fiddle with VHD to disk utilities and back again, and in the end I did succeed in upgrading to a Windows 8.1 boot to VHD partition.  It takes quite a bit of effort though …

tldr; Simple steps of how you upgrade

  • Boot into Windows 7 – make a copy of your Windows 8 VHD, to become Windows 8.1
  • Enable Hyper-V in your Windows 8 (the original boot to VHD partition)
  • Create a new virtual machine, attaching the copy of your Windows 8 VHD
  • Start the virtual machine, upgrade it via the Windows Store to Windows 8.1
  • Shutdown the virtual machine
  • Boot into Windows 7 – use the bcedit tool to create a new Windows 8.1 boot to VHD option (pointing at the copy)
  • Boot into the new Windows 8.1 option
  • Reactivate Windows 8.1 (it will have become deactivated by running under Hyper-V)
  • Remove the original Windows 8 VHD, and in Windows 7 use bcedit to remove it from the boot menu

Things you’ll need

  • A system that can run Hyper-V under Windows 8 (Intel i5, i7 class CPU)
  • Enough space to have your original Windows 8 boot to VHD and a copy at the same time
  • An ISO or DVD for Windows 8 to create a bootable Windows 8 partition

Step by step guide

  1. Boot to your base o/s, the real one, Windows 7.
  2. Make a copy of the Windows 8 VHD file that you use to boot Windows 8 (via boot from VHD) – I copied it from a folder on C: called VHD-Win8 to VHD-Win8.1 on my N: drive.
  3. Reboot your system into Windows 8, and enable Hyper-V if not already present (this may require reboot)
  4. Use the Hyper-V manager , create a new Hyper-V machine, using half your system memory, and use the option to attach an existing VHD on the main IDE controller – this will be the new copy you made in Step 2.
  5. Start the virtual machine, use Connect to view it, and you’ll probably discover it cannot boot as there is no boot record
  6. If this is the case, go to Hyper-V manager, edit the Settings for the virtual machine to attach an ISO of a Windows 8 DVD to the second IDE controller.
  7. Start the virtual machine, use Connect to view it, and it should now attempt a fresh installation of Windows 8.  You should select Advanced Options and choose Repair - this will make VHD bootable
  8. When the setup reboots your virtual machine, turn off the virtual machine, and remove the ISO of the Windows 8 DVD from the virtual machine settings.
  9. Start virtual machine, use Connect to view it.  You will see the devices to be re-discovered (including your quad CPU becoming single CPU).  Eventually you should see the Windows Login screen.
  10. You may notice that your desktop background (Win+D) will have turned black as your Windows installation has become deactivate due to the hardware changes between your real PC and Hyper-V.
  11. Fortunately becoming deactivated, does not stop you using the Windows Store, where you can select the update to Windows 8.1.
  12. You can now watch the progress joy of the Windows 8 update;
    1. downloading,
    2. preparing to update,
    3. checking compatibility,
    4. gathering info,
    5. preparing to restart, and finally,
    6. confirm restart - remember that you are restarting your virtual machine sitting on the copy of the VHD, not the Windows 8 boot to VHD you are currently using to run Hyper-V (confused yet?)
  13. After the reboot you get the real upgrade messages;
    1. setting up x%, xx%, (quite slow)
    2. After a while, Getting ready
    3. Applying PC Settings x%, xx% (really slow)
    4. Updating your system (fast)
    5. Setting up a few more things x%, (quite slow)
    6. Getting ready, again
    7. Accept license terms
    8. Express settings
    9. Confirmed previous password
    10. Next, I had to set up a Microsoft account – which is possibly now required, and not optional
    11. Using the Microsoft account required a 2 factor authorization, via text message, a 7 digit code for me
    12. Finalising settings
    13. Blank screen, HI .. We're setting up things for you (similar to original Windows 8 install)
    14. 'You can get new apps from the Store', below which is ’Installing your apps’ - I had Windows Media Center which is counts as an app from the Store
    15. ‘Taking care of a few things’, below which is ‘Installing your apps’
    16. ‘Taking care of a few things’, below ‘Don't turn off your PC’
    17. ‘Getting your apps ready’, below ‘Don't turn off your PC’
    18. ‘Almost ready’, below ‘Don't turn off your PC’
  14. … finally, we get the Windows 8.1 start menu, and a quick Win+D to check the desktop confirmed all the application icons I expected, pinned items on the taskbar, and one app moaning about a missing drive
  15. At this point the upgrade is complete – you can shutdown the virtual machine
  16. Reboot from the original Windows 8 and return to Windows 7 to configure booting to the Windows 8.1 copy of the VHD
  17. In an administrator command prompt do following use the bcdedit tool (from an MSDN blog about configuring VHD to boot in Windows 7)
    1. Type bcedit to list the current boot options, so you can copy the GUID (complete with brackets/braces) for the original Windows 8 boot to VHD
    2. Create a new menu option, copy of the Windows 8 option; bcdedit /copy {originalguid} /d "Windows 8.1"
    3. Point the new Windows 8.1 option to the copy of the VHD; bcdedit /set {newguid} device vhd=[D:]\Image.vhd
    4. Point the new Windows 8.1 option to the copy of the VHD; bcdedit /set {newguid} osdevice vhd=[D:]\Image.vhd
    5. Set autodetection of the HAL (may already be set); bcdedit /set {newguid} detecthal on
  18. Reboot from Windows 7 and select the new option 'Windows 8.1' on the boot menu, and you’ll have some messages to look at, as your hardware is redetected (as you are back from 1 CPU to 4 CPUs)
    1. ‘Getting devices ready, blank then %xx, with occasional blank screen, for the graphics driver, (fast-ish)
    2. Getting Ready message (fast)
  19. You will have to suffer one final reboots, choose 'Windows 8.1' and you can now login to a lovely Windows 8.1 start screen running on non virtualized hardware via boot to VHD
  20. After checking everything is running fine, you can now choose to Activate Windows, which for me was a toll free phone call to the automated system where you type in lots of numbers to be given a whole bunch of new activation codes.

Once you’re happy with your new Windows 8.1 boot to VHD, and no longer need the Windows 8 boot to VHD, feel free to delete the old one.  I do believe once you upgrade, you are no longer licensed to use it anyway.

There, that was simple wasn’t it?

Looking at the huge list of steps it took to perform this upgrade, you may wonder whether I think this is worth it.  Well, I think it is worth booting to VHD.  It makes backups a snap (go to Windows 7, copy the VHD, you backed up the o/s) and helps with disk management – want to move the o/s, you can move the VHD and repoint the boot menu to the new location.

The downside is that Microsoft has complete neglected to support boot to VHD as an upgradable option.  Quite a poor decision in my opinion, and if you read twitter and the forums quite a few people agree with that view.  It’s a shame this got missed in the work on creating the upgrade packages for Windows 8.1.

Print | posted on Saturday, October 19, 2013 8:56 AM

Comments on this post

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
Ahh fantastic thanks for this. I was just about to figure this out this weekend and you have saved me a tonne of effort.

Left by David Hanson on Oct 20, 2013 9:53 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
Worked for me thank you. It takes a lot of patience during the steps, probably due to the lack of processing power of the intermediate virtual machine. My virtual machine ran with 1 CPU and 2GB RAM.
Left by Bux on Oct 23, 2013 8:10 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
I ran this on 2GB and 2CPUs. Took few hrs to finish. Was using 2012 on VHD :)
Left by Marszczak on Oct 27, 2013 8:09 AM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
Bonjour,

J'ai le même problème que j'ai posé dans microsoft community: I can't install win 8.1 on a virtual disk native.
You have respond in french.

In your method, it is a problem: HYPER-V don't run on windows standard ( NO Pro) .

But the problem is : how to avoid that win 8 start on the virtual box.

What dou you think about this sulution :

"I have a duel boot Windows 7 and Windows 8 PC so to get around this issue I did the following.

Booted into Windows 7 and mounted the VHD containing my Windows 8 OS then created a 50GB partition on one of my drives.

I then used Norton Ghost to do a disk image of the mounted VHD to the new partition, rebooted and used NeoSmart Easy BCD to detect the Windows 8 install on the new partition and create a boot entry.

Rebooted and selected the Windows 8 OS on the new partition, ran the update from the store, booted back into Windows 7 mounted the VHD containing the Windows 8 OS (I could have created a new VHD) and then used Norton Ghost to image the 50GB partition containing the updated Windows 8.1 to the mounted VHD.

Rebooted and selected the original boot entry for Windows 8 and the VHD now containing Windows 8.1 booted fine.

Deleted the 50GB partition, and removed the boot entry pointing to the partition.

This whole process took less than an hour and the OS did not need reactivating as it all took place on the same hardware."

Thanks if you have a solution not too difficult to apply.

Cordialement
Left by Pierre on Oct 30, 2013 8:47 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
@Pierre - sounds like a fine solution that avoids the reactivation - I just didn't have Norton Ghost, but did have Windows 8 Professional (it was from a Microsoft Partner Action Pack). I like the fact that there was no reactivating, that is very boring.

Liam
Left by Liam Westley on Oct 30, 2013 10:13 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
Thank you for this fantastic step by step Guide. It worked very well...
Left by Klaus Laakmann on Nov 09, 2013 4:03 AM

# Copy of VHD has a Different License Key?

Requesting Gravatar...
I have completed all the steps successfully all the way up into finding the Windows 8.1 update in the Store.

I have made sure all of the Windows updates on the Hyper-V client were installed, and still no luck with seeing the update in the store.

Using my host PC, I can see the 8.1 update.

I went to the Run prompt and typed in "slmgr.vbs /dli" to view what type of License I have, as I was told that if you have any kind of Volume licensing, the update will not show.

As it turns out, my host PC is running a Retail license, while my Hyper-V client is running a Volume client.

The client is just a copy of the Windows 8 VHD, so how would it re-register itself with a new License key? Not to mention, a Volume license?

Super confused, any help would be GREATLY appreciated!!
Left by diceccac on Nov 10, 2013 1:22 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
@diceccac That's really bizarre, that the type of license has when the Windows 8 VHD was mounted inside of Hyper-V. I can't see why Hyper-V would make any difference.

Are you sure that if you run 'slmgr.vbs /dli' in the Windows 8 boot from VHD partition, the license is different from that same command run under Hyper-V?

You can enter a new product key - that probably activates immediately. In the system properties page (Win key + Pause/Break, or Control Panel->System and Security->System) there is a link called 'Change Product Key' which allows you to switch a license.

Let us know how it goes.
Left by Liam Westley on Nov 10, 2013 8:26 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
Thanks for the reply, right after I posted that question, I remembered I could change the product key. I grabbed one of the product keys I had lying around and tried it, and it worked!

However, the Windows store still was not populating with the 8.1 update, so I moved on to another method to get 8.1.

I went over to http://howto.cnet.com/8301-11310_39-57608376-285/how-to-download-the-official-microsoft-windows-8.1-iso/ to get the direct ISO of Windows 8.1.

After it downloaded, I began to install it, and that is where I am right now! I selected "Install Now", and then selected "Keep Personal Files, Settings, and Apps."

Now I'm just waiting for it to install.
Left by diceccac on Nov 11, 2013 5:00 AM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
I was very happy seeing that updating on a VHD is possible. But, helas, at point 10 you lost me, because scanning for new hardware he didnot find a NIC. So point 11 was not possible. Beeing not to familiar with VM's I had some trouble finding how to add new hardware(the NIC) and a virtuale networkswitch, but I managed. But now I having a 169 network adress, and even forcing it to my normal 192.168. range does not help to make the connection to my network. do you have a suggestion. I am now stuck in the middle of nowhere.
Thanxs for given it some attention.
Left by Henk Blanksma on Nov 12, 2013 4:38 AM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
Is it necessary to copy the VDH to other drive than c:\?
my original vdh is stored in c:\. when i have to make a copy, can i move it Documents and rename it to win8.1.vdh and then proceed with your steps from step#3?
Left by Sikander on Nov 22, 2013 10:58 AM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
@Sikander

You can move the VHD anywhere you like, you just have to map it in the boot menu using the bcdedit command line tools (see the original Ed Bott post on setting up boot from VHD for details.
Left by Liam Westley on Nov 28, 2013 9:54 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
This is a great write-up. One thing to know; for those using Server 2012 and want or need to upgrade to 2012 R2, then the Recovery option is a bit different. When you boot off of your Server 2012 ISO and go into Recovery, and select Advanced Options, you the option to Recover PC is not available. Instead, click on the Command Prompt button. You will then be taken to a command prompt, and should be X:\Sources. CD into Recovery and execute StartRec.exe. Once it finishes, remove the ISO and reboot the VM. The VHD should then be bootable for you.
Left by Chris Lynch on Dec 20, 2013 1:05 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
And I can confirm the additional steps I outlined do work with Server 2012 and upgrading to Server 2012 R2.
Left by Chris Lynch on Dec 20, 2013 5:18 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
Where is the Advanced option on step 7? I cannot find it.
Left by joel on Jan 30, 2014 2:42 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
@Joel,

This post describes how to get the advanced settings in either the GUI version of setup or the text based menus.

http://www.eightforums.com/tutorials/4924-advanced-startup-settings-boot-windows-8-a.html

Thanks

Liam
Left by Liam Westley on Jan 30, 2014 10:37 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
this also works with virtualbox , thx for instructions
Left by Don on May 25, 2014 5:06 PM

# re: Upgrading Windows 8 boot to VHD to Windows 8.1–Step by step guide

Requesting Gravatar...
Works. I upgraded to 8.1 but now hibernate will not work. It is worth upwards of 100 steps if that is what it takes -- any help? I realize hibernate isn't supposed to be available on VHD, but I had it on 8.0 that was upgraded.
Left by Jonathan Berent on Aug 07, 2014 5:37 AM

Your comment:

 (will show your gravatar)