Make-initrd development discussion
 help / color / mirror / Atom feed
* [make-initrd] CLB 2
@ 2019-04-29 23:34 Michael A. Kangin
  2019-04-30 12:35 ` Leonid Krivoshein
  2019-04-30 12:48 ` [make-initrd] CLB 2 Leonid Krivoshein
  0 siblings, 2 replies; 7+ messages in thread
From: Michael A. Kangin @ 2019-04-29 23:34 UTC (permalink / raw)
  To: make-initrd

Ура, у нас есть первая адаптация CLB под MI2:
http://mak.complife.ru/MI2/clb.cpio

Пока реализовано в виде дополнительной initramfs, совместимо с текущим 
initrd из master.

Это преальфа, PoC и всё такое, но уже сейчас с его помощью можно 
полностью загрузить машину по сети.

В частности, замечательно загружается squashfs, выдранный из 
regular-rescue: http://mak.complife.ru/MI2/rescue.squashfs

Или, что приятнее, ливка из regular-xfce:
http://mak.complife.ru/MI2/live.squashfs

Леонид, что вы еще хотели от фичи liveboot?



примерный initrd.mk:
AUTODETECT = all
FEATURES += network
DISABLE_GUESS += ucode root
MODULES_ADD += overlay squashfs loop
(готовый initrd: http://mak.complife.ru/MI2/initrd-5.0.6-un-def-alt1.img)


примерная cmdline:
ip=eth0:dhcp4 clb_root=http://192.168.222.1/alt/rescue.squashfs


Из замеченных общих минусов - перед переключением в общую систему стоит 
полностью гасить сеть. Иначе эффекты будут самые разнообразные - NM 
считает такой интерфейс unmanaged и не поднимает на нём подключение, 
rescue судя по всему вообще не инициализирует сеть (resolv.conf у него 
там очень весёлый внутри)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] CLB 2
  2019-04-29 23:34 [make-initrd] CLB 2 Michael A. Kangin
@ 2019-04-30 12:35 ` Leonid Krivoshein
  2019-04-30 13:04   ` Michael A. Kangin
  2019-04-30 12:48 ` [make-initrd] CLB 2 Leonid Krivoshein
  1 sibling, 1 reply; 7+ messages in thread
From: Leonid Krivoshein @ 2019-04-30 12:35 UTC (permalink / raw)
  To: make-initrd


30.04.2019 02:34, Michael A. Kangin пишет:
> Ура, у нас есть первая адаптация CLB под MI2:
> http://mak.complife.ru/MI2/clb.cpio
>

Поздравляю!


> Пока реализовано в виде дополнительной initramfs, совместимо с текущим 
> initrd из master.
>
> Это преальфа, PoC и всё такое, но уже сейчас с его помощью можно 
> полностью загрузить машину по сети.
>
> В частности, замечательно загружается squashfs, выдранный из 
> regular-rescue: http://mak.complife.ru/MI2/rescue.squashfs
>
> Или, что приятнее, ливка из regular-xfce:
> http://mak.complife.ru/MI2/live.squashfs
>
> Леонид, что вы еще хотели от фичи liveboot?
>

Вообще хотелось бы загрузки с флэшек, с CD/DVD и по сети в объёме 
пропагатора, а для начала хотя бы один из протоколов реализовать, типа 
NFS. И мы говорили, что это будет штатной фишкой make-initrd. В любом 
случае нужно время, чтобы посмотреть код и въехать. Мне это интересно в 
любом случае. Возможно, Алексей хотел бы это реализовать как-то иначе.

>
>
> примерный initrd.mk:
> AUTODETECT = all
> FEATURES += network
> DISABLE_GUESS += ucode root
> MODULES_ADD += overlay squashfs loop
> (готовый initrd: http://mak.complife.ru/MI2/initrd-5.0.6-un-def-alt1.img)
>
>
> примерная cmdline:
> ip=eth0:dhcp4 clb_root=http://192.168.222.1/alt/rescue.squashfs
>
>
> Из замеченных общих минусов - перед переключением в общую систему 
> стоит полностью гасить сеть. Иначе эффекты будут самые разнообразные - 
> NM считает такой интерфейс unmanaged и не поднимает на нём 
> подключение, rescue судя по всему вообще не инициализирует сеть 
> (resolv.conf у него там очень весёлый внутри)

Да, даже в пропагаторе убирали похожий баг. stage2 поднимает сеть с 
чистого листа. Фича network должна уметь перед переходом в stage2 
опускать всё ранее поднятое. Но тогда как быть с сетевой загрузкой? Либо 
stage2 должен быть заточен под такой stage1, либо мы сначала выкачиваем 
из сети всё необходимое, потом опускаем сеть и тогда уже переходим в stage2.


-- 
Best regards,
Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] CLB 2
  2019-04-29 23:34 [make-initrd] CLB 2 Michael A. Kangin
  2019-04-30 12:35 ` Leonid Krivoshein
