Совсем недавно, исправляя уязвимости в ядре, я столкнулся с тем, что у меня слетели драйвера NVIDIA. Вот прям совсем, даже nvidia-smi не отрабатывала. На тот момент я еще не подозревал, что впереди меня ждет приключение на несколько часов.
В этой статье я хочу поделиться опытом решения данной проблемы, но ни в коем случае не настаиваю, что мой способ/мнение - единственно верное. И буду очень рад, если вы поделитесь своим опытом выхода из подобной ситуации!

Дисклеймер
Перед повествованием хотелось бы отдельно отметить, что о существовании утилиты, способной пересобирать драйвера после обновления версии ядра я узнал только после того, как прошел весь путь от начала и до конца.
Выбираем необходимый драйвер
Итак, первым этапом нашего путешествия становится определение используемой видеокарты и загрузка установочного файла драйвера под неё.
Если у вас все же остались драйвера, а вы просто их обновляете - можно воспользоваться командой:
nvidia-smi
В ином случае потребуется копнуть чуть глубже:
lspci | grep -i vga
Также необходимо проверить версию CUDA, к счастью она не ломается вместе с драйверами. Для этого вызовите следующий файл:
cat /usr/local/cuda/version.txt
Итак, когда вы определились с типом видеокарт, версией CUDA Toolkit и уверены в этой информации - переходим на сайт NVIDIA.

Далее выполняем поиск и выбираем версию, которая придется вам по душе и загружаем .run-файл для установки.
В моем случае сервер, на котором требовалось починить драйвера, был закрыт от внешней сети. Именно поэтому пришлось совершать столько приседаний.
После успешной загрузки потребуется передать установочный файл на удаленный сервер посредством scp:
scp /путь/до/установочного/файла пользователь@сервер:/целевой/путь
Приседания на удаленном сервере
Если все-таки вы стали заложниками положения и драйвера "сломались" - необходимо зачистить следы их присутствия:
sudo nvidia-uninstall
Поздравляю! Вы успешно снесли старые нерабочие драйвера и теперь можете приступать к подготовке установки.
Файл, который мы загрузили с сайта NVIDIA необходимо поместить в директорию /opt/nvidia. А для временных файлов создадим директорию tmp:
mkdir -p ~/tmp
chmod 1777 ~/tmp
Половина приседаний позади. Время запускать установку:
sudo /opt/nvidia/driver_name.run --tmpdir /home/user/tmp
Здесь я попрошу вашей милости, потому что скриншоты у меня, к сожалению, не сохранились, но я очень постараюсь описать все доходчиво в тексте.
Перед вами откроется установщик и начнет задавать вопросы, касаемо ключей, автопересборки дров и т.п.
Нам необходимо согласиться на создание ключей, отказаться от удаления приватной части (тут потребуется подтвердить, что вы в курсе как хранить подобные файлы, но я думаю, что если вы читаете эту статью - вы наверняка в курсе этого тонкого момента).
Установщик также предложит залить пакеты для 32-разрядной системы, что нам совершенно не нужно, а также настоятельно порекомендует поставить утилиту пересборки драйверов в случае обновления версии ядра.
Здесь я, к превеликому сожалению, не обладал достаточными ресурсами на удаленном сервере, что заставило меня снова отказаться от этой утилиты...
Знакомство системы и драйверов
Ничего в этой жизни не бывает просто так, и эта история тому подтверждение.
Если у вас тоже включен MOK и работает Secure Boot - вам потребуется "познакомить" систему с драйверами. Далее - смертельный номер!
Нам потребуется временно отключить MOK:
sudo mokutil --disable-validation
## После выполнения этой команды система запросит от вас пароль
## длиной от 8 до 16 знаков. Задавайте пароль внимательно, так как после
## перезагрузки система начнет спрашивать у вас рандомные символы пароля
sudo reboot
Важно для ребута перейти в Remote Console удаленного сервера, чтобы узреть отображение загрузки системы и, соответственно, интерфейс самого MOK. SSH-подключение, к сожалению, не подойдет.
После первоначальной подгрузки всего необходимого в системе - перед вами возникнет синее окно MOK с вопросом: "Действительно ли вы хотите отключить Secure Boot?".
Подтвердите свой выбор и введите запрашиваемые символы пароля, заданного на предыдущем этапе. Далее кликаем по любой клавише на клавиатуре и выбираем Reboot.
Если вы выполнили все корректно - после перезагрузки драйвера будут работать, как и Secure Boot. Для проверки достаточно будет выполнить команду nvidia-smi, которая отобразит вам информацию о видеокартах.
Послесловие
Учитывая, что ранее я работал в компаниях с очень закрытой инфраструктурой, где даже в консоли серверов нельзя было покопаться ручками - для меня эта ситуация стала очень интересным опытом.
Надеюсь кому-нибудь мой небольшой мануал поможет сэкономить время и разобраться в такой нестандартной ситуации.
Буду рад, если вы поделитесь своим опытом решения подобных задач или подкорректируете мою информацию!