Не срабатывает конвертация /etc/iftab в /etc/udev/rules.d/70-persistent-net.rules при обновлении системы. Воспроизвелось на трёх разных машинах: # /lib/ifrename/iftab2rules Added 0 new rules to /etc/udev/rules.d/70-persistent-net.rules based on 2 lines from /etc/iftab WARNING: Automatic /etc/iftab -> /etc/udev/rules.d/70-persistent-net.rules conversion failed # cat /etc/iftab eth1 mac 00:07:e9:0a:46:72 eth0 mac 00:0e:a6:5c:01:a0
Содержимое /etc/iftab актуально?
Если 70-persistent-net.rules уже содержит результат конвертации, то iftab2rules будет сообщать "Added 0 new rules", поскольку добавить больше нечего.
Файл /etc/udev/rules.d/70-persistent-net.rules в обоих случаях пустой В одном случае - все интерфейсы в системе есть, но под другим именем: 2: alt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:07:e9:0a:46:72 brd ff:ff:ff:ff:ff:ff 3: maxnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0e:a6:5c:01:a0 brd ff:ff:ff:ff:ff:ff $ cat /etc/iftab eth1 mac 00:07:e9:0a:46:72 eth0 mac 00:0e:a6:5c:01:a0 В другом случае - интерфейсы есть, содержимое /etc/iftab полностью совпадает с реальными (переименованными с помощью iftab из /etc/net/iftab, который одинаковый с /etc/iftab) именами интерфейсов в системе: # cat /etc/iftab maxnet mac 00:02:b3:4c:f1:8b elektron mac 00:11:d8:c2:48:0b eleks mac 00:02:b3:4c:f1:ac 2: maxnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:02:b3:4c:f1:8b brd ff:ff:ff:ff:ff:ff 3: eleks: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:02:b3:4c:f1:ac brd ff:ff:ff:ff:ff:ff 4: elektron: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100 link/ether 00:11:d8:c2:48:0b brd ff:ff:ff:ff:ff:ff # /lib/ifrename/iftab2rules Added 0 new rules to /etc/udev/rules.d/70-persistent-net.rules based on 3 lines from /etc/iftab WARNING: Automatic /etc/iftab -> /etc/udev/rules.d/70-persistent-net.rules conversion failed
Насколько я понял, преобразовалка не преобразует записи для интерфейсов с кастомизированными именами (не eth*, не wlan* и т.п.). Записи в persistent-rules, тем не менее, будут созданы, но при перезагрузке и с обычными именами. Кастомизацию имён после этого придётся провести снова.
s/persistent-rules/persistent-net.rules/
(В ответ на комментарий №3) > В одном случае - все интерфейсы в системе есть, но под другим именем: > 2: alt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP > qlen 1000 > link/ether 00:07:e9:0a:46:72 brd ff:ff:ff:ff:ff:ff > 3: maxnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP > qlen 1000 > link/ether 00:0e:a6:5c:01:a0 brd ff:ff:ff:ff:ff:ff > $ cat /etc/iftab > eth1 mac 00:07:e9:0a:46:72 > eth0 mac 00:0e:a6:5c:01:a0 И откуда в таком случае берутся нестандартные имена интерфейсов - из /etc/net/iftab? Зачем тогда в этой системе нужен /etc/iftab или /etc/udev/rules.d/70-persistent-net.rules? (В ответ на комментарий №4) > Насколько я понял, преобразовалка не преобразует записи для интерфейсов с > кастомизированными именами (не eth*, не wlan* и т.п.). Действительно, при повторном вызове udevtrigger из /lib/ifrename/iftab2rules правила не сработают, если интерфейсы были переименованы ранее. Причём исправить ситуацию до перезагрузки вряд ли возможно, поскольку в правило должно быть вписано базовое имя интерфейса, назначенное ядром (KERNEL=="eth*" и т.п.), которое в момент установки нового пакета в данном случае уже потеряно. По этой же причине скрипт может сработать неправильно, если ранее производилось переименование интерфейса таким образом, что новое имя похоже на базовое имя, назначаемое ядром, но не совпадает с реально используемым при загрузке драйвера (типа переименования athN в wlanN). Возможно, для правильной работы преобразование придётся откладывать до следующей перезагрузки (например, передавая желаемое имя интерфейса через переменную INTERFACE_NAME).
В этом случае нестандартные имена интерфейсов берутся из /etc/net/iftab Вопрос об использовании /etc/net/iftab вылез после того, как переименование с помощью /etc/iftab было сломано (в случае наличия бриджа). Хотел вернуться обратно (на системный механизм переименования интерфейсов), но видно - не судьба. Перегружать сервер ради эксперимента не могу.
(In reply to comment #7) > В этом случае нестандартные имена интерфейсов берутся из > /etc/net/iftab Автоматическая конвертация нестандартных имён интерфейсов не реализована.
(In reply to comment #8) > (In reply to comment #7) > > В этом случае нестандартные имена интерфейсов берутся из > > /etc/net/iftab > > Автоматическая конвертация нестандартных имён интерфейсов не реализована. И, скорее всего, уже не будет реализована.