Make-initrd development discussion
 help / color / mirror / Atom feed
* [make-initrd] Установка окружения в stage1 для передачи в stage2
@ 2021-04-03 11:05 Leonid Krivoshein
  2021-04-03 11:48 ` Alexey Gladkov
  0 siblings, 1 reply; 5+ messages in thread
From: Leonid Krivoshein @ 2021-04-03 11:05 UTC (permalink / raw)
  To: make-initrd

Алексей, привет!


Подскажи, пожалуйста, правильно ли я пониманию, что для передачи 
переменной окружения в stage2 нужно сделать:

printf '%s="%s"\n' "$name" "$value" >> /.initrd/kernenv

и обобщённой функции, типа add_to_env(), пока не предусмотрено?



-- 
Best regards,
Leonid Krivoshein.



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

* Re: [make-initrd] Установка окружения в stage1 для передачи в stage2
  2021-04-03 11:05 [make-initrd] Установка окружения в stage1 для передачи в stage2 Leonid Krivoshein
@ 2021-04-03 11:48 ` Alexey Gladkov
  2021-04-03 12:24   ` Leonid Krivoshein
  0 siblings, 1 reply; 5+ messages in thread
From: Alexey Gladkov @ 2021-04-03 11:48 UTC (permalink / raw)
  To: make-initrd

On Sat, Apr 03, 2021 at 02:05:51PM +0300, Leonid Krivoshein wrote:
> Алексей, привет!
> 
> 
> Подскажи, пожалуйста, правильно ли я пониманию, что для передачи переменной
> окружения в stage2 нужно сделать:
> 
> printf '%s="%s"\n' "$name" "$value" >> /.initrd/kernenv

Если под stage2 имеется в виду то, что запустит initrd после себя, то да.
Только тогда уж '%s=%q\n'.

> и обобщённой функции, типа add_to_env(), пока не предусмотрено?

Пока потребителей не было я такого не писал. Не уверен нужна ли отдельная
функция.

-- 
Rgrds, legion



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

* Re: [make-initrd] Установка окружения в stage1 для передачи в stage2
  2021-04-03 11:48 ` Alexey Gladkov
@ 2021-04-03 12:24   ` Leonid Krivoshein
  2021-04-03 13:34     ` Alexey Gladkov
  0 siblings, 1 reply; 5+ messages in thread
From: Leonid Krivoshein @ 2021-04-03 12:24 UTC (permalink / raw)
  To: make-initrd


03.04.2021 14:48, Alexey Gladkov пишет:
> On Sat, Apr 03, 2021 at 02:05:51PM +0300, Leonid Krivoshein wrote:
>> Алексей, привет!
>>
>>
>> Подскажи, пожалуйста, правильно ли я пониманию, что для передачи переменной
>> окружения в stage2 нужно сделать:
>>
>> printf '%s="%s"\n' "$name" "$value" >> /.initrd/kernenv
> Если под stage2 имеется в виду то, что запустит initrd после себя, то да.
> Только тогда уж '%s=%q\n'.

Понял, большое спасибо!


>> и обобщённой функции, типа add_to_env(), пока не предусмотрено?
> Пока потребителей не было я такого не писал. Не уверен нужна ли отдельная
> функция.

Не возражаешь, если добавлю тогда в pipeline_sh_functions?

Дело в том, что propagator оставлял после себя определённое окружение, 
которое как-то используется в stage2. Мне не нравится, что он передавал 
даже пароли на FTP через него, я даже не смог пока найти клиента для 
PIGGYBACK=1 -- это используется, когда в stage1 был смонтирован каталог 
по NFS или CIFS, и при выходе всё начисто отмонтируется. В основном же 
там экспортируется то, что было передано через командную строку, типа 
метода, сервера, каталога, итд. В общем, если уж делать совместимость со 
stage2, то сразу правильно надо её реализовать.


-- 
Best regards,
Leonid Krivoshein.



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

