Система Ubuntu часто сталкивается с конфликтами при установке или обновлении графических драйверов, особенно в случае с картами NVIDIA. Неправильная загрузка модулей ядра или неудачное обновление ядра может оставить на диске фрагменты старых пакетов, которые блокируют работу новых версий.
Чистое удаление графического ПО — это критически важный этап перед переустановкой или откатом системы. Просто нажать «удалить» в графическом интерфейсе часто недостаточно, так как системные сервисы и конфигурационные файлы продолжают занимать место и могут вызывать конфликты при загрузке. Вам потребуется вмешательство в командную строку для гарантированного результата.
Подготовка системы к чистке драйверов
Прежде чем приступать к удалению, необходимо убедиться, что текущая сессия пользователя завершена корректно, а графический сервер не использует целевые драйверы. Попытка удалить nvidia-driver или amdgpu прямо из активной графической оболочки может привести к потере видеовыхода или зависанию системы.
Режим восстановления является наиболее безопасным методом. Перезагрузите компьютер и в меню загрузчика GRUB выберите пункт «Advanced options for Ubuntu», затем выберите ядро с пометкой «(recovery mode)». В появившемся меню выберите «root» для доступа к командной строке с правами суперпользователя.
Если вы не хотите перезагружаться, можно перейти в текстовый режим, остановив дисплейный менеджер. Для систем с GDM3 (стандартный экран входа в Ubuntu) выполните команду остановки сервиса:
sudo systemctl stop gdm
Это действие временно отключит графическую оболочку, но оставит вас в терминале. Теперь система готова к манипуляциям с пакетами. Важно проверить, какой именно драйвер установлен, чтобы не удалить лишнее. Используйте команду для анализа загруженных модулей ядра:
lsmod | grep -E 'nvidia|amdgpu|radeon'
Удаление драйверов NVIDIA через пакетный менеджер
Для карт NVIDIA в репозиториях Ubuntu существуют специализированные мета-пакеты, которые управляют версиями драйверов. Самым эффективным способом является использование утилиты apt с флагом автоматического удаления зависимостей. Это гарантирует, что не останется «осиротевших» библиотек.
Чтобы удалить конкретную версию, например 535, введите следующую команду. Система спросит подтверждение, на что следует ответить «y»:
sudo apt-get remove --purge '^nvidia-.*'
Эта команда сработает как шаблон, удаляя все пакеты, имя которых начинается с nvidia-. Если у вас установлены проприетарные драйверы через P-P (Personal Package Archive) драйверов Graphics Drivers, возможно, потребуется сначала отключить этот репозиторий, чтобы система не пыталась автоматически вернуть пакеты при следующем обновлении.
⚠️ Внимание: Операция--purgeудаляет не только сами файлы драйвера, но и все конфигурационные файлы в/etc. Если вы настраивали X11 вручную, эти настройки будут утеряны безвозвратно.
После удаления основного пакета необходимо очистить кэш и удалить автоматически установленные зависимости, которые больше ни к чему не привязаны:
sudo apt-get autoremove
Это освободит место на диске и уберет лишние библиотеки OpenCL или Vulkan, которые были установлены вместе с драйвером. Проверка состояния системы должна показать, что модули ядра больше не загружаются.
Полная очистка драйверов AMD и Intel
Для владельцев видеокарт AMD ситуация отличается, так как драйверы amdgpu и radeon являются частью ядра Linux. Их нельзя удалить без полной перекомпиляции ядра, что не рекомендуется среднему пользователю. Однако, можно удалить пользовательское пространство и утилиты управления, такие как Mesa или AMDGPU-PRO.
Если вы устанавливали проприетарный драйвер AMDGPU-PRO с официального сайта, используйте встроенный в него скрипт деинсталляции. Обычно он находится в каталоге, куда был распакован архив, или доступен через системный менеджер пакетов как отдельный пакет для удаления.
Для удаления компонентов Mesa и библиотек OpenGL, которые могут конфликтовать, выполните:
sudo apt-get remove --purge '^libgl.' '^libegl.' '^xserver-xorg-video-.*'
Здесь ^libgl.* — это шаблон, удаляющий все библиотеки графического рендеринга. Будьте осторожны: это может временно нарушить работу графического интерфейса до установки новых драйверов.
⚠️ Внимание: Удаление пакетов xserver-xorg-video-* приведет к тому, что графический сервер не сможет инициализировать видеовыход, пока не будут установлены новые драйверы. Обязательно имейте под рукой загрузочную флешку с Live-системой.
Удаление остаточных файлов и конфигураций
Даже после использования apt в системе могут оставаться файлы конфигурации или модули ядра, которые не были удалены автоматически. Это часто случается при сбоях во время обновления. Очистка этих остатков необходима для корректной работы нового драйвера.
Проверьте наличие файлов конфигурации Xorg в каталоге /etc/X11/. Файл xorg.conf часто содержит жестко заданные настройки, которые мешают автоопределению нового оборудования.
sudo rm /etc/X11/xorg.conf
Также стоит проверить каталог /lib/modules/$(uname -r)/kernel/drivers/gpu/ на наличие оставшихся файлов модулей NVIDIA. Если они есть, их можно удалить вручную, но лучше сначала обновить список модулей ядра:
sudo depmod -a
Эта команда пересоздает зависимости модулей и удаляет ссылки на несуществующие драйверы, что критически важно для стабильности загрузки ядра.
Использование утилиты dkms для удаления модулей
Система DKMS (Dynamic Kernel Module Support) автоматически пересобирает драйверы при обновлении ядра. Если удаление пакета прошло неудачно, модуль DKMS может остаться активным и вызывать ошибки загрузки.
Для принудительного удаления модуля из базы DKMS выполните команду, указав имя драйвера и его версию:
sudo dkms remove nvidia/535.104.05 --all
Если вы не знаете точную версию, можно посмотреть список всех установленных модулей DKMS командой dkms status. Это поможет идентифицировать проблемный драйвер.
После успешного удаления записи из DKMS система перестанет пытаться скомпилировать драйвер при каждой загрузке нового ядра, что значительно ускорит процесс запуска системы.
Проверка и восстановление графического интерфейса
После выполнения всех операций удаления необходимо убедиться, что система способна запустить графический интерфейс с базовыми драйверами (например, llvmpipe или Nouveau). Перезагрузите компьютер командой:
sudo reboot
Если система загрузилась в текстовом режиме и не запускает рабочий стол, это означает, что графический сервер не может найти подходящие драйверы. В этом случае необходимо установить минимальный набор драйверов для экрана.
Для Ubuntu это обычно пакет xserver-xorg-video-all. Установите его, чтобы восстановить базовую работоспособность:
sudo apt-get install xserver-xorg-video-all
Также проверьте, не заблокирован ли дисплейный менеджер. Иногда после удаления драйверов сервис gdm или sddm переходит в состояние ошибки.
sudo systemctl start gdm
⚠️ Внимание: Если после перезагрузки вы видите только черный экран с курсором, попробуйте сменить TTY (Ctrl+Alt+F3), войти в систему и проверить логи ошибок в /var/log/Xorg.0.log.
Что делать, если система не загружается?
Если система зависает на этапе загрузки, нажмите Shift при запуске, войдите в меню GRUB и выберите «Advanced options». Выберите ядро без режима восстановления, а затем в меню восстановления выберите «dpkg repair» или «Repair broken packages».
Сравнение методов удаления драйверов
Различные методы удаления драйверов имеют свои плюсы и минусы. Выбор зависит от того, насколько глубоко вы хотите очистить систему и есть ли у вас доступ к графическому интерфейсу.
| Метод | Уровень очистки | Риск поломки системы | Требует терминала |
|---|---|---|---|
| Пакетный менеджер (apt) | Средний | Низкий | Да |
| Ручное удаление файлов | Максимальный | Высокий | Да |
| Скрипты деинсталляции (AMD) | Высокий | Средний | Да |
| Сброс конфигураций Xorg | Базовый | Низкий | Да |
Использование apt с флагом --purge является золотым стандартом для большинства пользователей. Он удаляет 95% артефактов без риска повредить ядро системы. Ручное удаление файлов в /lib/modules или /usr/lib следует применять только в крайних случаях, когда стандартные методы не помогли.
Скрипты от производителя, такие как amdgpu-pro-uninstall, часто эффективнее для специфических версий драйверов, так как они знают о внутренних зависимостях конкретного дистрибутива или версии драйвера.
FAQ: Часто задаваемые вопросы
Можно ли удалить драйвер NVIDIA, не перезагружая систему?
Теоретически да, если вы остановите дисплейный менеджер командой sudo systemctl stop gdm. Однако для полного удаления модулей ядра и обновления initramfs перезагрузка необходима. Без перезагрузки система может продолжать использовать старые модули в памяти.
Что делать, если после удаления драйвера экран черный?
Это означает, что графический сервер не нашел драйвер. Зайдите в режим восстановления (Recovery Mode) через GRUB, выберите «root» и установите базовый драйвер xserver-xorg-video-all или драйвер Nouveau командой sudo apt install xserver-xorg-video-nouveau.
Нужно ли удалять драйверы AMD, если они встроенные в ядро?
Нет. Драйверы amdgpu и radeon являются частью ядра Linux и не удаляются обычными методами. Если вы установили проприетарный драйвер AMDGPU-PRO, его следует удалять только если он вызывает проблемы, используя официальный скрипт деинсталляции.
Как проверить, остался ли драйвер в системе?
Используйте команду lsmod | grep nvidia. Если вывод пустой, модули не загружены. Также проверьте наличие файлов в /usr/lib/x86_64-linux-gnu/nvidia/. Если папка пуста или удалена, чистка прошла успешно.