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 после обновлений ядра, особенно на системах с определенным сетевым оборудованием, требующим дополнительных модулей ядра.
Почему это происходит
- Модули ядра специфичны для версии: Каждая версия ядра требует собственного набора модулей драйверов
- Initramfs может быть неполным: Изначальная файловая система RAM (initramfs), загружаемая при загрузке, может не содержать всех необходимых сетевых драйверов
- Отсутствует пакет с дополнительными модулями: Пакет
linux-modules-extraдля новой версии ядра может не быть автоматически установлен
Как работает решение
Команды выше решают проблему, следующим образом:
-
Установка дополнительных модулей ядра: Пакет
linux-modules-extra-<version>-genericсодержит дополнительные модули ядра, включая многие сетевые драйверы, которые не включены в базовый пакет ядра. Без этих модулей ваше сетевое оборудование не будет распознано. -
Пересборка initramfs: Команда
update-initramfs -uобеспечивает упаковку всех необходимых модулей ядра (включая ваши сетевые драйверы) в initramfs. Это критически важно, потому что initramfs загружается до монтирования корневой файловой системы, и он должен содержать драйверы для важного оборудования, такого как сетевые интерфейсы. -
Установка проприетарных драйверов: Команда
ubuntu-drivers autoinstallв основном обрабатывает графические драйверы (особенно NVIDIA) и не напрямую устраняет сетевые проблемы. Однако, если ваша система потеряла несколько драйверов во время обновления ядра, это гарантирует, что все проприетарные драйверы установлены правильно. -
Перезагрузка: Это загружает новое ядро с правильно настроенным initramfs, восстанавливая сетевое подключение.
После перезагрузки ваше сетевое подключение должно быть восстановлено. Вы можете проверить это, снова запустив ifconfig или ip a, чтобы увидеть ваши сетевые интерфейсы с назначенными IP-адресами. Если вам нужно проверить версию Ubuntu для обеспечения совместимости, доступно несколько методов.
Если вы работаете с сервером и вам нужно настроить сетевые параметры после восстановления подключения, возможно, вам будет полезно наше руководство по изменению статического IP-адреса в Ubuntu Server для дальнейшей настройки сети.
