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

Антон Мидюков antohami at basealt.ru
Mon Sep 27 18:38:40 MSK 2021


23.09.2021 21:36, Alexey Gladkov пишет:
> On Thu, Sep 23, 2021 at 09:20:44PM +0700, Антон Мидюков wrote:
>>>> Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
>>>> установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
>>>> имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
>>>> можно и не подключиться (сетевой интерфейс подключен один).
>>>
>>> Переименовывает systemd или что-то около его. Насколько я помню на это
>>> влияет присутствие dmidecode.
>>>
>>> Это не моё дело, но инсталлер неправ, когда использует имена без
>>> последующей привязки имени к mac или businfo>> Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.
>>>
>>> initrd как раз ничего не переименовывает. Имя eth* каноническое.
>>>
>>
>> Это я знаю. Но проблема в том, что уже поднятый интерфейс не переименовывается в stage2.
>> Отсюда мысль, что нужно переименовать его ещё в initrd до его поднятия.
> 
> Я предлагал наоборот в stage2 добавить аналог цикла:
> 
> https://github.com/osboot/make-initrd/blob/master/features/network/data/lib/initrd/cmdline.d/network#L165-L175
> 

Возможно, это хорошая идея.
Но почему-то я не увидел /etc/udev/rules.d/60-persistent-net.rules в initrd.
Загружался с ip=dhcp stop=bootchain
Фича network уже должна была отработать. Сетевые интерфейсы настроены.

> или в системе их кто-то всё равно пытается переименовать ?
> 

Настроенные в initrd интерфейсы никто не переименовывает в stage2. Отсюда и проблема.
Мне кажется, нужно передавать правило udev в stage2, чтобы при установке скопировать в устанавливаемую
систему. Тогда проблема бы решилась.

-- 
С уважением, Антон Мидюков <antohami at basealt.ru>


More information about the Make-initrd mailing list