* [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