Возможно для каждого Linux/FreeBSD сделать свой отдельный ESP-раздел.[GRUB0]
Сначала идет ESP-раздел, который я назвал GRUB0, 100 Mb.
В этот раздел установил GRUB2.
Именно этот раздел является первым загрузочным и через его меню выбирается какой Linux загружать.
[Перед установкой Linux]
С помощью SystemRescue сначала создаем отдельный ESP-раздел, 100 Mb достаточно.
[1] Этот единственный ESP-раздел помечаем флагами boot, esp.
Все остальные ESP-разделы - снимаем флаги boot, esp, включаем hidden.
[Во время установки Linux]
Большинство инсталляторов Linux похоже игнорируют выбор вручную ESP-раздела.
Они находят единственный раздел [1] и используют его.
AltLinux 10 позволяет выбрать где делать ESP-раздел и отдельно про это спрашивает.
После установки не даем компу загружаться в свежеустановленный Linux.
[После установки]
Загружаемся в SystemRescue.
Монтируем раздел GRUB0, редактируем конфиг.
Добавляем в него пункт загрузки нового установленного Linux.
C помощью "efibootmgr -o ..." устанавливаем чтобы первый раздел в boot order UEFI был именно GRUB0.
Выгружаемся из SystemRescue.
Запускается GRUB0.
В меню выбираем загрузку нового установленного Linux.
[File grub.cfg]
# File grub.cfg
set default=0
set timeout=30
set pager=1
insmod part_gpt
# Variant 0, /dev/sdc1
menuentry "Ubuntu 20.04" {
UUID=XXXX-YYYY
HINT=hd2,gpt1
search --no-floppy --fs-uuid --set root --hint $HINT $UUID
chainloader /EFI/ubuntu/shimx64.efi
}
# метку UUID для раздела можно посмотреть из SystemRescue так: ls -l /dev/disk/by-uuid/