Не удалось обновить Ubuntu

Вопрос или проблема

Я пытаюсь обновиться с 22 до 24 и получаю следующую ошибку:

Сборка модуля:
Очистка области сборки...(ошибочный статус выхода: 2)
...(ошибочный статус выхода: 2)3-generic
 не найден21285.20171026_COEX20170111-1414l8723de
Ошибка! Плохой статус возврата для сборки модуля на ядре: 6.8.0-53-generic (x86_64)
/build/make.log для получения дополнительной информации.1414
(10) автоматическая установка на 6.8.0-53-generic/x86_64 не удалась для rtl8723de
Ошибка! Один или несколько модулей не удалось установить во время автоматической установки.
Обратитесь к предыдущим ошибкам для получения дополнительной информации.
 * dkms: авт. установка для ядра 6.8.0-53-generic
   ...неудача!
run-parts: /etc/kernel/header_postinst.d/dkms завершился с кодом возврата 11
dpkg: ошибка при обработке пакета linux-headers-6.8.0-53-generic (--configure):
 установленный скрипт post-installation пакета linux-headers-6.8.0-53-generic возвратил ошибочный статус выхода 11
dpkg: проблемы с зависимостями предотвращают настройку linux-headers-generic:
 linux-headers-generic зависит от linux-headers-6.8.0-53-generic; однако:
  Пакет linux-headers-6.8.0-53-generic еще не настроен.

dpkg: ошибка при обработке пакета linux-headers-generic (--configure):
 проблемы с зависимостями - оставлено неконфигурированным
Настройка linux-image-6.8.0-53-generic (6.8.0-53.55) ...
Отчет apport не был написан, так как сообщение об ошибке указывает на последующую ошибку из предыдущего сбоя.
                                                                                                          dpkg: проблемы с зависимостями предотвращают настройку linux-generic:
 linux-generic зависит от linux-headers-generic (= 6.8.0-53.55+1); однако:
  Пакет linux-headers-generic еще не настроен.

запустив dkms status, я получил этот вывод, с которым я не знаю, как справиться:

dkms status
: added8_21285.20171026_COEX20170111-1414

Само собой разумеется, что выполнение dkms remove 8_21285.20171026_COEX20170111-1414 ничего не дает.

После прочтения bash-скрипта dkms и следования процессу, который выполняется, оказалось, что это модуль с мусором в имени, который был установлен в мой dkmstree (я изменил имя модуля, которое, по-видимому, является драйвером для моей сетевой карты, по соображениям конфиденциальности):

ll /var/lib/dkms
total 12
drwxr-xr-x  3 root root 4096 Feb 22 23:20  ./
drwxr-xr-x 98 root root 4096 Feb 22 23:15  ../
drwxr-xr-x  3 root root 4096 Jan 17  2018 '<имя модуля>'$'\r'/

Я вручную переименовал его и сделал то же самое с любыми другими мусорными именами внутри этого каталога, и смог удалить этот модуль, используя dkms remove.
Уверен, что это не правильный способ исправить ситуацию, но это сработало.

Ответ или решение

Ошибка, с которой вы столкнулись при попытке обновить систему с Ubuntu 22 до версии 24, связана с работой системы управления ядрами DKMS (Dynamic Kernel Module Support). Ключевые проблемы возникли из-за некорректного модуля, который не удалось правильно скомпилировать и установить.

Теория

DKMS—это утилита для автоматической перекомпиляции и установки модулей ядра, когда вышла новая версия ядра или внесены изменения в существующие модули. Она обычно используется для управления модулями, которые не включены в стандартное поставляемое ядро. Ошибка, с которой вы столкнулись, связана с неудачной попыткой настройки модулей для ядра версии 6.8.0-53-generic. Сообщение об ошибке указывает на модуль rtl8723de, используемый для работы сетевой карты.

Процесс установки обновлений Ubuntu требует установки новых заголовков ядра, и если какой-либо модуль DKMS не может быть перекомпилирован, установка прерывается. Ваша проблема связана с тем, что один из модулей (rtl8723de) не смог быть установлен.

Пример

Из вашего описания видно, что в каталоге /var/lib/dkms присутствовал модуль с повреждённым именем (например, символами, которые не должны быть в именах файлов и каталогов). Если имя модуля содержит "мусорные" символы (например, управляющие или некорректные символы), то это может нарушить работу DKMS. Из-за этого DKMS не может корректно обработать такую запись, что в свою очередь вызывает провалы во время установки обновления и ошибки зависимостей в dpkg.

Применение

Рассмотрим шаги, которые следует предпринять для устранения подобных ошибок:

  1. Поиск и идентификация проблемы: Самостоятельный анализ ошибки может быть начат с изучения /build/make.log для получения дополнительной информации о том, почему сборка модуля не удалась. Это лог-файл, в котором обычно содержится детализированная информация об ошибках компиляции.

  2. Работа с некорректными модулями DKMS:

    • Проверьте все модули в /var/lib/dkms на наличие некорректных символов. Используйте команду ls -l /var/lib/dkms для отображения их имён. Если обнаружите некорректные названия, их необходимо исправить.
    • После этого попробуйте удалить анормальные модули с использованием утилиты dkms remove.
  3. Очистка и повторная установка:

    • Если вы удачно удалили некорректные модули, попробуйте повторить процесс обновления ядра с помощью команды sudo apt-get upgrade.
    • Если проблема с конкретным модулем драйвера rtl8723de продолжается, попробуйте вручную установить или обновить этот модуль. Возможно, потребуется загрузить и установить его заново из официального репозитория или от производителя оборудования.
  4. Использование dkms для ручного управления модулями:

    • В случае, если использование стандартных команд не помогает, вы можете переработать процесс с помощью dkms build и dkms install, указав необходимые параметры вручную.
  5. Проверка зависимости пакетов:

    • Команда sudo apt-get -f install может помочь исправить зависимости пакетов, если таковые не были разрешены.
    • Используйте dpkg --configure -a, чтобы выставить настраиваемые пакеты.

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

Оцените материал
Добавить комментарий

Капча загружается...