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:
You have to create a new VHD from a 8.1 ISO.
У меня в настоящее время Windows 8 установлена на VHD. Когда я загружаюсь в него и пытаюсь выполнить обновление до Windows 8.1 из магазина, он загружается, а затем завершается сбоем во время установки, сообщая мне, что «Вы не можете обновить виртуальный диск».
Можно ли выполнить обновление?
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:
You have to create a new VHD from a 8.1 ISO.
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,
but if you want the short version it's this,
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.
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!)
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 -
Quoted as per David's comment request.
I've written up a step by step guide (20 steps!) over on my blog, http://geekswithblogs.net/twickers/archive/2013/10/19/upgrading-windows-8-boot-to-vhd-to-windows-8.1ndashstep-by.aspx, 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:
- Remove Hyper-V feature from your current native boot configuration.
- Make a WIM image of your current native boot config using Windows 8.1 ADK.
- Add the Hyper-V feature back.
- Deploy the WIM to a new VHD file attached to a virtual machine.
- Upgrade the created virtual machine.
- 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:
- 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).
- Use Macrium Reflect (free version, if you are on a home computer) to clone the vhdx volume to the physical partition.
- 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
- Boot from the physical partition, and do the upgrade.
- 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.
- Delete the original (VHD native boot) boot entry.
- Mount the vhdx file from step 5., and give it a drive letter, say U
- Add a boot entry for the upgraded installation using Bcdboot U:\Windows
- Delete the boot entry created in step 3.
- Boot into the upgraded vhdx, and you are done! With fast drives (ssd drives) this goes very quickly. AZona1