• [debian-installer/partman-efi] ESP partition detection

    From Pascal Hambourg@21:1/5 to All on Wed Sep 14 18:00:01 2022
    (Posting to debian-boot and debian-efi because the topic concerns both
    lists. Please reply to debian-boot.)

    Hello,

    The script init.d/efi examines each existing partition and detects it as
    EFI System Partition (ESP) if it matches the following condition:

    ( filesystem=FAT16
    or ( filesystem=FAT32 and partition name="EFI System Partition" )
    or ( disklabel=MSDOS and partition type ID=ESP )
    or ( disklabel=GPT and partition type GUID=ESP )
    ) and libparted flag "boot" is set

    I am puzzled by some of these requirements because AFAICS the UEFI specification mentions only partition type=ESP and filesystem=FAT,
    stating that UEFI implementations may accept FAT partitions even without
    the ESP GUID.

    1) Why does FAT32 require the name "EFI System Partition" while FAT16
    does not ? Such partition name is not mentioned in the UEFI specification.

    2) Why is the "boot" flag required ?

    In GPT disklabels, the "boot" and "esp" libparted flags are synonyms and
    both identify the ESP partition type GUID. So the boot flag check is
    redundant with the partition type GUID check.

    In MSDOS disklabels, the "boot" libparted flag identifies the
    boot/active indicator in the partition entry. The UEFI specification
    states that this field is used for legacy boot and shall not be used by
    UEFI firmware.

    As a result of this requirement, a regular ESP partition with the ESP
    type ID but without the boot flag in a MSDOS disklabel is not detected. Conversely, a FAT16 *DOS or Windows 9x boot partition would be wrongly
    detected as ESP.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)