On Di, 19.06.18 11:17, Chris Murphy (lists@xxxxxxxxxxxxxxxxx) wrote: > > Today, systemd has this generator that will automatically find the ESP > > for you and mount it to /efi or /boot. The idea behind that is that > > installers can choose whether they want to merge $BOOT and the ESP or > > not: > > > > 1. If they are merged, then the ESP (and thus also $BOOT) is mounted > > to /boot, automatically by the generator. No other preparation is > > needed, and /efi does not exist. (Distros could even make /efi a > > symlink → /boot, but I personally wouldn't bother). > > > > 2. If they are not merged, then the ESP is mounted to /efi, > > automatically by the generator. And /boot would be mounted as $BOOT > > via an /etc/fstab entry added by the installer. > > > > And as mentioned, I'd generally recommend everybody to go for option > > #1 because it is a lot simpler, and EFI has trivial access to all > > kernels and such. > > Except, it's not simple for installers to migrate to a new bigger ESP > in the dual boot case. And having different layouts for UEFI and BIOS > and whether there's dual boot or single boot, isn't simpler. Again, if you don't want to resize the ESP, then go for option #2 above. But if the ESP is usable, then go for option #1. > If $BOOT is defined as where non-static bootloader config + kernel + > initramfs goes, and if shared $BOOT is a good thing for Linux distros, > then the $BOOT to always create is type 0xEA / bc13c2ff... and not > conflate it with the location for the bootloader binaries: the ESP on > UEFI, and either MBR gap or BIOSBoot on BIOS. Well, I am pretty sure legacy-free systems should not be bothered by having two partitions for that. That just complicates stuff. I mean, adding some minimal kludges to support Windows-cross-boot is fine, but adjusting everything with that case in the center of everything is quite wrong. Note that ESP and $BOOT have the same semantics, life-cycles and requirements, hence they should really be the same if possible, and only be split if they can't. Also note that we put together the boot loader spec with systemd-boot as our implementation of it, as a reference implementation if you so will. systemd-boot is a very simple, straight-forward boot loader, that adds a few things missing in UEFI itself, and doesn't contain code for parsing partition tables or file systems, for searching for devices and so on, like grub does. It implements the spec, but explicitly doesn't support splitting $BOOT and the ESP. I am pretty sure we as the spec authors should keep our implementation and the spec aligned. That said, it's of course up to Fedora to implement the spec in Fedora. If it always wants to split the two partitions, by all means, go for it, but I think it's needless complication except if you actually dual boot with Windows. > Windows, macOS, the various distros - they all have substantial > differences in how they boot. But the one commonality I most > consistently see? The bootloader teaches the pre-boot environment, > right off the bat, how to read a real file system, and from that real > file system the kernel and initramfs are loaded. MacOS has native apple file system read support in their firmware, they rely on the firmware to read the stuff they need directly from the final disk. We don't have that luxury. The good thing about using VFAT for $BOOT is that it is the common ground pretty much everything involved in booting groks, if they grok a file system at all. UEFI knows it, and so does the Raspberry Pi boot protocol. The Linux initrd knows it and so does the Linux host OS, Windows knows it. MacOS knows it. Grub knows it. Lennart -- Lennart Poettering, Red Hat _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx/message/NBA5TJT5PKLLIJJYVJSMKWAB2P4D4SZO/