VirtualBox

Ticket #7702 (new enhancement)

Opened 7 years ago

Last modified 7 months ago

UEFI support for Windows guests

Reported by: Eagle Owned by:
Priority: major Component: EFI
Version: VirtualBox 3.2.10 Keywords: UEFI
Cc: Guest type: Windows
Host type: other

Description

VirtualBox currently does not support booting of Windows guests using UEFI firmware. UEFI is required for booting drives larger than 2 TB (recently introduced by WD).

Change History

comment:1 Changed 7 years ago by Technologov

AFAIK the only thing lacking here is VirtualBox's EFI support module for UDF -- the new CD filesystem.

-Technologov

comment:2 Changed 6 years ago by frank

  • Component changed from other to EFI

comment:3 Changed 6 years ago by tyrelh

This would be really nice to have now for Windows 8 as well to make its faster booting capabilities, well, faster.

comment:4 Changed 6 years ago by d3vi1

Nope. It's not UDF. The Windows ISO has the bootmgfw.efi file in the El-Torrito image which Tiano Core can read. The bootmgfw.efi file understands UDF/iso9660. If you want to test, make your own FAT32 USB stick by copying all the files from the DVD and add bootmgfw.efi to /EFI/boot/boox64.efi and /EFI/Microsoft/Boot/bootmgfw.efi on the USB Stick. Windows 7 doesn't work because it requires a VGA Option ROM to be POST-ed (yes, Windows wants a BIOS component, the int10h in a BIOS-less firmware) and a GOP/UGA driver that also supports 1024x768 and 800x600 next to the native resolutions for the wavy flag part (before the accelerated graphics driver is used).

comment:5 Changed 4 years ago by coderforlife

I know this is an old ticket, but it still hasn't been addressed. According to d3vi1 the problem is because Windows requires VGA video (from PCAT BIOS) in addition to GOP/UGA (from [U]EFI). Since VGA video is already implemented in VirtualBox (when using BIOS) and UEFI already supports multiple video systems (GOP and UGA), wouldn't it be easy (for someone with knowledge about them) to simply allow VGA to be accessed while in EFI?

If desired, to make it so this unofficial "addition" to EFI is not always on, it could be selectable if it is available or not (like changing between GOP and UGA is right now, but this would be in addition to those and not one or the other).

If this will never be implemented, is it possible to circumvent this using techniques outlined in  http://forums.macrumors.com/showthread.php?t=696523&page=16 (basically, creating the memory dumps of the VGA bios code and then loading it before the OS loads). If so, I section should be added to the help manual. Even better if it could be made automatic in VirtualBox (basically, a pseudo-VGA system).

comment:6 Changed 4 years ago by coderforlife

I can confirm that UDF is a problem as well. Without UDF support you cannot read the DVD. Moving to a USB flash drive and a raw VMDK at least lets you access the files (which is a bit of a ridiculous workaround, but works just fine). However, now the cdboot.efi does not work (crashes with no messages - except for "Press any key to boot from CD or DVD..."). So will try those int10.bin/vbios.bin workarounds to get installed.

comment:7 Changed 4 years ago by coderforlife

I have ruled out the VGA problem as the only problem. It may still be a problem, but if I put a fake INT 10h handler in (and have verified other EFI programs can use it) the bootmgr.efi crashes before ever triggering that interrupt.

According to "Hachiman" the problem is:

That happens because WinX loader can't build right page table basing on Memory map provided by Vbox/EFI. We're in working on this and hope soon we'll able to make you happy with Windows UEFI guests. ( https://forums.virtualbox.org/viewtopic.php?f=3&t=25547#p114765)

He promised they were fixing it soon, in 2009. My guess is it will never be fixed at this point.

comment:8 Changed 4 years ago by frank

Windows UEFI support will come eventually but I cannot provide any ETA, sorry.

comment:9 Changed 3 years ago by RushPL

Are there any workarounds for this issue? I already have Windows 7 installed natively with UEFI but what I would like to do is boot it from a Linux host using the physical partition. Somebody on the forums said that it is possible but requires some deep knowledge of UEFI ...

comment:10 Changed 3 years ago by coderforlife

You can use DUET to emulate a UEFI system on top of the VirtualBox BIOS and then use a UEFI Windows. See  http://www.rodsbooks.com/bios2uefi/. I have successfully done this (although it wasn't the easiest thing) and the one bad thing is that the boot is SLOW, but once booted, everything is regular speed.

comment:11 Changed 3 years ago by frank

VBox 4.3.20 is now able to boot Windows 8.1 in UEFI mode. Certain features are not supported but normal installations work.

comment:12 Changed 3 years ago by coderforlife

Any news on Windows 7? I know that its UEFI is bad in that it does require the BIOS graphics during boot even if not supposed to be available in true UEFI systems while Windows 8 does it properly.

comment:13 Changed 3 years ago by frank

Windows 7 guests depend on proper int10 support and are not supported. We might change this eventually but this has low priority.

comment:14 Changed 3 years ago by frank

Deleted the last inappropriate comment.

comment:15 Changed 22 months ago by Alex110101

Is there any ETA on Windows 7 now?

comment:16 Changed 22 months ago by frank

No ETA.

comment:17 Changed 8 months ago by shilka

It took me a hole sunday afternoon to find a trick cross this virtualbox defect. The tech is descripted in  http://www.rodsbooks.com/bios2uefi/ mentioned by coderforlife. But there is a easy way to do this in virtualbox.

Suppose you have already installed Windows 7 x64 uefi and Linux on your computer, and each OS could boot via UEFI from hard disk, your BIOS support legacy(bios) booting mode.

First, go to  https://sourceforge.net/projects/cloverefiboot/files/Bootable_ISO/ download a latest ISO of clover-efi which is originally designed for booting osx on PC.

Second, create vmdk file using raw disk which have windows on it.

Third, using virtualbox manager create a new virtual machine(win 7), change "system"-"boot order" set optical prior than hard disk, unclick "enable efi". Then go to "storage" tab, mount the iso file downloaded in first step to optical drive.

Final, start the virtual machine, you should enter clover-efi interface, and choose the windows icon then your computer should boot up win 7 without any fault. If this step not work, do some google work about clover-efi configuration. Bingo.

I hope dev team could patch virtualbox efi booting function in future, but before all things done, could you put this solution into virtualbox wiki? It takes me a long time to find it out, so I hope other people could fix the same thing easier. Thanks!

Last edited 8 months ago by shilka (previous) (diff)

comment:18 Changed 8 months ago by frank

To make it clear: Windows 8.1 and later are able to boot in EFI mode with VirtualBox. As written in comment:13, Windows 7 has different requirements but the priority of implementing them is low because Windows 7 is not that brand new anymore.

comment:19 Changed 7 months ago by rgsteele

The documentation needs to be updated to reflect the current status of UEFI support for Windows. It currently states that "Windows guests are currently unable to boot with the VirtualBox EFI implementation" (source).

comment:20 Changed 7 months ago by frank

Right -- done so in r66268. Thanks for the hint.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use