* Re: [make-initrd] Установка окружения в stage1 для передачи в stage2
  2021-04-03 12:24   ` Leonid Krivoshein
@ 2021-04-03 13:34     ` Alexey Gladkov
  2021-04-03 13:52       ` Leonid Krivoshein
  0 siblings, 1 reply; 5+ messages in thread
From: Alexey Gladkov @ 2021-04-03 13:34 UTC (permalink / raw)
  To: make-initrd

On Sat, Apr 03, 2021 at 03:24:26PM +0300, Leonid Krivoshein wrote:
> > > и обобщённой функции, типа add_to_env(), пока не предусмотрено?
> > Пока потребителей не было я такого не писал. Не уверен нужна ли отдельная
> > функция.
> 
> Не возражаешь, если добавлю тогда в pipeline_sh_functions?

Я не против, но где ты хочешь эту функцию использовать ?

> Дело в том, что propagator оставлял после себя определённое окружение,
> которое как-то используется в stage2. Мне не нравится, что он передавал даже
> пароли на FTP через него, я даже не смог пока найти клиента для PIGGYBACK=1
> -- это используется, когда в stage1 был смонтирован каталог по NFS или CIFS,
> и при выходе всё начисто отмонтируется. В основном же там экспортируется то,
> что было передано через командную строку, типа метода, сервера, каталога,
> итд. В общем, если уж делать совместимость со stage2, то сразу правильно
> надо её реализовать.

Это не моё дело, но я бы посоветовал вам не реализовывать сразу весь
функционал propagator. Реализуйте сначала то, чем пользуетесь.

-- 
Rgrds, legion



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

* Re: [make-initrd] Установка окружения в stage1 для передачи в stage2
  2021-04-03 13:34     ` Alexey Gladkov
@ 2021-04-03 13:52       ` Leonid Krivoshein
  0 siblings, 0 replies; 5+ messages in thread
From: Leonid Krivoshein @ 2021-04-03 13:52 UTC (permalink / raw)
  To: make-initrd


03.04.2021 16:34, Alexey Gladkov пишет:
> On Sat, Apr 03, 2021 at 03:24:26PM +0300, Leonid Krivoshein wrote:
>>>> и обобщённой функции, типа add_to_env(), пока не предусмотрено?
>>> Пока потребителей не было я такого не писал. Не уверен нужна ли отдельная
>>> функция.
>> Не возражаешь, если добавлю тогда в pipeline_sh_functions?
> Я не против, но где ты хочешь эту функцию использовать ?

В стадиях pipeline -- вместо waitdev и после него.

После -- в liveboot, который заменит пропагатор и init-bottom из 
make-initrd-propagator.
Если получится поделить liveboot на отдельные стадии pipeline, будет 
очень здорово.
Но сначала хочу добиться того, чтобы перемычка между stage1 и stage2 
заработала правильно.
Потом уже, по-возможности, вписывать это всё в идеологию pipeline.

Вместо waitdev -- в нескольких "сетевых методах" a.k.a. ftp, http, cifs 
и nfs.
Первые два в нынешнем пропагаторе работают совсем иначе, нежели чем 
getimage.
Они закачивают ISO-образ целиком сразу в /dev/ramN, независимо от lowmem.
Я пока не уверен, что такое поведение правильно оставлять.
Вторые два монтируют ISO-образ по сети и начисто отмонтируют всё на 
выходе из stage1.
При этом в ряде случаев (altinst и live) остаётся смонтирован ISO образ 
в /root/image,
последний слой (NFS/CIFS-каталог) отмонтируется "lazy" через umount -fl 
/image.

В пропагаторе функция называется add_to_env().
Давай назовём её тут stage2_setenv() и это будет именно set/reset, а не add.


>> Дело в том, что propagator оставлял после себя определённое окружение,
>> которое как-то используется в stage2. Мне не нравится, что он передавал даже
>> пароли на FTP через него, я даже не смог пока найти клиента для PIGGYBACK=1
>> -- это используется, когда в stage1 был смонтирован каталог по NFS или CIFS,
>> и при выходе всё начисто отмонтируется. В основном же там экспортируется то,
>> что было передано через командную строку, типа метода, сервера, каталога,
>> итд. В общем, если уж делать совместимость со stage2, то сразу правильно
>> надо её реализовать.
> Это не моё дело, но я бы посоветовал вам не реализовывать сразу весь
> функционал propagator. Реализуйте сначала то, чем пользуетесь.

Согласен, я начал с локальной загрузки a.k.a "cdrom" и "disk", то бишь 
liveboot (следом за wiatdev).
Надеюсь за сегодня-завтра сделать и до-отладить в первом приближении.

Кстати, захотелось стадию pipeline: debug -- выводим результаты 
предыдущих шагов и вызываем rdshell.


-- 
Best regards,
Leonid Krivoshein.



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

end of thread, other threads:[~2021-04-03 13:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-03 11:05 [make-initrd] Установка окружения в stage1 для передачи в stage2 Leonid Krivoshein
2021-04-03 11:48 ` Alexey Gladkov
2021-04-03 12:24   ` Leonid Krivoshein
2021-04-03 13:34     ` Alexey Gladkov
2021-04-03 13:52       ` 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