How to tell if the Windows Installer boots in EFI or BIOS?
Now, I'll cut to the chase and show you how to find this log file.
I have done this with a retail Windows Vista DVD disc, just for the purpose of demonstrating this. But this should be the same even if you boot from a USB flash drive, or if you use Windows 7.
When you boot from a Windows DVD or USB you will first see a dialog where you choose language and keyboard layout. Do this step and click Next.
Then click the Install now button.
When you get to the screen where it asks you for a product key press Shift+F10 to get to the command prompt.
Your marker should be at X:\Sources>
now.
To look through the folders for log files you can type dir ..\*.log /s
The file you are looking for is titled setupact.log
. Can you see it in the results? It should be located at X:\Windows\panther
.
To open this file in notepad without changing directory you can type notepad ..\windows\panther\setupact.log
If the file is there, which it should be, then this will open it in Notepad. Now while in Notepad, press Ctrl+F and type in callback and press Enter.
You should see several entries with this word, but the one you are interested in is titled Callback_BootEnvironmentDetect
. Press Enter repeatedly until you spot it.
In my case, it says Callback_BootEnvironmentDetect:FirmwareType 1
.
I think this is because this is on Windows Vista, and since this is a BIOS system I am guessing that Type 1 stands for BIOS. So if you would do the same with Vista on an UEFI system it would most likely say Type 2. For Windows 7 the same lines would probably just say UEFI or BIOS.
In short...
Windows Vista:
Callback_BootEnvironmentDetect:FirmwareType 1
means BIOS
Callback_BootEnvironmentDetect:FirmwareType 2
means UEFI
Windows 7:
Code:Callback_BootEnvironmentDetect: Detected boot environment: BIOS
Code:Callback_BootEnvironmentDetect: Detected boot environment: UEFI
You may also want to check out the TechNet article on how to deploy Windows 7 to UEFI-based computers.
You may have noticed that most people use EFI and UEFI interchangeably, but the UEFI is a later development and EFI is the old one. If I'm not mistaken it stands for Universal Extendable Firmware Interface. Just don't get confused by this, it usually means the same thing. It may say EFI or UEFI in your motherboard manual, and you need to have it enabled.
Open a command prompt (as an administrator), and run:
bcdedit /enum
This will enumerate the BCD settings, you'll get an output similar to this one:
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {current}
resumeobject {3c6390c7-c6ce-11e1-8e2f-c6d882f2969a}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows 7
locale en-US
inherit {bootloadersettings}
recoverysequence {3c6390cb-c6ce-11e1-8e2f-c6d882f2969a}
recoveryenabled Yes
osdevice partition=C:
systemroot \Windows
resumeobject {3c6390c7-c6ce-11e1-8e2f-c6d882f2969a}
nx OptIn
Go through the list and look for Windows Boot Loader
. If your system is booted in EFI mode, the path
value will be \Windows\system32\winload.efi
(note the .efi
extension - this will revert to .exe
otherwise).
Source
http://www.uefi.org/events/UEFI-Plugfest-WindowsBootEnvironment.pdf