VirtualBox

Opened 13 years ago

Closed 4 years ago

#7702 closed enhancement (fixed)

UEFI support for Windows guests

Reported by: Eagle Owned by:
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 (21)

comment:1 by Technologov, 13 years ago

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

-Technologov

comment:2 by Frank Mehnert, 13 years ago

Component: otherEFI

comment:3 by tyrelh, 13 years ago

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

comment:4 by Razvan Corneliu C.R. VILT, 12 years ago

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 by Jeff Bush, 11 years ago

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 by Jeff Bush, 11 years ago

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 by Jeff Bush, 10 years ago

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 by Frank Mehnert, 10 years ago

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

comment:9 by RushPL, 10 years ago

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 by Jeff Bush, 10 years ago

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 by Frank Mehnert, 9 years ago

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 by Jeff Bush, 9 years ago

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 by Frank Mehnert, 9 years ago

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

comment:14 by Frank Mehnert, 9 years ago

Deleted the last inappropriate comment.

comment:15 by Alex110101, 8 years ago

Is there any ETA on Windows 7 now?

comment:16 by Frank Mehnert, 8 years ago

No ETA.

comment:17 by shilka, 7 years ago

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 7 years ago by shilka (previous) (diff)

comment:18 by Frank Mehnert, 7 years ago

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 by Ryan Steele, 7 years ago

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 by Frank Mehnert, 7 years ago

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

comment:21 by aeichner, 4 years ago

Resolution: fixed
Status: newclosed

Windows guests should work with VirtualBox EFI firmware starting with version 8. Support for Windows 7 will not be implemented in the foreseeable as the required effort is too high (we have to provide a CSM for proper int10 support) with far too little impact. Closing as fixed.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use