On Thu, Sep 23, 2021 at 04:05:46PM +0200, Alexey Gladkov wrote: > On Thu, Sep 23, 2021 at 08:37:08PM +0700, Антон Мидюков wrote: > > Здравствуйте > > > > Подскажите, что нужно прописать в initrd.mk, чтобы добавить udev правило в initrd? > > Хочу ради эксперимента добавить /lib/udev/rules.d/80-net-setup-link.rules. > > Это можно сделать двумя способами. Либо с помощью фичи add-udev-rules, > которая активна по умолчанию: > > PUT_UDEV_RULES += *-net-setup-link.rules > > либо просто: > > PUT_FILES += /lib/udev/rules.d/80-net-setup-link.rules > > > Кажется, именно оно отвечает за то, что сетевые интерфейсы переименовываются в > > в enp0s8 подобные названия. > > Это не оно. > > > Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой > > установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе > > имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже > > можно и не подключиться (сетевой интерфейс подключен один). > > Переименовывает systemd или что-то около его. Переименовывает сам udevd, т. е. его встроеннный компонент: https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_setup_link.c https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_id.c >> % cat /lib/udev/rules.d/80-net-setup-link.rules >> # do not edit this file, it will be overwritten on update >> >> SUBSYSTEM!="net", GOTO="net_setup_link_end" >> >> IMPORT{builtin}="path_id" >> >> ACTION=="remove", GOTO="net_setup_link_end" >> >> IMPORT{builtin}="net_setup_link" ^^^^^^^^^^^^^^ Вот здесь этот компонент и вступает в игру. >> >> NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}" >> >> LABEL="net_setup_link_end" > Насколько я помню на это > влияет присутствие dmidecode. > > Это не моё дело, но инсталлер неправ, когда использует имена без > последующей привязки имени к mac или businfo. > > > Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса. > > initrd как раз ничего не переименовывает. Имя eth* каноническое.