Я ужасаюсь, сколько же из-за этого UEFI наплодили загрузчиков. Вот только небольшой список systemd-boot, rEFInd, rEFIt, gummiboot, ELILO, прямая загрузка ядра (с включенным в него initrd и kernel command line arguments), Clover, NeoGRUB, grub-efi, shim, efilinux, syslinux, efiboot, UEFI-Boot, doric, KaBoot, chameleon.
Это ещё хуже, чем во времена MBR, когда только grub и lilo были. Сколько уже можно изгаляться над загрузкой? У меня создаётся впечатление, что загрузка системы - это самая геморройная в плане установки и подверженная риску внезапного отказа стадия установки и загрузки ОС. И вместо единого загрузчика, который бы работал и на MBR и на UEFI (причём СРАЗУ. если диск переткнули в другую машину, например), есть куча нерабочего дерьма, большинство из которого не обеспечивает даже фоллбек и проверку цифровых подписей.
И зачем оно надо? Кто будет поддерживать такое количество загрузчиков? Я понимаю, если бы со стороны ОС был бы какой-нибудь абстрактный systemd-boot-config, который генерировал бы XML-файл со списком ядер, initrd и параметров загрузки (и фоллбеком), а потом этот XML бы транслировался бы в конфиг конечного загрузчика, который на данной системе используется. Но на данный момент ничего просто работать работать.
А первоначально EFI (не UEFI) создавалась Intel'ом, чтобы увеличить скорость и безопасность загрузки, улучшить поддержку оборудования и упростить написание драйверов и загрузчиков. Всё это делалось для серверов. Это уже потом MS с UEFI SecureBoot всё опошлили. До этого использовали TPM и EFI-signed загрузку, и все были счастливы (кому нужна была безопасность), а также TrustedGRUB юзали.
Скоро придём к тому, что бандл ядра+initrd будет напрямую будет бутится из UEFI, а затем сам будет становиться загрузчиком для последующего ядра и initrd через kexec. Хотя... http://kboot.sourceforge.net/ https://github.com/kexecboot/kexecboot https://github.com/davilla/atv-bootloader OH, SHI~ ...