@ 2019-04-30 12:48 ` Leonid Krivoshein
  1 sibling, 0 replies; 7+ messages in thread
From: Leonid Krivoshein @ 2019-04-30 12:48 UTC (permalink / raw)
  To: make-initrd


30.04.2019 02:34, Michael A. Kangin пишет:
> Леонид, что вы еще хотели от фичи liveboot?
>

Перечитал ещё раз на ВиКи про Colaboot. Концептуально -- да, очень 
близко и даже интересно. Нужно время, чтобы пощупать и разобраться.


-- 
Best regards,
Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] CLB 2
  2019-04-30 12:35 ` Leonid Krivoshein
@ 2019-04-30 13:04   ` Michael A. Kangin
  2019-04-30 19:21     ` [make-initrd] Network-Manager (was: Re: CLB 2) Alexey Gladkov
  0 siblings, 1 reply; 7+ messages in thread
From: Michael A. Kangin @ 2019-04-30 13:04 UTC (permalink / raw)
  To: make-initrd

On 04/30/2019 02:35 PM, Leonid Krivoshein wrote:

>> Леонид, что вы еще хотели от фичи liveboot?
> Вообще хотелось бы загрузки с флэшек, с CD/DVD и по сети 

Это поддерживается, при необходимых модулях
Можно обращаться к устройствам по их именам в /dev, по UUID и LABEL

> в объёме пропагатора, 

там какой-то специальный объём или требования?

> а для начала хотя бы один из протоколов реализовать, типа 
> NFS. 

Для NFSа нужно будет немного дописать функциональность (когда понятно 
будет, как фичи в ряд выстраиваться должны).
Прочие протоколы (http/https/tftp) должны работать и сейчас.

curl там еще imap поддерживает, но я не пробовал %)

Мне кажется, еще интересным было бы поддерживать iSCSI, но там вроде 
ничего специального не требуется - блочное устройство как блочное 
устройство...

CIFS, надеюсь, в initrd не нужен?


> И мы говорили, что это будет штатной фишкой make-initrd. В любом 
> случае нужно время, чтобы посмотреть код и въехать. Мне это интересно в 
> любом случае. Возможно, Алексей хотел бы это реализовать как-то иначе.

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

>> Из замеченных общих минусов - перед переключением в общую систему 
>> стоит полностью гасить сеть. Иначе эффекты будут самые разнообразные - 
>> NM считает такой интерфейс unmanaged и не поднимает на нём 
>> подключение, rescue судя по всему вообще не инициализирует сеть 
>> (resolv.conf у него там очень весёлый внутри)
> 
> Да, даже в пропагаторе убирали похожий баг. stage2 поднимает сеть с 
> чистого листа. Фича network должна уметь перед переходом в stage2 
> опускать всё ранее поднятое. Но тогда как быть с сетевой загрузкой? Либо 
> stage2 должен быть заточен под такой stage1, либо мы сначала выкачиваем 
> из сети всё необходимое, потом опускаем сеть и тогда уже переходим в 
> stage2.

При кешировании образов в памяти - никаких проблем, опускаем сеть и 
пусть stage2 само разбирается.

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


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [make-initrd] Network-Manager (was: Re:  CLB 2)
  2019-04-30 13:04   ` Michael A. Kangin
@ 2019-04-30 19:21     ` Alexey Gladkov
  2019-04-30 22:31       ` [make-initrd] Network-Manager Leonid Krivoshein
  2019-05-01 14:32       ` Michael A. Kangin
  0 siblings, 2 replies; 7+ messages in thread
From: Alexey Gladkov @ 2019-04-30 19:21 UTC (permalink / raw)
  To: make-initrd

