Why does Ubuntu Server installer create separate /boot and /boot/efi partitions? Is /boot on a separate partition optional?

I am installing Ubuntu Server, and I noticed that the guided lvm process will create a 512MB /boot/efi fat32 partition as well as a 1GB /boot ext4 partition. The rest of the HDD is then given to LVM to be used as / under a lv.

I understand the 512MB partition that will be mounted as /boot/efi is the EFI System Partition for EFI booting and requires fat32 formatting because EFI does not recognize more exotic filesystems.

However, I want to know why a separate 1GB /boot partition is also carved out.

In another install, I configured partitions manually and selected the "Use as boot device" option under a blank HDD. This created the 512GB ESP. Then, I

  • created a backup ESP on another HDD
  • created lvm-on-mdadm set up on the free space of both, for / .

After installation completed, the HDDs had 512MB ESPs, the free space was lvm-on-mdadm, and /boot was a subfolder of / . I didn't purposely not create a separate /boot partition, I just didn't know better.

User "user589808: says here that

The ESP - EFI System Partition - should not be confused with /boot (not required for most Ubuntu installations) and is a standard requirement.

On one hand, I don't want to go against guidelines and want to respect the defaults, but on the other hand, I am working with VM's on a machine that has a low amount of storage, and having a separate 1GB /boot partition that might not even get completely filled up (along with all the complexities that may be involved when resizing partitions) seems less ideal than have a lvm lv containing /boot as a subfolder. (I won't be using lvm-on-mdadm though, just lvm)

On a lvm or lvm-on-mdadm systems with ESP's, is a separate /boot partition required?


Let's turn the wayback machine to about five or six years ago....

Back then a stock install of Ubuntu using the default settings did NOT use LVM, and /boot was simply a directory on the root drive. (You can have this simpler legacy behavior by un-selecting LVM during install).

Most folks who chose LVM did so because they wanted to encrypt their system. They didn't know what other uses LVM is good for (most folks still don't know). Ubuntu could not read the encrypted partition until after boot, so selecting LVM triggered creation of an unencrypted /boot partition.

About five-or-so years ago, changes in the boot (like EFI and SecureBoot) led to the creation of the EFI partition.

Starting in 20.04, the default setting of the installer switched from non-LVM to LVM, leading to the default creation of separate /boot partitions (in addition to EFI). Recall that you can un-select LVM to use the legacy /boot directory instead of creating a new partition.

Keep in mind that the software environment continues to evolve. EFI and LVM and separate /boot partitions might be replaced or subsumed by newer or better ideas in the future. It's happened before. More than once.


In your particular case ("working with VM's on a machine that has a low amounts of storage"), I'm not seeing a benefit to using LVM (nor EFI), so consider simplifying. If your host can run Snaps, you can run LXD containers which feel like VMs but are even leaner on resource requirements.