When UEFI/(Motherboard Firmware), is set to UEFI(not legacy), USB is not detected

gptuefiusb

When UEFI/(Motherboard Firmware), is set to UEFI(not legacy), USB is not detected

When set to legacy, it is detected.

It goes without saying that I can't boot from it when the UEFI is in UEFI mode. The USB is not even detected.

Here are some pics.

The hard drive has no partitions now (since I removed them with partition wizard), but it did have windows 8.

enter image description here

enter image description here

Note- This is not the same as this question
Windows to go usb 3.0 booting problems . Because my one fails for USB 3.0 and the USB 2.0 ports. Any USB port doesn't work. And the accepted answer on that one suggests that another port would work. I notice though, as I comment, that My USB 2.0 stick works, in any port even in my USB 3 port. So the issue I have is USB 3 sticks. But then the problem I have, is , besides using USB 2 sticks only. How can I get USB 3 support, is it possible to.

Further additional note – The USB2 stick I had tried, had the latest Macrium reflect on there. I just tried a USB 3 stick with Windows 10 ISO on there, (made with rufus. GPT,FAT32) and it got detected under UEFI. The same model stick out the pack, isn't detected under UEFI. And when I made a Windows 7 ISO with that USB 3 stick, in rufus even with GPT,FAT32, it wasn't detected in UEFI So maybe it has to be Win10.. or the latest macrium reflect, for UEFI to be supported by the USB as far as even being getting detected. Also, for the purposes of seeing when it is detected, I see there's no need to switch from UEFI set to UEFI, vs UEFI set to legacy, to see if a USB has been detected by UEFI, as it will be listed under EFI either way. And if legacy is set it will list it there too.

And updated note
It seems as long if it's formatted GPT,FAT32 and has the EFI folder on there, then it works. The file it needs for the BIOS to see it is \efi\boot\bootx64.efi The filename might suggest 64bit only. If you tell rufus to make a usb GPT,FAT32, then it won't have the file yet but if you download the file or copy it from a win7 64bit then it will work. So that's a quick way of testing and narrows it down…It seems for win7 32bit, rufus defaults to ntfs, and won't let "GPT with UEFI" be chosen. Also, while ISO is a file system, I suppose it isn't when writing to USB 'cos file systems on USB are e.g. FAT32 and NTFS.

The win7 32bit does have an EFI folder. so I guess rufus is wrong when it says it's not an EFI image

enter image description here

So maybe the win7 download tool is the thing to use for that.. Or, just formatting it with rufus and copying the files over. Though my laptop is 64bit.. so perhaps no use testing a 32bit ISO../ no point.

https://technet.microsoft.com/en-au/library/hh824898.aspx "While in UEFI mode, the Windows version must match the PC architecture. A 64-bit UEFI PC can only boot 64-bit versions of Windows. A 32-bit PC can only boot 32-bit versions of Windows. In some cases, while in legacy BIOS mode, you may be able to run 32-bit Windows on a 64-bit PC, assuming the manufacturer supports 32-bit legacy BIOS mode on the PC. Applies To: Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2"

Though my issue is not how many bit windows is.. it's just the detection.. but to avoid further problems, I see it's worth using 64bit windows on a 64bit laptop

Best Answer

It turns out that .. first of all, what mode the UEFI is in doesn't matter as regards detection. So, a USB that is detected under EFI will show under EFI, and if Legacy is chosen then on restart, the USB will show under both EFI and Legacy.

But to be listed under EFI, the USB must be appropriately set up for EFI.