On Tue, Apr 30, 2019 at 03:04:12PM +0200, Michael A. Kangin wrote:
> > Да, даже в пропагаторе убирали похожий баг. stage2 поднимает сеть с 
> > чистого листа. Фича network должна уметь перед переходом в stage2 
> > опускать всё ранее поднятое. Но тогда как быть с сетевой загрузкой? Либо 
> > stage2 должен быть заточен под такой stage1, либо мы сначала выкачиваем 
> > из сети всё необходимое, потом опускаем сеть и тогда уже переходим в 
> > stage2.
> 
> При кешировании образов в памяти - никаких проблем, опускаем сеть и 
> пусть stage2 само разбирается.
> 
> А вот без кеширования, с NFS это может быть действительно интересно.
> Возможно, из initrd стоит сгенерировать неких конфигов и подложить в 
> rootfs для stage2. Проблема в том, что мы не можем быть уверенными, чем 
> именно stage2 пользуется - etcnet, NM, systemd-networkd, whatever...

Так может мне не париться и сразу использовать NM в initrd ?

Я сделал фичу network поскольку не хотел писать конфигуратор сети. Мне
нужна была замена ipconfig.

FYI nm-initrd-generator(8)

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] Network-Manager
  2019-04-30 19:21     ` [make-initrd] Network-Manager (was: Re: CLB 2) Alexey Gladkov
@ 2019-04-30 22:31       ` Leonid Krivoshein
  2019-05-01 14:32       ` Michael A. Kangin
  1 sibling, 0 replies; 7+ messages in thread
From: Leonid Krivoshein @ 2019-04-30 22:31 UTC (permalink / raw)
  To: make-initrd


30.04.2019 22:21, Alexey Gladkov пишет:
> On Tue, Apr 30, 2019 at 03:04:12PM +0200, Michael A. Kangin wrote:
>>> Да, даже в пропагаторе убирали похожий баг. stage2 поднимает сеть с
>>> чистого листа. Фича network должна уметь перед переходом в stage2
>>> опускать всё ранее поднятое. Но тогда как быть с сетевой загрузкой? Либо
>>> stage2 должен быть заточен под такой stage1, либо мы сначала выкачиваем
>>> из сети всё необходимое, потом опускаем сеть и тогда уже переходим в
>>> stage2.
>> При кешировании образов в памяти - никаких проблем, опускаем сеть и
>> пусть stage2 само разбирается.
>>
>> А вот без кеширования, с NFS это может быть действительно интересно.
>> Возможно, из initrd стоит сгенерировать неких конфигов и подложить в
>> rootfs для stage2. Проблема в том, что мы не можем быть уверенными, чем
>> именно stage2 пользуется - etcnet, NM, systemd-networkd, whatever...
> Так может мне не париться и сразу использовать NM в initrd ?

NM громоздок, только для простых случаев и вообще только для десктопов. 
Etcnet в нынешнем виде тоже не годится. Но в природе существует другая 
его реализация by sem@ и для dual-stack dhcp можно подтянуть именно её. 
Хотя наверное такие навороты в initrd пока излишни. Жаль, нет поддержки 
виртуальных фич, которые умели бы единообразно понимать cmdline и 
предоставлять одно и то же, типа network. Тогда базовая реализация 
network by legion@ в initrd покрывала бы 95% общих потребностей, и 
отказываться от неё совершенно незачем, к тому же в дополнение к этой 
базовой реализации мы хотели со временем подтянуть диалоги 
конфигурирования сети.


> Я сделал фичу network поскольку не хотел писать конфигуратор сети. Мне
> нужна была замена ipconfig.
>
> FYI nm-initrd-generator(8)
>

-- 
Best regards,
Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [make-initrd] Network-Manager
  2019-04-30 19:21     ` [make-initrd] Network-Manager (was: Re: CLB 2) Alexey Gladkov
  2019-04-30 22:31       ` [make-initrd] Network-Manager Leonid Krivoshein
@ 2019-05-01 14:32       ` Michael A. Kangin
  1 sibling, 0 replies; 7+ messages in thread
From: Michael A. Kangin @ 2019-05-01 14:32 UTC (permalink / raw)
  To: make-initrd

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?
Я что-то боюсь этого монстра, а главное, пока не вижу чем бы это помогло 
решить проблемы с наследованием сети в основной системе.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-05-01 14:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-29 23:34 [make-initrd] CLB 2 Michael A. Kangin
2019-04-30 12:35 ` Leonid Krivoshein
2019-04-30 13:04   ` Michael A. Kangin
2019-04-30 19:21     ` [make-initrd] Network-Manager (was: Re: CLB 2) Alexey Gladkov
2019-04-30 22:31       ` [make-initrd] Network-Manager Leonid Krivoshein
2019-05-01 14:32       ` Michael A. Kangin
2019-04-30 12:48 ` [make-initrd] CLB 2 Leonid Krivoshein

Make-initrd development discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \
		make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com
	public-inbox-index make-initrd

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.make-initrd


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git