I have a Windows 7 x64 install USB and want to know if the installer has booted into EFI or BIOS mode.
- I found a solution here, but it doesn't work since
notepad
couldn't find:\Windows\Panther\setupact.log
I have a Windows 7 x64 install USB and want to know if the installer has booted into EFI or BIOS mode.
notepad
couldn't find:
\Windows\Panther\setupact.log
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.
\Windows\Panther
, didn't know such a beast was hiding inside my computer. As an alternative to using Notepad, one could use trusty old FINDSTR
from the command prompt: findstr Callback_BootEnvironmentDetect \Windows\Panther\setupact.log
Callback_BootEnvironmentDetect
message. @EliranMalka's bcdedit
solution worked. Using Windows 7 Ultimate x64.
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).
http://www.uefi.org/events/UEFI-Plugfest-WindowsBootEnvironment.pdf
Now windows 8 and later includes an undocumented environment variable, to check the firmware type system was booted from, that is FIRMWARE_TYPE
, to see it use from Cmd:
echo %FIRMWARE_TYPE%
Possible values: UEFI, Legacy, Unknown
NOTE: the comment below is about already installed system, not the Windows Installer itself:
Launch Control panel - Administrative tools - Computer management
Check Disk management tab. You should have EFI Encrypted partition (around 100mb). Also, when you right-click your HDD, on the Volumes tab you should see GPT partitioning, (not legacy MBR).
The GPT is part of UEFI package :)
Microsoft's suggested method is to do a simple registry query. At the command prompt run this command
reg.exe query HKLM\System\CurrentControlSet\Control /v PEFirmwareType
If the returned value is 1 or 0x1 then your PC is running in BIOS mode. If the returned value is 2 or 0x2 then your PC is running in UEFI mode.
this link https://itsfoss.com/check-uefi-or-bios/
mentions some methods e.g.
there's a way from bcdedit, if it says winload.exe or if it says winload.efi
(and if one were in windows then msinfo32/system information, lists bios mode, as Legacy or UEFI)
(and if one were in linux, then, if /sys/firmware/efi exists means system uses UEFI. And that link mentions another method from linux too)
a great method mentioned in another answer is to look at X:\Windows\panther\setupact.log
if off a DVD, or if off a regular windows installation then `C:\Windows\panther\setupact.log`` and that method is really good because it works from both a windows installation DVD, or from windows itself, and works for various versions of windows. Some other methods like the bcdedit option and the reg query option haven't worked for me from a windows 10 dvd, but that method did.
F12
brings up a boot menu, from which you can pick if you want to boot using UEFI or "legacy". You should see a menu like this: eightforums.com/attachments/installation-setup/…