The question, is how to set up a USB so it shows under EFI, (you then have a chance of booting off of it when it's not in legacy mode, i.e. when the UEFI is in UEFI mode). Below is the answer of how to make a USB stick show under EFI.

Rufus offers a number of options

enter image description here

Note- the general term for MBR and GPT, are "partition formats".

It may be that all 3 options could work, where they have UEFI in there.. They all work for me. These instructions http://www.eightforums.com/tutorials/15458-uefi-bootable-usb-flash-drive-create-windows.html say you should choose "GPT with UEFI"

For file system.. apparently UEFI is required to support FAT32, and not necessarily NTFS. So, best option here is FAT32

There is one more thing that is needed though. A "bootloader file" in a particular folder, typically \efi\boot\

This page about Debian mentions the names of these files. But it's still relevant to Windows, because for example, Windows 7 64bit uses the path and filename of \EFI\boot\bootx64.efi

https://wiki.debian.org/UEFI

amd64 \EFI\boot\bootx64.efi

i386 \EFI\boot\bootia32.efi

arm64 \EFI\boot\bootaa64.efi

I find testing on a 64bit laptop.. If I have the bootia32.efi file on the usb, then it won't be detected(perhaps because the laptop is 64bit), but with bootx64.efi file it will, even if there's junk in the file and it's not a proper bootloader. Sure no doubt it won't boot properly or won't boot far. But my point is that to be detected you need that file. Detection is a precondition for booting. If it's the proper file then it will boot too. I could troubleshoot the issue much faster when I found that I didn't have to burn a whole windows ISO onto the USB to test this/that.

The win7 32bit ISO i've looked at has the EFI folder The win7 64bit ISO has an EFI folder too. I'm not sure about defaults but it looks like the USB might not be EFI , it has an EFI directory but not EFI\boot and so not bootx64.efi and the UEFI motherboard firmware on my laptop isn't seeing it as EFI either, so it's not just Rufus that sees it as not EFI, but the UEFI on my laptop too doesn't see Win7 (even 64bit), as EFI.

While the filename in \efi\boot isn't OS specific, the contents of the file is most likely OS specific. This link for example http://www.nextofwindows.com/how-to-make-uefi-bootable-usb-flash-drive-to-install-windows-8 offers a download to the file and says "if you are preparing for a 64-bit version of installation. You will need to copy a file called bootmgfw.efi from inside install.wim file at sources folder to efi\boot folder on USB flash drive, and rename it to bootx64.efi...[or]... you can simply download this file (http://www.nextofwindows.com/download/bootx64.efi) and copy to your efi\boot folder. " And there may be some supporting files too for proper bootup.

So you should check

  • Partition Format

  • File System

  • EFI folder existing with the relevant file (these are also going to be in any OS ISO that is meant to be booted from a UEFI set to UEFI - as opposed an OS designed to be booted from a BIOS or a UEFI set to legacy)

The EFI folder is a necessity. but don't write the folder manually unless you're experimenting or know what you're doing. It's going to be with the OS ISO.

Apparently Win7 has some issues with USB3 though that wasn't the issue here. That'd cause other symptoms.

Windows 10 can also be made by the windows 10 "media creation tool" instead of rufus though rufus I have found to be ok. And the reason why Macrium reflect booted, was that the current one is based on WinPE 10 64bit which is the WinPE for Windows 10. Windows 10 64bit, has the EFI folder. (I can't comment on windows 10 32bit) And when the Macrium program makes the USB it must be it gives it a partition format that supports UEFI e.g. GPT or a form of MBR that supports UEFI, and the USB would have the EFI folder.

added

UEFI has two modes. a legacy bios mode called CSM(where a BIOS is simulated). And a full mode(that is, legacy/csm is disabled). Many old UEFIs from like 2000-2010 didn't have full mode, so didn't mention any legacy/csm mode but were legacy/csm mode.

If an OS or thing you boot into e.g. if a Windows PE environment, then as of writing, if you make the USB with UEFI mode, then the partition style has to be GPT. As MBR with UEFI is not / is still not supported in windows systems. So on Windows there are only two relevant options. GPT with UEFI, or MBR with UEFI-CSM/BIOS.

I used one UEFI where when booting off a USB, when a USB is setup as UEFI(and not CSM), then in the UEFI's 'boot device options', you can actually point the UEFI to the .efi file so it can boot off it. Or it can try and find it automatically, but if it can't find it then it will say 'no image found' or that you need to make the USB for UEFI-CSM, and then the EFI image and even EFI directory is not needed.

One can experiment with 'Hirens boot cd' on USB, it has a WinPE version and a less graphical, 15.2 version. Macrium Reflect has an option for either legacy boot media, or UEFI boot media.. though macrium might not call it that, it might call it something more like early winpe and later winpe.