Windows – How to “Boot to UEFI shell”


I am trying to follow some instructions to update some firmware:

x64 UEFI environment:

  • Boot to UEFI shell
  • Run update.nsh

I don't know how to do this. When I boot do I have a choice to boot to UEFI Shell?

Do I need a separate bootable CD to go to UEFI shell or is this something like safe mode where I press a certain key to go to it?

My OS: Server 2012 R2

Best Answer

It depends on whether your UEFI has a shell builtin. If it does, there should be an option in its settings / boot menu for you to launch it. Some motherboard also provide an option to launch a shell from the EFI System Partition (ESP). You should consult the manual of your motherboard for the path it will look for (the instruction is often vague though). Usually they are looking for a file named Shell.efi in the ESP root folder.

Another way is to launch it just like you launch any other EFI binary (e.g. bootloader). Since it's not really accessible to register a EFI binary to your UEFI or put the shell binary to your ESP in Windows, so the easiest way is probably to put it as \EFI\Boot\bootx64.efi (also put the update.nsh you need to run and the files it requires under \EFI\Boot\) in a FAT(32)-formatted USB drive (It shouldn't matter whether it's MBR or GPT as long as your UEFI is standard-conforming enough). Then reboot and boot the USB in UEFI mode from your UEFI boot menu.

You can obtain the EFI shell binary from the EDK2 project repo:

P.S. You may need to disable Secure Boot.