← Back to list

Manually Booting from an External Device using EFI Shell

Having the ability to boot from a removeable device is perhaps an integral feature of modern computers. From installing operating systems…

Godsent · 2025-11-20 14:40 · 8 claps · 5.1 min read
#operating-systems #uefi #bootloader #technology #computers
Open on Medium ↗

Manually Booting from an External Device using EFI Shell

Having the ability to boot from a removeable device is perhaps an integral feature of modern computers. From installing operating systems, to booting live environments and performaing repairs. However, there are instances where the UEFI Setup does not have the option for external boot or having the option but still continues to boot on the internal operating system.

To circumvent such limitation, we will use the built-in EFI Shell to manually target the desired external device to boot.

How UEFI Boots from an External Device

The Unified Extensible Firmware Interface (UEFI) is a type of firmware responsible for managing communication between a computer’s hardware and operating system. As the successor to the Basic Input/Output System (BIOS), it offers greater flexibility, such as supporting more partitions on a drive (4 for BIOS, up to 128 for UEFI), handling storage capacities larger than 2 terabytes, and most importantly, the ability to boot directly from .EFI files through its built-in interactive EFI Shell.

UEFI boots from external devices by first scanning all available storage sources. It then locates and executes an .EFI bootloader — typically found in the /EFI/BOOT/ directory of a FAT32-formatted partition. The boot priority depends on the configuration defined in the UEFI setup utility.

EFI Shell

A UEFI / EFI Shell is a command-like interface that allows us to interact with the UEFI Firmware of the computer. It can be used to execute commands, write scripts, and perform tasks like updating the firmware or making changes.

Specifically, the EFI Shell allows users to browse partitions connected to the computer and execute .EFI files, which can be used to manually boot from a specific partition.

A bit of Background on the Target Device

I discovered this technique while attempting to reinstall Windows 10 on a Windows-based tablet. Off-brand tablets of this type are notorious for having such issues, most of them are equipped with an Intel Atom Z3735F CPU.

Most vendors ship these Windows-based tablets with 32-bit UEFI firmware, even though their Intel Atom CPUs are fully capable of running 64-bit instructions. This creates a compatibility bottleneck, you can’t boot most modern 64-bit operating systems directly because the firmware itself only loads 32-bit EFI executables. As more and more software distributions phase out support for the legacy i386 (32-bit) architecture, users are left with limited choices and outdated system images.

In some cases, vendors even restricts the path of EFI loader on certain versions of operating systems.

device specifications

device specifications

Configuring EFI Shell as a boot entry

If the EFI Shell is already accessible on your device, proceed to the next step.

On some devices, the EFI Shell may not be available in the BIOS setup or boot menu. To resolve this issue, you need to manually install the EFI Shell by creating a new boot entry and adding its associated boot file.

Checking if EFI Shell exists

Let’s first check if EFI Shell Shellia32 / Shellx64 in my case the 32-bit one exists.

We can check it by opening Command Prompt cmd.exe as an administrator and entering DISKPART. There you will select the target disk select disk, which is the disk where your operating system resides, and the target partition select partition, which is the EFI Partition. It is commonly called “System” with a size of 100MB.

We then assign a letter to the partition assign letter = xto make it accessible.

selecting partition

selecting partition

Next is to check the contents of the EFI partition. In an another Commad Prompt session, select the drive letter “X” by entering X:. use dir command to list the contents and navigate to EFI folder using cd command. Here we can notice that there are no SHELL folder which must include the .efi file for the shell to load.

navigating through EFI partition

navigating through EFI partition

Now that we’ve confirmed there is no EFI Shell loader in the partition, we can manually install one. Download the appropriate file from this project: **https://github.com/pbatard/UEFI-Shell/releases**.

Place your newly downloaded file somewhere convenient. For example, I’ve placed mine in the root of the C: drive. Back on the EFI partition, create a new folder named SHELL using the mkdir command. This is where we’ll store the .efi file. Then, navigate to the SHELL folder using the cd command.

Now, copy the .efi file to the appropriate directory. In my case, I used the following command:

copy "C:\Shellia32.efi" "X\EFI\SHELL"

This places the file in the correct location.

However, we still need to inform the UEFI firmware about the new shell’s existence. To do this, we’ll use bcdedit to add a new UEFI boot entry.

adding entry using bcdedit

adding entry using bcdedit

Enter bcdedit /copy {bootmgr} /d "EFI Shell Entry" to add UEFI entry it will output a unique id which we will need for the last command.

Enter bcdedit /set {unique id} path \EFI\SHELL\Shellia32.efi for 32bit or bcdedit /set {unique id} path \EFI\SHELL\Shell64.efi for 64 bit systems to add the directory of the UEFI Shell.

We can now enter the boot menu to check the newly added entry

new UEFI entry

new UEFI entry

We have now successfully installed UEFI Shell.

Booting external devices using EFI Shell

To boot from an external device using EFI Shell, we first need to understand some concepts.

FS -> File System — file systems recognized and mounted by UEFI Firmware (FAT32 or exFAT)

BLK -> Block Devices — paritions that does not provide direct access.

LS -> List the contents of a directory

CD -> Change directory

EFI Shell

EFI Shell

In my case, my Windows 10 Bootable USB are located at FS0. I used FS0: to access the partiton. I then navigated to FS0:\efi\bootusing cdcommand to execute bootia32.efi which is the boot file for WIndows. The partition and path of the boot file varies on the number of plugged-in external devices and operating system’s boot structure.

navigating and executing bootia32.efi for Windows 10 installer

navigating and executing bootia32.efi for Windows 10 installer

successful boot from external device using EFI Shell

successful boot from external device using EFI Shell

Summary

To sum it up, the EFI Shell is a powerful pre-boot environment that allows you to interact directly with your system’s UEFI firmware and storage devices. It also enables you to manually locate and execute boot files from external devices, providing a way to boot when the firmware does not offer that option.

We also explored how to check for an existing EFI Shell and how to install one manually using tools like diskpart and bcdedit.


메타데이터
post_id
6705ce5739fe
slug
manually-booting-from-an-external-device-using-efi-shell-6705ce5739fe
url
https://medium.com/@godsentsalvalozax/manually-booting-from-an-external-device-using-efi-shell-6705ce5739fe
canonical_url
https://medium.com/@godsentsalvalozax/manually-booting-from-an-external-device-using-efi-shell-6705ce5739fe
author_url
https://medium.com/@godsentsalvalozax
status
ok
fetched_at
2026-06-21 22:26:41