Сбой входа после 15.10 -> 16.04 LTS, связанный с драйвером NVIDIA

Я только что обновил свою систему с 15.10 до 16.04 через sudo do-release-upgrade. Во время этого процесса отображался экран со следующим сообщением:

В вашей системе включена безопасная загрузка UEFI. UEFI Secure Boot не совместима с использованием сторонних драйверов.

(...) Ubuntu по-прежнему сможет загружаться в вашей системе, но эти сторонние драйверы не будут доступны для вашего оборудования.

Отключить безопасную загрузку UEFI? (да | нет)

Поскольку единственными драйверами сторонних производителей, которые я использую, являются графические драйверы NVIDIA, и поскольку они работают нормально с включенной Ubuntu 15.10 и Secure Boot, я выбрал " нет "вариант здесь. Я не понимаю, почему я должен отключить это без уважительной причины, и я предположил, что я могу просто переустановить сторонний драйвер через графический интерфейс настройки системы после обновления.

Увы, нет. После перезагрузки мой экран входа в систему отображался в очень низком разрешении. При попытке войти в систему он сразу же возвращает меня к экрану входа в систему.

Я пытался исправить ситуацию следующим образом:

sudo apt-get purge nvidia*
sudo reboot

Это приводит к фиолетовому экрану и никакой реакции на Ctrl-Alt-F1. Зайдя в систему через SSH, я сделал:

sudo apt-get install nvidia-current
sudo reboot

, что снова возвращает меня к предыдущему сценарию с экраном входа в систему с очень низким разрешением и без возможности входа в систему.

Это довольно неудачный апгрейд. У кого-нибудь еще было это, и что я могу сделать, чтобы это исправить? (при сохранении безопасной загрузки UEFI) Спасибо.

10
задан 30 April 2016 в 19:46

1 ответ

Через Ubuntu 15.10, обработку Ubuntu Защищенной загрузки, остановленной в GRUB - то есть, версия Ubuntu Контейнера запустила бы версию Ubuntu GRUB, который запустится любой ядро Linux, было ли это подписано. Это было очень низкой панелью поддержки Защищенной загрузки. Для сравнения запустился бы GRUB Fedora, только подписал ядра Linux, и ядра Fedora, когда они обнаружили ту Защищенную загрузку, были активны, загрузит только подписанные двоичные файлы ядра. Намерение более Fedora - устойчивая поддержка Защищенной загрузки состояла в том, чтобы защитить систему от модулей ядра "жулика", которые, в теории, могли принять компьютер на очень низком уровне. Ubuntu 15.10 и ранее испытала недостаток в такой защите.

Запуск с 16,04, Ubuntu следует за более строгим модулем Защищенной загрузки, больше как то, что Fedora делал долгое время. Это обладает преимуществами безопасности, но как Вы видели, это также имеет проблемы. Если сторонний драйвер не будет подписан с криптографическим ключом, который версия Ubuntu ядра Linux распознает как допустимая, то это не будет загружено. Это главным образом влияет на Nvidia с закрытым исходным кодом и видеодрайверы AMD/ATI, но существуют другие драйверы, которые могут быть затронуты, также.

существуют (или мог бы быть), несколько обходных решений к этой проблеме:

  • Отключают Защищенную загрузку - Это - самое легкое решение. Можно сделать это путем унавоживания с микропрограммными настройками или (я думаю) путем корректировки настроек Shim. (Я не уверен, как сделать это путем тонкой настройки настроек Контейнера, но я вполне уверен, это возможно.)
  • не используют сторонние модули ядра - Если Вы ограничиваете себя драйверами с открытым исходным кодом, включенными в стандартное ядро Linux Ubuntu, необходимо быть в порядке, начиная с Канонических знаков все такие драйверы (AFAIK). Обратите внимание, что должна быть довольно хорошая поддержка Nvidia с помощью таких драйверов; Ваша система, вероятно, отступила к субоптимальным драйверам, потому что она думала, что драйверы с закрытым исходным кодом были доступны. Я не знаю бесцеремонно, как переключиться от одного до другого, но , этот вопрос о выполнении так с драйверами AMD/ATI, таким образом, это может быть полезная начальная точка.
  • Знак соответствующие модули - В теории, подписывая коммерческие модули самостоятельно должны получить их работа. К сожалению, у меня нет указателя для получения инструкций относительно того, как сделать это, и на самом деле я даже не совершенно уверен, что возможно сделать это с запасом ядро Ubuntu; такое ядро могло бы соблюдать только модули, которые подписываются с ключом Canonical, которым, конечно, Вы не обладаете.
  • Компиляция Ваше собственное ядро - при компиляции собственного ядра можно установить его опции, как Вы считаете целесообразным, включая ослабление ограничений на загрузку неподписанных модулей. Необходимо было бы затем подписать ядро с собственным ключом EFI и добавить общедоступную версию того ключа к списку MOK. Вот вопрос и ответы о компиляции Вашего собственного ядра.
  • Переключатель к более старому GRUB - поскольку более старый GRUB запустит неподписанные ядра, Вы могли установить такой GRUB (из Ubuntu 15.10 или прежде) и иметь его, запускают неподписанное ядро. Обратите внимание, что поддержание, что более старый GRUB, вероятно, был бы болью.
  • Переключатель к загрузчику, который не соблюдает Защищенную загрузку - Если необходимо было подписать загрузчик как SYSLINUX или ELILO с собственным ключом и добавить общедоступную версию того ключа к списку MOK, тот загрузчик проигнорирует настройки Secure Boot, точно так же, как более старая версия GRUB. Вы могли затем запустить неподписанное ядро.

Примечание, что только две из этих опций, что я на 100% уверен, работали бы, должно отключить Защищенную загрузку или избегать сторонних модулей ядра. Я избегаю сторонних модулей ядра как чумы, таким образом, у меня нет личного опыта с использованием их в среде Защищенной загрузки. Кроме отключения Защищенной загрузки, создание Вашего собственного ядра могло бы быть следующим наиболее вероятным работать, сопровождаемое при помощи более старого GRUB или использования загрузчика, который не соблюдает Защищенную загрузку. Создание Вашего собственного ядра было однажды распространено, но немного людей больше делают это, и с современными ядрами, инвестиции времени, чтобы изучить, как настроить ядро, не говоря уже о фактическом выполнении так, может быть значительным. Используя более старый GRUB или другой загрузчик могло бы быть легче, но необходимо будет знать достаточно, чтобы смочь настроить это. Чем более легкий путь, вероятно, будет к двойной загрузке с более старой Ubuntu, которую Вы устанавливаете второй - но знаете, что Ubuntu 16.04, вероятно, восстановит свой GRUB в какой-то момент, после чего необходимо будет переустановить, тем GRUB более старой Ubuntu.

8
ответ дан 1 May 2016 в 05:46

Другие вопросы по тегам:

Похожие вопросы: