Вопрос или проблема
Моя система работает несколько лет, прошла через пару обновлений, которые включали ядра, но последнее обновление было 6 месяцев назад. Когда я сделал обновление и перезагрузился, система зависла в аварийном режиме, заявляя, что не удалось поднять сетевые интерфейсы. Однако, когда я нажимаю возврат, чтобы войти в режим обслуживания, сеть работает, разрешение имен и всё остальное.
Использую Netplan с networkd для установки статического IP для eth0. Служба NetworkManager не загружена, работает serviced.networkd.
SSHD не запускается вручную, поэтому у меня нет хорошего способа получения логов, но я постараюсь изо всех сил. Ищу идеи, почему сеть, похоже, работает, но это единственная ошибка прямо перед тем, как она уходит в аварийный режим.
Хорошо, ура ChatGPT с третьей попытки. Он предложил, что у меня могут быть конфликтующие конфигурации, и я обнаружил, что мой файл /etc/network/interfaces всё еще существует, так что я его выбросил. Перезагрузился, и аварийного режима нет.
Я смутно помню день, когда я перешёл на NetPlan с устаревшего способа делать вещи, наверное, какое-то обновление, которое я сделал на этот раз, действительно требует, чтобы я придерживался одного метода?
Ответ или решение
Когда вы столкнулись с проблемой выхода в режим экстренной загрузки на сервере Ubuntu 22.04 и ошибкой «Не удалось поднять сетевые интерфейсы», но при этом сеть работала корректно, проблема могла быть связана с конфликтующими конфигурациями сетевых настроек.
Причины проблемы
-
Конфликт конфигурационных файлов: Ваша система неявно использует несколько методов для настройки сети. В этом случае, если у вас все еще существует файл
/etc/network/interfaces
, который не будет учитываться в manager-менеджерах, как Netplan, это может привести к конфликтам. Netplan ожидает управления сетью только через свои файлы конфигурации, обычно размещаемые в директории/etc/netplan/
. -
Проблемы с системными сервисами: При отсутствии конфликта сетевых конфигураций важно убедиться, что службы, связанные с сетью, работают корректно. Служба
NetworkManager
не загружена на сервере с использованиемnetworkd
, и попытка доступа к сетевым интерфейсам может завершиться с ошибками из-за неправильно настроенной службы.
Решение проблемы
Для устранения проблемы с загрузкой можно выполнить следующие шаги:
-
Проверка конфигурации сетевых настроек: Убедитесь, что у вас нет конфликтующих конфигураций в файле
/etc/network/interfaces
. Если вы используете Netplan, лучше удалить этот файл или убедиться, что он полностью соответствует вашим нуждам. Если этот файл больше не нужен, удалить его — правильное решение.sudo rm /etc/network/interfaces
-
Перезапуск сетевых служб: После удаления или корректировки конфигурационного файла перезапустите соответствующие службы и примените настройки Netplan:
sudo netplan apply
-
Проверка состояния службы SSH: Если служба SSH не запускается, важно также убедиться в том, что конфигурации для SSH корректны и служба загружена. Вы можете проверить статус SSH с помощью команды:
sudo systemctl status sshd
-
Просмотр логов: Логи системы могут дать подсказки о том, что пошло не так. Вы можете проверить логи в
/var/log/syslog
, чтобы узнать больше о причинах проблем с сетью:sudo less /var/log/syslog
-
Обратите внимание на другие изменения: Если последний раз вы обновляли систему 6 месяцев назад, следует помнить, что в новых версиях пакетов могут быть изменения, требующие адаптации ваших конфигураций под новые условия работы.
Заключение
Проблемы с выявлением сетевых интерфейсов могут означать более серьезные конфликты в конфигурациях сетевого оборудования на уровне системы. Переход на единую технологию управления сетью (Netplan) с исправлением конфигурационных конфликтов должен устранить такие проблемы. В твоем случае, как выяснилось, удаление устаревшего файла конфигурации interfaces
и переключение на Netplan хорошо сработали.
Если у вас возникнут дополнительные проблемы, рекомендуем проводить их дальнейший анализ, фиксируя изменения в конфигурациях и наблюдения во время диагностики.