user_land:переименование_интерфейсов_без_ребута

Переименование сетевых интерфейсов без рестарта системы

Суть проблемы. Есть интерфейс с именем, допустим, eno1. Хотим задать ему имя lan111. В /etc/udev/rules.d/70-net-name-use-custom.rules вносим строку:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="7c:c2:55:48:ed:fa", NAME="lan111"

Если перебутить систему, получим правильный результат, т.е. правило udev правильное :) Если выполнить:

/sbin/ip link set eno1 down
/sbin/ip link set eno1 name lan111
/sbin/ip link set lan111 up

Результат получим, но это некрасиво – у нас же есть правильное правило udev!

Классические (нерабочие) решения, которыми забит Тырнет, предлагают сделать две команды:

udevadm control --reload-rules
udevadm trigger

Причина не работы даже понятна, в привиле указано ACTION==«add», а устройство у нас уже добавлено, и правило не отрабатывает. Уже раз десять наступал на эти грабли, и каждый раз тратил на поиск правильных ключей минут по 20. m(:-D Это и есть основная причина появления этой склеротички.

Привильное (рабочее) решение должно быть таким:

ip l s down dev eno1
udevadm control --reload-rules
udevadm trigger --action=add /sys/class/net/eno1
ip l l

Указание устройства можно опустить, но тогда будут затронуты все устройства, а это не всегда хорошо.

  • user_land/переименование_интерфейсов_без_ребута.txt
  • Последнее изменение: 2024-11-12 12:42
  • Andrew A. Sabitov