Fedora 45 má dostat osekaný GRUB pro důvěrné výpočty bez věty o systemd
Fedora dostane vedle běžného zavaděče GRUB ještě druhý, záměrně chudý. Je pro virtuální stroje, které o sobě musí umět podat důkaz, a jeho hlavní přednost je, že se skoro nemění. Řídicí výbor projektu ho pro verzi 45 schválil pěti hlasy, z nichž dva jejich autoři sami označili za slabé.

Zavaděč je první program, který se po zapnutí počítače dostane ke slovu. U virtuálních strojů, které mají o sobě umět podat důkaz, je zároveň jedním z mála míst, kde se nemá nic měnit. Fedora proto pro verzi 45 přijala změnu, která k běžnému GRUBu přidá druhý, záměrně chudý balíček. Jmenuje se grub2-efi-x64-cc, umí jen UEFI a jeho hlavní práce je najít jeden soubor a spustit ho.
Proč u důvěrných výpočtů vadí aktualizace
Důvěrný virtuální stroj je stroj, do jehož paměti nevidí ani ten, kdo ho provozuje. Aby to zákazník poznal, používá se vzdálené doložení stavu: stroj předloží otisky všeho, co se do něj při startu nahrálo. Otisky drží čip TPM v registrech PCR a stačí do řetězu přidat jediný bajt navíc, aby vyšlo jiné číslo.
Text změny z toho vyvozuje požadavek, který se běžnému software příčí. Protože důvěrné stroje na doložení stojí, mají být hodnoty PCR stabilní a předvídatelné po dlouhou dobu, takže aktualizaci zavaděče je podle návrhu lepší se pokud možno vyhnout. Čím míň modulů má zavaděč zabudovaných, tím menší je jeho útočná plocha a tím řidčeji ho bude potřeba měnit.
Druhá půlka úvahy je o jednotném obrazu jádra, zkráceně UKI. Je to jeden soubor, ve kterém je jádro, počáteční ramdisk i příkazová řádka pohromadě a podepsané vcelku – odpadá tím initramfs, který u klasického startu podepsaný není. Zavaděč u UKI nemá co skládat; jen ho najde a předá mu řízení.
Co ten balíček je
Nový balíček vzniká ze stejného zdroje jako hlavní GRUB, ale sestavuje se zvlášť a obsahuje jen moduly nutné pro virtuální stroje. Umí načíst UKI podle záznamů ve specifikaci zavaděčů (BLS) a běžný GRUB nenahrazuje – kdo si ho nenainstaluje schválně, nepozná, že existuje.
Pro architektury x86_64 a aarch64 je balíček podle textu změny ve vývojové větvi Rawhide a je podepsaný klíčem GRUBu pro Secure Boot. Vlastní podpisový klíč má dostat teprve časem. Návod na vyzkoušení radí přepsat běžný grubx64.efi souborem grubx64-cc.efi z balíčku, restartovat a příkazem tpm2_pcrread ověřit, že se hodnota registru PCR8 mezi starty různých UKI nemění. Vedle toho radí porovnat velikost obou souborů; že je nový menší, návrh tvrdí, o kolik, neuvádí.
Aby se dal takový zavaděč na systémech se spouštěcími kontejnery bezpečně aktualizovat, musí ho umět nástroj bootupd. Hlášení číslo 1080 v jeho repozitáři je otevřené od 2. dubna 2026 a poslední pohyb v něm byl 18. června.
Otázka, které se návrh nevyhnul
Nabízí se, proč se místo osekávání GRUBu nesáhlo po systemd-boot, tedy po zavaděči, který je malý od začátku. Návrh na to má vlastní oddíl. Když ho Leo Sandoval 11. června otevřel k diskusi, stály v něm čtyři důvody: tým systemd prý sd-boot v současné podobě podporovat umí, ale žádné další funkce do něj přidávat nechce; sd-boot není tak prověřený a profuzzovaný jako GRUB; udržovat dlouhodobě dva zavaděče by znamenalo technický dluh; a případné rozšíření na další architektury by si stejně vyžádalo kompatibilní zavaděč.
Odpovědi přišly hned. Michael J Gruber napsal, že proti odlehčené variantě GRUBu nic nemá, ale návrh podle něj rezignuje na myšlenku nového štíhlého zavaděče; GRUB umí příliš mnoho věcí a odsekáváním částí se podle něj k udržitelnému stavu nedojde. Alberto Ruiz připomněl, že Fedora už systemd-boot i ukiboot dodává a že oba zůstanou i proti osekanému GRUBu podstatně menší. Maksym Hazevych označil bod o nepřidávání funkcí za rozporný s tím, že se u GRUBu funkce naopak ubírají.
Nejostřeji se ozval Zbigniew Jędrzejewski-Szmek: část o sd-bootu je podle něj „odtržená od reality“ (přeloženo z angličtiny), protože specifikace UKI se pravidelně rozšiřuje a systemd-boot i systemd-stub pravidelně dostávají nové funkce. Luca Boccassi doplnil, že sd-boot fuzzován je, byť přes oss-fuzz a míň, než by měl být, a že je od několika měsíců výchozím zavaděčem v openSUSE Tumbleweed.
Marta Lewandowska za návrh argumentovala obráceně: dává větší smysl vyjít z něčeho, co v potřebných situacích funguje, a ubírat, než začít od minima a přidávat neprověřený kód. Na dotaz, odkud se vzalo tvrzení o odmítání nových funkcí, odpověděla, že to týmu řekli správci systemd z RHELu a Fedory. Barry A Scott na to namítl, že v e-mailové konferenci devel to lidé od systemd popřeli, a uzavřel to větou „zdá se, že je tu problém v komunikaci“ (přeloženo). Simon de Vlieger dodal, že správce systemd ve Fedoře totéž popřel přímo v tom vlákně.
Věta, která z návrhu zmizela
Sporný bod se ze zadání ztratil. Historie stránky změny ukazuje úpravu z 25. června 2026, ve které účet Kashyapc v oddílu Feedback smazal právě odrážku o tom, že tým systemd další funkce nechce. Zbylé tři důvody zůstaly beze změny a stránka od té doby žádnou zmínku o postoji týmu systemd neobsahuje. Znění z 11. června na diskusním fóru ji má dál.
Schváleno, ale bez nadšení
Řídicí výbor Fedory dostal změnu k projednání 30. června. Simon de Vlieger napsal, že se mu o ní hlasuje těžko: hodnotu balíčku pro důvěrné stroje osobně nevidí, kdežto osekaný GRUB pro běžný hardware podle něj smysl dává, jenže na to zatím připravený není. Timothée Ravier mu odpověděl, že spouštět UKI přímo sice jde, ale uživatel se pak k návratu na starší verzi dostane jen přes rozhraní firmwaru a v řetězu startu chybí shim. Neal Gompa a Kevin Fenzi se přihlásili s týmž odůvodněním a hlasem pro. Michel Lind i Zbigniew Jędrzejewski-Szmek svůj hlas označili sami za slabý. Sedmého července to Jędrzejewski-Szmek uzavřel zápisem, že po týdnu je návrh schválen v poměru pět pro, nula proti, nula zdrželo se. Tiket se zavřel 14. července.
Otevřené věci zůstávají tři. Balíček nemá vlastní podpisový klíč, bootupd ho zatím neumí a Timothée Ravier v diskusi upozornil, že návod na vyzkoušení odpovídá jen zkoušce, ne tomu, jak se se zapečetěnými spouštěcími kontejnery pracuje v projektu bootc, kvůli kterému změna vznikla. Jędrzejewski-Szmek k tomu podotkl, že správný typ záznamu pro UKI je podle specifikace uki, ne efi, jak stojí v návodu.
Čas na doladění ještě je. Podle harmonogramu se větev Fedory 45 odděluje od Rawhide 11. srpna, uzávěrka hotového kódu je 25. srpna a vydání míří na 20. října 2026. Podobně jako u stínového zásobníku platí i tady, že schválená změna není hotová změna.
Zdroje: stránka změny GRUB EFI for Confidential Computing na wiki Fedory a rozdíl mezi jejími verzemi z 25. června, vlákno k návrhu na fóru Fedory, tiket 3626 řídicího výboru, hlášení 1080 v repozitáři bootupd a harmonogram Fedory 45.