2

I currently have Windows 8 installed on a VHD. When I boot into it and try to upgrade to Windows 8.1 from the store, it downloads and then fails during the installation telling me that "You can't upgrade on a Virtual Drive".

Is it possible to perform the upgrade?

4
  • 1
    That's unfortunate. I wouldn't think that Windows 8 would care. Interested to hear the outcome. What hypervisor are you using?
    – kobaltz
    Oct 18, 2013 at 14:22
  • I was running Windows 8 Pro w/Media Center on my actual PC, with Hyper-V on that and a VM also running Windows 8 (I forget which SKU). I first upgraded my PC - it took one or two reboots and Windows Update hotfixes before Hyper-V would run properly again. I'm currently in the process of upgrading my VM to 8.1 and it's going just fine. Are you using Hyper-V or something else?
    – Mark Allen
    Oct 19, 2013 at 7:33
  • Confirmed, upgrade went through just fine, VM is now running Windows 8.1 and I'm visiting Windows Update etc. Sorry yours didn't work. Note that I had upgraded my host machine first, I don't know if that made the difference or not.
    – Mark Allen
    Oct 19, 2013 at 8:03
  • I am booting directly into the VHD and not loading it up inside a VM.
    – row1
    Dec 24, 2013 at 10:24

4 Answers 4

2

I asked this Microsoft a few weeks ago and they told me that it is not possible to upgrade a natively booted VHD from Windows 8 to 8.1.

The Setup will fail with this error:

enter image description here

You have to create a new VHD from a 8.1 ISO.

4
1

I took the upgrade my VHD in Hyper-V route to upgrade my Windows 8 boot to VHD to Windows 8.1.

I've written up a step by step guide (20 steps!) over on my blog,

Link,

but if you want the short version it's this,

  • 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

Due to a combination of SDD/HDD during the process it took around 3 hours to complete the process, but it does appear to work fine. Well, I'm posting this from the Windows 8.1 boot to VHD update.

Hope it might help someone else solve this issue.

3
  • I appreciate the effort put into this answer, but I am reluctant to try it. I am using Windows 8 and not Windows 7 and am reluctant to try this as the last time I enabled Hyper-V it caused intermittent issues with my Wi-Fi.
    – row1
    Oct 20, 2013 at 4:09
  • It was the effort I used to update my own system ;-) It was Windows 8 I needed to upgrade in which I had to enable Hyper-V, Windows 7 was just my bootstrapping o/s. If Hyper-V caused issues with WiFi you could just enable it for the upgrade, and then disable it afterwards - it's only used for a short time to perform the upgrade, then you don't need it again. Oct 20, 2013 at 7:17
  • The problem I had last time was that it installed some virtual network drivers and they were very hard to get rid of. But it might be worth the effort.
    – row1
    Oct 21, 2013 at 2:21
0

You could fire it up in a VM, and do the upgrade there. Windows 7/8/8.1 tolerates hw changes surprisingly well.

(Make a backup copy!)

0

There were a bunch of solutions outlined here on Microsoft Technet discussions and I dont wish for people to miss out on these options, so I am posting the link.

There some options around Hyper-V and others around V2P2V.

I hope this helps someone who comes here, so please dont give me negative. Thanks.

I found a few solutions here -

https://social.technet.microsoft.com/forums/windows/en-US/b9ca72ab-cdc3-4ae8-be6f-1ce9cb18ffb6/upgrading-windows-8-to-81-native-vhd-boot

Quoted as per David's comment request.

I've written up a step by step guide (20 steps!) over on my blog, Link, but if you want the short version it's this,

  • 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

Some other Options:

V2P2V is quick and easy. See post by skunk123punk and my post. Once you get it down, it is fast and painless. Hyper-V is not the only working way. I have upgraded from 8 to 8.1 using hyper-v per Liam Westley's blog and upgraded from one version of Windows 10 Tech Preview to another using V2P2V. V2P2V is MUCH easier.

Another:

Additional possible workaround:

  1. Remove Hyper-V feature from your current native boot configuration.
  2. Make a WIM image of your current native boot config using Windows 8.1 ADK.
  3. Add the Hyper-V feature back.
  4. Deploy the WIM to a new VHD file attached to a virtual machine.
  5. Upgrade the created virtual machine.
  6. Attach the VHD from the virtual machine to the physical boot manager using bootcfg. Looks clumsy but kind of feasible.

Another way:

Agree with skunk123punk above. Go from VHD native boot to physical boot, do the upgrade, then go back to VHD native boot. Here is how I did it:

  1. Create a partition on a local disk matching the size of your original vhdx file. This local disk should not be the disk containing the original vhd or vhdx boot file. The process fails when a partition on the disk containing the vhd or vhdx boot file is used (booting in step 4. below will fail, in my experience).
  2. Use Macrium Reflect (free version, if you are on a home computer) to clone the vhdx volume to the physical partition.
  3. Add the installation in the physical partition to your boot menu using Bcdboot T:\Windows, where T is the drive letter of the physical partition
  4. Boot from the physical partition, and do the upgrade.
  5. Go from physical boot back to VHD native boot. Create a vhdx file with the size matching the physical partition. Mount the vhdx file and use Macrium Reflect to clone the physical partition to the new virtual drive.
  6. Delete the original (VHD native boot) boot entry.
  7. Mount the vhdx file from step 5., and give it a drive letter, say U
  8. Add a boot entry for the upgraded installation using Bcdboot U:\Windows
  9. Delete the boot entry created in step 3.
  10. Boot into the upgraded vhdx, and you are done! With fast drives (ssd drives) this goes very quickly. AZona1
4
  • Please quote the essential parts of the answer from the reference link(s), as the answer can become invalid if the linked page(s) change.
    – DavidPostill
    Aug 7, 2015 at 9:09
  • @DavidPostill - David - I just tried to copy paste quote from those links and his blog but it becomes a blob of text that is HUGE. The steps are extensive as shown here - Is there some SuperUser or StackExchange guide on how to copy and quote stuff from Rich Formatted Blogs? geekswithblogs.net/twickers/archive/2013/10/19/…
    – Alex S
    Aug 7, 2015 at 9:20
  • Much better ;). There is no real formatting guide ... I edited and made two very small changes to make it look a bit more readable (put a return before the lists and they format correctly).
    – DavidPostill
    Aug 7, 2015 at 9:36
  • Oh, and I've just noticed, the 20 step guide is a direct copy of the other answer (which was written by the blog author). You might want to delete this bit ... :/ You also need to add attributions (links) to the other quotes. See How to reference material written by others.
    – DavidPostill
    Aug 7, 2015 at 9:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.