[make-initrd] Network-Manager

Michael A. Kangin mak at complife.ru
Wed May 1 17:32:00 MSK 2019


On 04/30/2019 09:21 PM, Alexey Gladkov wrote:

>>> Да, даже в пропагаторе убирали похожий баг. stage2 поднимает сеть с
>>> чистого листа. Фича network должна уметь перед переходом в stage2
>>> опускать всё ранее поднятое. Но тогда как быть с сетевой загрузкой? Либо
>>> stage2 должен быть заточен под такой stage1, либо мы сначала выкачиваем
>>> из сети всё необходимое, потом опускаем сеть и тогда уже переходим в
>>> stage2.
>>
>> При кешировании образов в памяти - никаких проблем, опускаем сеть и
>> пусть stage2 само разбирается.
>>
>> А вот без кеширования, с NFS это может быть действительно интересно.
>> Возможно, из initrd стоит сгенерировать неких конфигов и подложить в
>> rootfs для stage2. Проблема в том, что мы не можем быть уверенными, чем
>> именно stage2 пользуется - etcnet, NM, systemd-networkd, whatever...

По умолчанию нужно стараться сеть класть. Такое поведение и 
предпочтительнее, и будет покрывать подавляющее большинство сценариев 
использования.

Сеть нужно сохранять только в случаях, когда rootfs смонтировано 
непосредственно по сети (iSCSI (iBFT), NFS, допустим CIFS), или если 
образ rootfs не кешируется, и монтируется непосредственно с сетевой шары.

Это скорее всего будут довольно редкие случаи, и думается, пусть 
основная система сама разбирается, как ей обходиться с этими 
интерфейсами - попытка предугадать все возможные сценарии в initrd 
скорее всего будет трудоёмка и безблагодатна.

Как решать, нужно ли оставлять сеть - спец. параметром, или угадывать на 
основе используемых фич, видно будет. Может, фича может заказать это, 
выставив какую-то переменную.

То, что интерфейс выглядит unmanaged, может даже и правильно - начнёшь 
менеджить, рут отвалится. Из основной системы надо будет обязательно 
проверить, корректно ли продлевается DHCP-лиза, и нормально ли 
подхватываются переименованные интерфейсы.

> 
> Так может мне не париться и сразу использовать NM в initrd ?
> 
> FYI nm-initrd-generator(8)


А это "an early instance of NetworkManager" - оно сколько всего за собой 
потянет? И насколько пристойно будет выглядеть внутри initrd?
Я что-то боюсь этого монстра, а главное, пока не вижу чем бы это помогло 
решить проблемы с наследованием сети в основной системе.


More information about the Make-initrd mailing list