Через Ubuntu 15.10 управління Ubuntu із захищеним завантаженням зупинилося на GRUB - тобто версія Shim Ubuntu запустила б версія GRUB Ubuntu, яка запустила б будь-яке ядро Linux, незалежно від того, підписано воно чи ні. Це була дуже низька планка підтримки для безпечного завантаження. Для порівняння, GRUB Fedora запустив би лише підписані ядра Linux, а ядра Fedora, коли виявили, що Secure Boot активний, завантажуватимуть лише підписані бінарні файли ядра. Наміром більш надійної підтримки захищеного завантаження Fedora було захистити систему від модулів ядра, які, в теорії, могли захопити комп'ютер на дуже низькому рівні. Ubuntu 15.10 і раніше не вистачало такого захисту.
Починаючи з 16.04, Ubuntu слідує за більш суворим модулем захищеного завантаження, більше схожим на те, що Fedora робив досить давно. Це має переваги для безпеки, але, як ви вже бачили, це також має проблеми. Якщо сторонній драйвер не підписаний криптографічним ключем, який версія Ubuntu ядра Linux визнає дійсною, він не завантажується. Це в основному впливає на відеовідра Nvidia та AMD / ATI із закритим кодом, але на них можуть вплинути й інші драйвери.
Існує (або може бути) кілька вирішень цієї проблеми:
- Вимкнути безпечне завантаження - це найпростіше рішення. Це можна зробити, скориставшись налаштуваннями вбудованого програмного забезпечення або (я думаю), скоригувавши параметри Shim. (Я не впевнений, як це зробити, змінивши налаштування Shim, але я впевнений, що це можливо.)
- Не використовуйте сторонні модулі ядра - Якщо ви обмежуєте себе драйверами з відкритим кодом, що входять до стандартного ядра Ubuntu Linux, вам слід добре, оскільки Canonical підписує всі такі драйвери (AFAIK). Зауважте, що для таких драйверів має бути досить хороша підтримка Nvidia; ваша система, ймовірно, повернулася до неоптимальних драйверів, оскільки вона вважала, що драйвери із закритим кодом доступні. Я не знаю напевно, як переключитися з одного на інший, але це питання стосується цього з драйверами AMD / ATI, тому це може бути корисною відправною точкою.
- Підпишіть відповідні модулі - теоретично, підписування комерційних модулів повинно змусити їх працювати. На жаль, у мене немає вказівника щодо інструкцій, як це зробити, і насправді я навіть не зовсім впевнений, що це можливо зробити з запасом ядра Ubuntu; таке ядро може шанувати лише модулі, підписані ключем Canonical, якими ви, звичайно, не володієте.
- Скомпілюйте власне ядро - якщо ви збираєте власне ядро, ви можете встановити його параметри, як вважаєте за потрібне, включаючи послаблення обмежень щодо завантаження неподписаних модулів. Потім вам потрібно буде підписати ядро за допомогою власного ключа EFI та додати відкриту версію цього ключа до списку MOK. Ось питання та відповіді щодо складання власного ядра.
- Перехід на старіший GRUB - Оскільки старіший GRUB запускає непідписані ядра, ви можете встановити такий GRUB (від Ubuntu 15.10 або раніше) і змусити його запустити непідписане ядро. Зауважте, що підтримка цього старшого GRUB, ймовірно, буде болем.
- Перехід на завантажувач, який не шанує захищене завантаження - Якщо ви повинні підписати завантажувач типу SYSLINUX або ELILO власним ключем і додати публічну версію цього ключа до свого списку MOK, цей завантажувач ігнорував би безпечний Налаштування завантаження, як і старіша версія GRUB. Потім можна запустити непідписане ядро.
Зауважте, що єдині два з цих варіантів, на які я впевнений на 100%, би спрацювали, - це відключити захищене завантаження або уникати сторонніх модулів ядра. Я уникаю сторонніх модулів ядра, як чума, тому у мене немає особистого досвіду використання їх у безпечному завантаженні. Окрім відключення захищеного завантаження, наступним, швидше за все, може працювати побудова власного ядра з подальшим використанням старого GRUB або використанням завантажувача, який не шанує Secure Boot. Створення власного ядра колись було звичайним явищем, але мало хто робить це вже більше, і за допомогою сучасних ядер час інвестування часу, щоб дізнатися, як налаштувати ядро, не кажучи вже про це, може бути значним. Використовувати старіший GRUB або інший завантажувач може бути простішим, але вам потрібно знати достатньо, щоб мати можливість це налаштувати.