Ahoj,
na strojích, které bootují v režimu (U)EFI, se bootloader instaluje jako soubor s koncovkou .efi
na oddíl ESP (EFI System Partition). Jeho souborový systém je vždy FAT, na disku pak může být tento oddíl vždy jen jeden. V případě více OS tak tyto OS oddíl ESP sdílí. Každý OS má zpravidla v NVRAM stroje uloženou bootovací položku která odkazuje na konkrétní soubor s koncovkou .efi
. Většina (U)EFI firmwarů pak umožňuje změnu jejich pořadí, případně výběr konkrétní položky.
Na Fedoře bývá oddíl ESP připojený ve složce /boot/efi
. Všechny potřebné soubory jsou pak ve složce /boot/efi/EFI/fedora
. Od Fedory 29 je ve výchozím stavu nabídka GRUBu skrytá. V případě více OS nebo nějakého problému s bootováním by se ale měla automaticky zobrazit. Existují taky způsoby, jak nabídku vyvolat ručně, případně je zde i možnost, jak tuto novou funkcionalitu kompletně vypnout [0].
Složka /boot/efi/EFI/BOOT
, kterou používá LibreELEC, není při více OS zrovna dobré řešení. Používá se totiž pro fallback mechanismus v případě, že v NVRAM stroje nejsou uložené žádné bootovací položky nebo v případě, že všechny selhaly. Na x86_64 slouží jako fallback soubor /boot/efi/EFI/BOOT/BOOTX64.EFI
. Tento soubor má většina OS svůj vlastní, v případě více OS se tak může běžně stát, že si ho budou při každé aktualizaci vzájemně přepisovat. Problém je v tom, že LibreELEC podle všeho bootovací položku vůbec neřeší a spoléhá se jen na tento soubor. Řešením by mělo být zkopírování obsahu složky /boot/efi/EFI/BOOT
například do složky /boot/efi/EFI/LibreELEC
. Protože je soubor /boot/efi/EFI/BOOT/BOOTX64.EFI
už nejspíš přepsaný tím z Fedory, měl by se soubor /boot/efi/EFI/LibreELEC/BOOTX64.EFI
nahradit původním z LibreELEC. Teoreticky by pak mohlo stačit příkazem:
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
vygenerovat nový grub.cfg
. Nejsem si ale jistý, že os-prober
, který se v rámci toho volá, LibreELEC rozpozná. Další variantou je vytvořit soubor /boot/efi/EFI/fedora/custom.cfg
:
menuentry "LibreELEC" {
chainloader ($boot)/EFI/LibreELEC/BOOTX64.EFI
}
a znova vygenerovat nový grub.cfg
. Tohle už by fungovat opravdu mělo.
Omlouvám se za trošku delší text, osobně si ale myslím, že je užitečné, když má člověk možnost pochopit v čem je problém a proč se řeší zrovna takhle
Snad se mi podařilo do téhle problematiky vnést aspoň trošku světla. Pokud ne, případně pokud se objevily nějaké jiné problémy, dej vědět
Honza
[0] https://fedoraproject.org/wiki/Changes/HiddenGrubMenu