Hyper-V generation 2 virtual machines – part 9
Part 1: Introduction to generation 2 virtual machines
Part 2: Networking and boot order
Part 3: Storage
Part 4: Keyboard for Windows 8 & Windows Server 2012
Part 5: Kernel debugging
Part 6: Secure Boot
Part 7: FAQ
Part 8: Manually migrating generation 1 virtual machines to generation 2
Part 9: Installing from ISO
Part 10: Utility for converting generation 1 virtual machines to generation 2 (Convert-VMGeneration)
This part of the series on generation 2 virtual machines in Hyper-V talks booting from CD/DVD. It’s not specific to Hyper-V, it’s more about PCAT and EFI, and the way in which Windows installation media is built.
Try the following – create a new generation 1 and generation 2 VMs with blank VHDXs, setting them both to boot from Windows 8 64-bit .ISO media, and start them.
Here’s what you’ll see in a generation 1 virtual machine (or PCAT physical system)
And here’s what you’ll see in a generation 2 virtual machine (or EFI physical system)
Before anyone comments, yes, we’re acutely aware that the generation 2 EFI boot loader messages persist on the screen and it can be a little confusing. Essentially what the generation 2 virtual machine did was:
- Attempt to boot from the CD SCSI device containing the Windows 8 ISO. This is where the ‘Press any key…’ message came from. As no key was pressed, we went to the next boot entry. (And this is where we didn’t clear the message from the EFI CD boot loader)
- I didn’t press F12 (in fact, this VM wasn’t connected to a network), so network boot failed
- The SCSI VHDX is raw with no partitioning or file system, so this too failed
So why did the generation 1 virtual machine start setup from the Windows media? The answer is simply that it’s the way Windows media is built, and it’s inconsistent between the PCAT and EFI loaders.
However, it’s relatively simple to solve if you want to avoid the press any key message. In fact, we almost have all the pieces from previous parts. In particular, part 4 where we injected keyboard drivers into the Windows 8 media.
If you loopback mount Windows 8 or 8.1 RTM media, and navigate to the \efi\microsoft\boot directory, you will see there are two versions of cdboot.efi
The default version, cdboot.efi prompts for a keypress. The unused version, cdboot_noprompt.efi doesn’t prompt.
So it’s fairly simple to create modified media which uses the noprompt version. First, copy the contents of the ISO to a working directory, rename cdboot.efi to cdboot_prompt.efi, and rename cdboot_noprompt.efi to cdboot.efi.
Do the same with efisys.bin and efisys_prompt.bin
Then re-use our oscdimg command (in an elevated deployment and imaging tools environment) from part 4 to recreate the media.
Simply attach this modified media to the generation 2 VM and restart it (and don’t press any keys, not that you will be prompted…)
The surprise awaits! It’s worth it – stay tuned for part 10.
Cheers,
John.
Comments
Anonymous
January 01, 2003
This didn't work for me. I'm not sure what to try next. One thing I noticed is that I don't get the "Press any key to boot..." prompt at all. It just shows "Boot Failed. EFI SCSI Device.".I'm trying to install 8.1 in a Gen2 VM from a 32bit ISO.Any suggestions?Anonymous
January 01, 2003
Josh - This is expected - see the FAQ part, comment above, and/or the help text in the new VM wizard.Anonymous
January 01, 2003
That is expected. Generation 2 VMs only support 64-bit guest OS's, and for Windows, Windows 8/Windows Server 2012 and later. See the FAQ article for more information.Anonymous
November 11, 2013
What about creating the disk image offline, e.g. using wim2vhd/Convert-WindowsImage? Is there something to known for gen2 VMs?Anonymous
November 11, 2013
WIM2VHD (assuming it has been publically updated to allow for UEFI machines, I'm not sure it does yet) doesn't go through the CD path so this post isn't relevant there. However, I would not recommend you use WIM2VHD if for no other reason that it does not layout partitions using the recommended steps, and further (at least in the case of BIOS/PCAT machines) doesn't, to the best of my knowledge, setup the recovery environment. I personally would recommend you use the approved tools and processes from the ADK for deployment in production environments. For test, WIM2VHD may be fine though.Anonymous
November 12, 2013
Thanks! This was what I was waiting for. Too bad the solution requires copying the ISO image, since it is such a slow procedure. Yes, I know it only needs to be done once, but in an automated workflow it is difficult to determine whether an image has been "fixed" or not. It would be nice to understand why the provided installation media is created the way it is. Why would someone want different boot options depending on BIOS vs. EFI.Anonymous
November 12, 2013
That's a great question, but one I still haven't got to the bottom of when asking around. I think it's more historical than anything else - I don't believe there's a good reason, or at least not one I have found yet, just the way the media was created by who-ever put it together originally. Thanks, John.Anonymous
November 12, 2013
Why it's not a default?Anonymous
November 12, 2013
As I put above, I don't know. Lost in history but I will do some digging. Suspect it was like that on IA64 and just carried across when EFI support came into x64Anonymous
December 05, 2013
Thank you very much for your article without whom I would have wasted my time... Why make it simple when it can be complicated!Anonymous
December 05, 2013
I've Create another method to solve it if I don't bother anyone please go to http://bit.ly/1d0hAIT, thank you so much, and thank you for your blogAnonymous
January 04, 2014
The comment has been removedAnonymous
January 04, 2014
The comment has been removedAnonymous
January 04, 2014
The comment has been removedAnonymous
January 04, 2014
The comment has been removedAnonymous
January 04, 2014
The comment has been removedAnonymous
January 23, 2014
I am trying to install windows server 2008 R2 and this too failed.Anonymous
January 25, 2014
William L.'s solution was MUCH easier, faster, and more practical for me.And it took me all of one minute. THANK YOU SO VERY MUCH WILLIAM L. ! ! !Anonymous
March 17, 2014
This is a fault of the Version 2 VM. If you install with a standard ISO on hardware, UEFI presents you with the option to "EFI boot" from the media.Anonymous
March 17, 2014
Goto firmware and set the DVD as first boot device (as the target article in Williams post from 6th of December describes in Spanish). This way it works with the original media.Anonymous
April 16, 2014
The comment has been removed