Ubuntu потеряла сеть после обновления ядра

Как я исправил проблемы с сетью в Ubuntu

Содержимое страницы

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

Команды для устранения сетевых проблем

Вот команды, которые восстановили мое сетевое подключение. Сначала проверьте версию ядра с помощью uname -r (она покажет что-то вроде 6.14.0-37-generic), затем замените номер версии в командах ниже:

# Проверка сетевых интерфейсов и IP-адресов
ifconfig

# Проверка версии ядра
uname -r

# Обновление списков пакетов и обновление системы
sudo apt update
sudo apt upgrade

# Установка дополнительных модулей ядра для обнаруженной выше версии
# Замените 6.14.0-37-generic на фактическую версию вашего ядра
sudo apt install linux-modules-extra-6.14.0-37-generic

# Пересборка initramfs для включения новых модулей ядра
sudo update-initramfs -u

# Установка рекомендуемых проприетарных драйверов (в основном для графики NVIDIA)
sudo ubuntu-drivers autoinstall

# Перезагрузка для применения изменений
sudo reboot

Понимание проблемы и решения

Когда Ubuntu автоматически обновляется до новой версии ядра (что происходит во время регулярных обновлений системы), иногда сетевые драйверы не включаются в файловую систему загрузки нового ядра. Это особенно распространено в Ubuntu 24.04 после обновлений ядра, особенно на системах с определенным сетевым оборудованием, требующим дополнительных модулей ядра.

Почему это происходит

  1. Модули ядра специфичны для версии: Каждая версия ядра требует собственного набора модулей драйверов
  2. Initramfs может быть неполным: Изначальная файловая система RAM (initramfs), загружаемая при загрузке, может не содержать всех необходимых сетевых драйверов
  3. Отсутствует пакет с дополнительными модулями: Пакет linux-modules-extra для новой версии ядра может не быть автоматически установлен

Как работает решение

Команды выше решают проблему, следующим образом:

  1. Установка дополнительных модулей ядра: Пакет linux-modules-extra-<version>-generic содержит дополнительные модули ядра, включая многие сетевые драйверы, которые не включены в базовый пакет ядра. Без этих модулей ваше сетевое оборудование не будет распознано.

  2. Пересборка initramfs: Команда update-initramfs -u обеспечивает упаковку всех необходимых модулей ядра (включая ваши сетевые драйверы) в initramfs. Это критически важно, потому что initramfs загружается до монтирования корневой файловой системы, и он должен содержать драйверы для важного оборудования, такого как сетевые интерфейсы.

  3. Установка проприетарных драйверов: Команда ubuntu-drivers autoinstall в основном обрабатывает графические драйверы (особенно NVIDIA) и не напрямую устраняет сетевые проблемы. Однако, если ваша система потеряла несколько драйверов во время обновления ядра, это гарантирует, что все проприетарные драйверы установлены правильно.

  4. Перезагрузка: Это загружает новое ядро с правильно настроенным initramfs, восстанавливая сетевое подключение.

После перезагрузки ваше сетевое подключение должно быть восстановлено. Вы можете проверить это, снова запустив ifconfig или ip a, чтобы увидеть ваши сетевые интерфейсы с назначенными IP-адресами. Если вам нужно проверить версию Ubuntu для обеспечения совместимости, доступно несколько методов.

Если вы работаете с сервером и вам нужно настроить сетевые параметры после восстановления подключения, возможно, вам будет полезно наше руководство по изменению статического IP-адреса в Ubuntu Server для дальнейшей настройки сети.

Очень хорошо, Борат!

Полезные ссылки