Самое на наш взгляд неприятное, чем грозит повальный переход на systemd, это отсутствием выбора! Откройте Gentoo Handbook и вы увидите всё богатство выбора, которое предоставляет вам Linux: выбор системной службы журналирования, выбор демона cron, выбор dhcp-клиента, выбор загрузчика и т.д. Пробуйте, сравнивайте, оценивайте по вашим задачам и выбирайте для себя лучшие решения!
А теперь давайте посмотрим, что нам предлагает интегрированный в состав systemd udev. Возможно вы сталкивались с такой вещью, как изменение имён сетевых интерфейсов после обновления ядра “eth0 <-> eth1”. Это может происходить по разным причинам, например для двух карт стал использоваться один драйвер, либо его логика изменилась. Если ваш сервер имеет более одной сетевой карты, случайное переименование может сделать сервер недоступным! В своё время, чтобы не наступить на эти грабли дважды, мы просто отключили вторую сетевую карту в Bios.
Позже с приходом Udev появилось неплохое решение, вы могли чётко зафиксировать имена eth0 и eth1 по мак-адресу в файле настроек /etc/udev/rules.d/70-persistent-net.rules. Переименование работало корректно даже если ядро использовало те же имена. В этом случае Udev переименовывал примерно так: eth1 -> eth125, eth0 -> eth126, eth125 -> eth0 и eth126 -> eth1. И всё работало ровно до того момента пока Udev не начали прибивать гвоздями к systemd, выпиливая идеологически ненужный функционал. В новых версиях Udev переименование работает только в том случае, если оно не конфликтует с уже присвоенными ядром сетевыми именами интерфейсов. Изменения коснулись и 70-persistent-net.rules, который больше не создаётся по умолчанию.
Около двух месяцев назад мы проводили опрос о предпочтениях пользователей. В опросе участвовало 220 человек. Из них 76% опрошенных отдали предпочтение классическим именам “eth0” и только 6% новым “enp0s25”. Мы задались вопросом о том, можно ли вернуть классические имена. Вспомнили предложение пользователей мигрировать на eudev. К этому времени уже были выполнены успешные переходы на eudev в других дистрибутивах. Eudev на тот момент использовал как раз классические имена по умолчанию и обладал всем тем функционалом, который был удалён в Udev. Казалось бы вот оно счастье.
Но вышел Eudev 3.0, главной целью которого похоже ставят отсутствие зависимостей от systemd. В остальном, к сожалению, он остаётся всё тем же клоном Udev. Похоже разработчики просто смирились, выбрав меньшее зло. У себя вы можете по прежнему использовать классические имена несколькими способами: передачей параметра net.ifnames=0 ядру при загрузке или удалением скрипта отвечающего за именование сетевых интерфейсов /lib/udev/rules.d/80-net-setup-link.rules. Потребуется так же удалить готовые правила /etc/udev/rules.d/70-persistent-net.rules, либо вписать классические имена. Если сетевая карта одна, проблем никаких не будет.
Восстановление и поддержка правил переименования интерфейсов потребует дополнительных временных затрат. Всё же это не наша цель. Скорей всего в итоге все дистрибутивы Linux будут использовать новые имена. То ли ещё будет.
Сегодняшним обновлением портежей 30-я ревизия (/var/lib/layman/calculate/profiles/templates/3.3/6_ac_update_sync/revision/30-net_trigger) создаст /etc/udev/rules.d/70-persistent-net.rules, если он у вас не создан. Обратите внимание, если у вас несколько сетевых карт, вы используете классические имена сетевых интерфейсов “eth0” и вы используете openrc для настройки сети, с переходом на eudev 3.0 переименование может не сработать! Дайте именам свои названия, отредактировав файл 70-persistent-net.rules, после чего проверьте ваши настройки сети /etc/conf.d/net, наличие символических ссылок в /etc/init.d/net.XXX, а так же другие ваши настройки, где используются сетевые имена, например маршрутизатора, файрвола.