Failed to start Raise network interfaces.
Feb. 24th, 2018 10:38 amДа-да, у меня тоже. Сразу после апгрейда с 12.04 до 16.04. Да-да, с тем самым "любимым" systemd, через который абсолютно нихрена не видно. Впрочем, надо рассказать всё последовательно и понятно. :)
Есть комп с двумя сетевушками, одна из которых смотрит в интернет. После перезагрузки компа networking.service "недогружается", как говорит systemctl "loaded failed failed". journal -u networking красноречиво сообщает (специально сделал свеженький рестарт):
Но если посмотреть ifconfig, то как минимум lo, eth0 и eth1 подняты. И всё бы ничего, и всё бы работало если бы не желание выстроить цепочку загрузки по-правильному, через systemd. Раньше, кстати, я даже не обращал внимание на этот статут долгое время, но когда возникают какие-то проблемы, этот статус привлекает внимание: "а вдруг это тут что-то сломалось, а из-за ложно-положительного статуса failed я этого не могу увидеть". Ну и начал прописывать зависимости. И то transmission перестаёт подниматься, то tor, то privoxy, то тулза, заниающаяся отслеживанием для privoxy внешнего адреса (да, в инет ходим через роутер-файервол, а внутри серые адреса).
В принципе, порядок какой-то тоже должен быть. Нафиг нам privoxy, который прокладывает маршрут через tor, если tor0а ещё нет? transmission до рутрекера тоже не дотянется без privoxy, а значит и без tor-а. Адреса аннонсеров того-же трекера вписаны прямо hosts, но если что, то корректный ресолвинг можно получить через dnscrypt-proxy.
Короче говоря, пока не всё поднимается как нужно, придумал полу-ручные костыли.
Например, после перезагрузки всё загрузилось кроме privoxy. Есть пара скриптов, первый из которых показывает как поднялись сервисы из группы риска, а второй - лечит больной networking и доподнимает так и не поднявшееся.
И теперь основной вопрос - как лечить networking. "systemctl start networking" не помогает.
Обычно проблемы настигают со стороны eth0, но несколько раз "недоподняный" оказывался и eth1. До глубинной проблемы добраться пока не получилось, но "симптом" обнаружил. В /run/network генерятся файлы ifstate, ifstate.lo, ifstate.eth0 и ifstate.eth1. Если всё ок, то в ifstate прописаны все родные интерфейсы (lo=lo и т.д.), а в ifstate.lo просто "lo" и т.д. Но если интерфейс "недоподнят", то в файле ifstate.eth0 пусто, и в ifstate его строчки тоже нет. Но, по ifconfig, напомню, он уже есть и работает. Т.е. файлики-то тупо информационно-сервисные. Поэтому... вписываем в файлики недостающее, и после этого "systemctl start networking" показывает что networking таки поднялся.
Ну а раз лечащий скрипт стал создавать, то и вставил проверку - кто ещё не поднялся и соответственно всех разом "systemctl start $services" прошу поднять.
Гуглить я тоже пробовал, прошрутировал несколько десятков "рецептов" лечения "файлед ту старт" от старых-старых, до совсем свежих инциндентов, но как-то ни один под мою ситуацию не подошёл.
PS. И, конечно, до systemd всё прекрасно работало.
Есть комп с двумя сетевушками, одна из которых смотрит в интернет. После перезагрузки компа networking.service "недогружается", как говорит systemctl "loaded failed failed". journal -u networking красноречиво сообщает (специально сделал свеженький рестарт):
фев 23 20:55:23 my.home systemd[1]: Starting Raise network interfaces... фев 23 20:55:26 my.home ifup[998]: RTNETLINK answers: File exists фев 23 20:55:26 my.home ifup[998]: /sbin/ifup: waiting for lock on /run/network/ifstate.eth1 фев 23 20:55:27 my.home ifup[998]: Failed to bring up eth0. фев 23 20:55:27 my.home systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE фев 23 20:55:27 my.home systemd[1]: Failed to start Raise network interfaces. фев 23 20:55:27 my.home systemd[1]: networking.service: Unit entered failed state. фев 23 20:55:27 my.home systemd[1]: networking.service: Failed with result 'exit-code'.
Но если посмотреть ifconfig, то как минимум lo, eth0 и eth1 подняты. И всё бы ничего, и всё бы работало если бы не желание выстроить цепочку загрузки по-правильному, через systemd. Раньше, кстати, я даже не обращал внимание на этот статут долгое время, но когда возникают какие-то проблемы, этот статус привлекает внимание: "а вдруг это тут что-то сломалось, а из-за ложно-положительного статуса failed я этого не могу увидеть". Ну и начал прописывать зависимости. И то transmission перестаёт подниматься, то tor, то privoxy, то тулза, заниающаяся отслеживанием для privoxy внешнего адреса (да, в инет ходим через роутер-файервол, а внутри серые адреса).
В принципе, порядок какой-то тоже должен быть. Нафиг нам privoxy, который прокладывает маршрут через tor, если tor0а ещё нет? transmission до рутрекера тоже не дотянется без privoxy, а значит и без tor-а. Адреса аннонсеров того-же трекера вписаны прямо hosts, но если что, то корректный ресолвинг можно получить через dnscrypt-proxy.
Короче говоря, пока не всё поднимается как нужно, придумал полу-ручные костыли.
Например, после перезагрузки всё загрузилось кроме privoxy. Есть пара скриптов, первый из которых показывает как поднялись сервисы из группы риска, а второй - лечит больной networking и доподнимает так и не поднявшееся.
И теперь основной вопрос - как лечить networking. "systemctl start networking" не помогает.
Обычно проблемы настигают со стороны eth0, но несколько раз "недоподняный" оказывался и eth1. До глубинной проблемы добраться пока не получилось, но "симптом" обнаружил. В /run/network генерятся файлы ifstate, ifstate.lo, ifstate.eth0 и ifstate.eth1. Если всё ок, то в ifstate прописаны все родные интерфейсы (lo=lo и т.д.), а в ifstate.lo просто "lo" и т.д. Но если интерфейс "недоподнят", то в файле ifstate.eth0 пусто, и в ifstate его строчки тоже нет. Но, по ifconfig, напомню, он уже есть и работает. Т.е. файлики-то тупо информационно-сервисные. Поэтому... вписываем в файлики недостающее, и после этого "systemctl start networking" показывает что networking таки поднялся.
фев 23 20:58:22 my.home systemd[1]: Starting Raise network interfaces... фев 23 20:58:23 my.home systemd[1]: Started Raise network interfaces.
Ну а раз лечащий скрипт стал создавать, то и вставил проверку - кто ещё не поднялся и соответственно всех разом "systemctl start $services" прошу поднять.
Гуглить я тоже пробовал, прошрутировал несколько десятков "рецептов" лечения "файлед ту старт" от старых-старых, до совсем свежих инциндентов, но как-то ни один под мою ситуацию не подошёл.
PS. И, конечно, до systemd всё прекрасно работало.