I would like to create a minimal boot disk and have the option of DOS, Linux or EFI executables.

As I understand, UEFI is a substitute for classic system BIOSes and has its own byte code definitions, such that programs can be written in a standard language. However, is it meaningful to boot into an EFI shell, or is EFI only the vehicle to loading an actual operating system and shell?

If it is its own legitimate shell, how would I create a boot disk that loads this shell?


Yes it is meaningful.

Further study led to this helpful page on the topic. It discussed the instructions available here, which ultimately led to this repository of EFI shell programs. For my purposes** I used this file from the repository to populate the USB drive prepared as follows:

  1. Format USB stick with FAT32 partition (let's say it mounts to X: in windows or /usb-stick in Linux)
  2. Create X:\EFI\boot or /usb-stick/EFI/boot directory
  3. Download EFI shell script from links above, moving it to the newly created boot directory.
  4. It may be necessary to rename the file as per the linked instructions, in my case with a 64 bit architecture I needed to name the file bootx64.efi

With this arrangement, of files on the USB stick, it is now bootable using a UEFI compatible motherboard firmware. (Adam Williamson implores us to not call it a UEFI compatible BIOS!). Put the stick in an enabled USB port in the target computer, do whatever is necessary to boot from the USB stick in UEFI mode, and it will open an EFI shell. Continuing through Bryan Vyhmeister's post allowed me to successfully use the EFI shell to complete the task I had at hand.

** I needed the 'full' version as it gave access to the mount function required to get access to the files and executables on the USB drive.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.