Dzięki Ubuntu 15.10, obsługa Bezpiecznego rozruchu przez Ubuntu zatrzymała się w GRUB - to znaczy, że wersja Shim Ubuntu uruchomiłaby wersję GRUB Ubuntu, która uruchomiłaby dowolne jądro Linuksa, niezależnie od tego, czy zostało podpisane. To był bardzo niski pasek wsparcia dla bezpiecznego rozruchu. Dla porównania GRUB Fedory uruchomiłby tylko podpisane jądra Linuksa, a jądra Fedory, gdy wykryły, że Bezpieczny rozruch jest aktywny, załadowałyby tylko podpisane pliki binarne jądra. Bardziej niezawodna obsługa bezpiecznego rozruchu Fedory miała na celu ochronę systemu przed „nieuczciwymi” modułami jądra, które teoretycznie mogłyby przejąć komputer na bardzo niskim poziomie. Ubuntu 15.10 i wcześniejsze nie miały takiej ochrony.
Począwszy od 16.04, Ubuntu stosuje bardziej rygorystyczny moduł Bezpiecznego rozruchu, bardziej podobny do tego, co Fedora robi od dłuższego czasu. Ma to zalety związane z bezpieczeństwem, ale jak widzieliście, ma również problemy. Jeśli sterownik innej firmy nie jest podpisany za pomocą klucza kryptograficznego, który jądro Linuksa w wersji Ubuntu rozpozna jako prawidłowe, nie zostanie załadowane. Wpływa to głównie na sterowniki wideo Nvidia i AMD / ATI o zamkniętym źródle, ale są też inne sterowniki, na które może mieć wpływ.
Istnieje (lub może być) kilka obejść tego problemu:
- Wyłącz bezpieczny rozruch - jest to najłatwiejsze rozwiązanie. Możesz to zrobić, wyciszając ustawienia oprogramowania układowego lub (myślę) dostosowując ustawienia Shim. (Nie jestem pewien, jak to zrobić, zmieniając ustawienia Shim, ale jestem pewien, że to możliwe.)
- Nie używaj zewnętrznych modułów jądra - jeśli ograniczysz się do sterowników open source zawartych w standardowym jądrze Linux Ubuntu, wszystko powinno być w porządku, ponieważ Canonical podpisuje wszystkie takie sterowniki (AFAIK). Zauważ, że przy takich sterownikach powinna być całkiem niezła obsługa Nvidii; Twój system prawdopodobnie powrócił do nieoptymalnych sterowników, ponieważ myślał, że są dostępne sterowniki o zamkniętym źródle. Nie wiem od razu, jak przełączyć się z jednego na drugi, ale to pytanie dotyczy robienia tego ze sterownikami AMD / ATI, więc może to być pomocny punkt wyjścia.
- Podpisz odpowiednie moduły - teoretycznie samodzielne podpisanie modułów komercyjnych powinno sprawić, że będą działać. Niestety nie mam wskaźnika instrukcji, jak to zrobić, a nawet nie jestem do końca pewien, czy można to zrobić za pomocą standardowego jądra Ubuntu; takie jądro może honorować tylko moduły podpisane kluczem Canonical, których oczywiście nie posiadasz.
- Kompiluj własne jądro - Jeśli skompilujesz własne jądro, możesz ustawić jego opcje według własnego uznania, w tym znieść ograniczenia dotyczące ładowania niepodpisanych modułów. Następnie musisz podpisać jądro własnym kluczem EFI i dodać publiczną wersję tego klucza do listy MOK. Oto pytanie i odpowiedzi dotyczące kompilacji własnego jądra.
- Przełącz się na starszą GRUB - ponieważ starsza GRUB uruchomi niepodpisane jądra, możesz zainstalować taki GRUB (z Ubuntu 15.10 lub wcześniejszej) i pozwolić mu uruchomić niepodpisane jądro. Zauważ, że utrzymanie tego starszego GRUB-a będzie prawdopodobnie bolesne.
- Przełącz się na moduł ładujący, który nie honoruje Bezpiecznego rozruchu - jeśli podpiszecie moduł ładujący, taki jak SYSLINUX lub ELILO, własnym kluczem i dodacie publiczną wersję tego klucza do listy MOK, ten moduł ładujący zignoruje Bezpieczny rozruch Ustawienia uruchamiania, podobnie jak starsza wersja GRUB. Następnie możesz uruchomić niepodpisane jądro.
Zauważ, że jedyne dwie z tych opcji, które jestem w 100% pewien, że zadziałałyby to wyłączenie Bezpiecznego rozruchu lub uniknięcie modułów jądra innych firm. Unikam modułów jądra innych firm, takich jak zaraza, więc nie mam osobistego doświadczenia w korzystaniu z nich w środowisku bezpiecznego rozruchu. Oprócz wyłączenia Bezpiecznego rozruchu, najbardziej prawdopodobne jest zbudowanie własnego jądra, a następnie użycie starszego GRUB-a lub programu ładującego, który nie honoruje Bezpiecznego rozruchu. Budowanie własnego jądra było kiedyś powszechne, ale niewiele osób już to robi, a przy nowoczesnych jądrach inwestycja czasu w nauczenie się konfigurowania jądra, nie wspominając o tym, może być znacząca. Korzystanie ze starszego GRUBa lub innego programu ładującego może być łatwiejsze, ale musisz wiedzieć wystarczająco dużo, aby móc to skonfigurować.