[make-initrd] Добавить udev правило в initrd через initrd.mk

Arseny Maslennikov arseny at altlinux.org
Thu Sep 23 17:43:07 MSK 2021


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* каноническое.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.altlinux.org/pipermail/make-initrd/attachments/20210923/a3ea3dc0/attachment.bin>


More information about the Make-initrd mailing list