Skip to content
general firmware

EFI System Partition (ESP)

esp uefi partition boot-process fat32
Plain English

The EFI System Partition is a small section of the disk set aside just for startup files. When a modern computer turns on, the firmware looks in this partition to find the program that starts the operating system. It is usually hidden, a few hundred megabytes to a gigabyte in size, and shared by every operating system installed on that machine.

Technical Definition

The EFI System Partition (ESP) is defined by the UEFI specification. Firmware can read FAT filesystems, so the ESP is formatted FAT32 (vfat) and marked with GPT type GUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B (shown as type EF00 in gdisk, or “EFI System” in fdisk).

Layout on Ubuntu (mounted at /boot/efi):

  • EFI/ubuntu/shimx64.efi: Secure Boot first stage
  • EFI/ubuntu/grubx64.efi: GRUB
  • EFI/ubuntu/grub.cfg: a stub that points to /boot/grub/grub.cfg on the root filesystem
  • EFI/BOOT/BOOTX64.EFI: the fallback path firmware tries when no NVRAM entry works
  • EFI/Microsoft/Boot/: Windows Boot Manager on dual-boot machines

Sizing: 300 MB to 1 GB is typical. Ubuntu’s installer creates about 1 GB.

Boot entries vs files: firmware NVRAM stores entries that point at files on the ESP. Deleting either one breaks boot. efibootmgr manages entries; grub-install recreates the files and the entry.

One per disk is enough. Dual-boot setups share a single ESP; each OS gets its own folder under EFI/.

Source: UEFI Forum specifications

Finding and checking the ESP

# Find it: vfat, mounted at /boot/efi
$ lsblk -o NAME,SIZE,FSTYPE,PARTTYPENAME,MOUNTPOINTS
NAME     SIZE FSTYPE PARTTYPENAME     MOUNTPOINTS
sda       25G
├─sda1     1G vfat   EFI System       /boot/efi
└─sda2    24G ext4   Linux filesystem /

# What is on it
$ sudo ls /boot/efi/EFI/ubuntu
grub.cfg  grubx64.efi  mmx64.efi  shimx64.efi

# Firmware entries that point at those files
$ sudo efibootmgr -v | grep -i ubuntu
In the Wild

The ESP is behind many “no bootable device” errors. Causes include a dual-boot OS reinstall that formatted it, a disk cloned without it, a deleted NVRAM entry, or /boot/efi failing to mount because of a bad fstab line. The repair is the same as for GRUB: boot a live USB, mount root and the ESP, chroot, and run grub-install. Back up the ESP contents before experimenting; it is small enough to copy anywhere.