3

On old computers (using BIOS) we had to create 2 partitions, one to mount / and second for swap.
But on new systems with UEFI we need to create third partition EFI System in addition to those two partitions. What is the purpose of this partition?

Update: does this partition is shared between a Linux distribution and Windows?

  • 1
    Not enough rep to comment. @nwildner, perhaps migrate some of your comment info about why we want UEFI into your answer. Your answer explains what it is needed for but not why it obsoletes old-school MBR methods. – zaTricky Apr 7 '15 at 21:55
  • Even not being part of the scope of the question(Bios+MBR obsolescence) ill take a time to compile everything inside the answer ;). Thanks for the tip @zaTricky – user34720 Apr 7 '15 at 22:52
  • @zaTricky - there is Is GRUB the best bootloading solution? Is there an easier alternative which is a related q/a thread with some comparisions between MBR booting and UEFI booting. And some of the answers at What is the /boot partition really for? discuss similar. – mikeserv Apr 7 '15 at 23:08
2

Via Wikipedia:

ESP (EFI System Partition) contains the boot loader programs for all installed operating systems (which are contained in other partitions on the same or other storage device), device driver files for devices present in a computer that are used by the firmware at boot time, system utility programs that are intended to be run before an operating system is booted, and data files such as error logs.

Further, relating it to BIOS-mode booting:

UEFI provides backward compatibility with legacy systems by reserving the first block (sector) of the partition for compatibility code, effectively creating a legacy boot sector. On legacy BIOS-based systems, the first sector of a partition is loaded into memory and execution is transferred to this code. UEFI firmwares do not execute the code in the Master Boot Record (MBR), except when booting in legacy BIOS mode through the Compatibility Support Module (CSM).

  • sir I have added an update, can you please answer that also? – Edward Torvalds Apr 7 '15 at 16:12
  • @edwardtorvalds Not to be ungrateful, but are you sure you didn't mean to accept the other answer? His added a lot more explanation and subtext than mine. – glibdud Apr 8 '15 at 17:32
  • your answer is to the point, his answer is confusing – Edward Torvalds Apr 8 '15 at 17:34
  • So, it means that you could have READ the Wikipedia page instead of asking a question ;) – user34720 Feb 26 '18 at 11:25
10

Beside the meaning of the ESP(EFI System Partition), is really just any partition formatted with one of the UEFI spec-defined variants of FAT and given a specific GPT partition type to help the firmware find it. This way, all EFI executables will be stored at one place, and "chainload" the Operating System specific loader or other EFI executables

The steps of booting with this setup are:

  1. System on - POST(Power On Self Test)
  2. UEFI loads it's firmwares, and initializes all hardware required for booting.
  3. Firmware determine what is the partition to be read, and where the UEFI applications are stored
  4. Firmware reads Boot Manager data to decide based on a list what EFI application have the highest priority to boot. Some UEFI systems are less flexible, and expect only one UEFI application that needs to be stored at <ESP>/EFI/BOOT/BOOTX64.EFI.
  5. UEFI application is launched. It may launch/chain another UEFI application(like an UEFI shell/menu) or load the initramfs and the kernel.

Basically, it's a FAT partition where you store EFI applications. The advantage here is that you don't need a "boot sector" anymore. It is a partition where you store binaries(efi files) and do whatever you want(depends on how your motherboard implements the specification).

Update answer: This partition will be shared in a way that a Linux related EFI(Gummiboot, rEFInd or Grub) and the Windows 8 standard EFI loader (\EFI\Microsoft\Boot\bootmgfw.efi) will be stored on the same partition. Is up to you if you want to create menus directly on the EFI Firmware or using Grub to create entries to Windows and Linux. Example.

Unfortunately, Windows 7 32bit, and Windows Vista and older(no matter 32 or 64 bits) do not support EFI+GPT. You will have to use Bios + MBR solutions to dual boot.

Further Reading:

  • sir can you please explain the meaning of "chainload" in a word or two? – Edward Torvalds Apr 7 '15 at 14:20
  • For sure. One efi executable that executes another efi executable . Example: You have a GRUB EFI called loader.efi inside this partition, and other file called shellx64_v2.efi. Your Firmware is set to load as default loader.efi, and this guy will have on it's configuration files a menu entry called menuentry "UEFI Shell x86_64 v2" that will execute shellx64_v2.efi. It's one EFI(Grub) chainloading another EFI(the EFI Shell). EFI shell is just a "generic" program to probe EFI. – user34720 Apr 7 '15 at 14:28
  • sir I have added an update, can you please answer that also? – Edward Torvalds Apr 7 '15 at 16:11
  • 1
    No. I expressed the "Unfortunately" because there is no way to stay with EFI and at the same time load those operation systems that highly depends on MBR + BIOS. Bios is pretty OLD and MBR have a lot of limitations. Its a more than 30 years old standard that needs to be put aside and the only thing that keeps us using it is an "apparent simplicity" while we have to thinker with bootloaders instead of using a Unified way to create menus and load OS's. There is of course the other side, with vendor locks, but its the same thing with a Knife: "Could be used" to slice a bread or to kill... – user34720 Apr 7 '15 at 20:08
  • 2
    @r: sure, why not? just because you happen to have had a bad experience with (U)EFI does not mean it has no advantages for anyone else; one might as well ask why would anyone want to use non-EFI boot methods when there's an option not to? – grawity Apr 7 '15 at 20:09

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.