From: Leonid Krivoshein <klark.devel@gmail.com>
To: make-initrd@lists.altlinux.org
Subject: Re: [make-initrd] Fwd: [#269003] TESTED make-initrd.git=2.14.1-alt1
Date: Tue, 6 Apr 2021 20:38:27 +0300
Message-ID: <a2ba677d-e65d-9e9c-cb05-5c4eec3688b0@gmail.com> (raw)
In-Reply-To: <20210406084450.rxggsmhapka7g6lo@example.org>
06.04.2021 11:44, Alexey Gladkov пишет:
> On Tue, Apr 06, 2021 at 01:51:30AM +0300, Leonid Krivoshein wrote:
>> 8. Можно сделать общее описание входа/выхода для всех поддерживаемых шагов и
>> выполнять необходимые проверки до и после выполнения шага, чтобы не не
>> делать этого внутри самих шагов. Такое описание будет полезно и для шага
>> debug. Шаги могут быть транзитными (pass-thru).
> Я не хочу навязывать что должны шага принимать и уж тем более нельзя
> навязывать, что они должны возвращать. Например, waitdev ничего не
> монтирует т.е. на выходе нет ничего кроме задержки перед следующим шагом.
>
> Могут быть шаги, которые будут спрашивать что-то у пользователя. Описывать
> такое очень сложно.
Можно сделать необязательным описание входа. Если не описано, считать,
что на входе может быть что угодно и задача шага -- проверить это
самостоятельно и вывести fatal(). Если же есть описание, проверку может
делать сам pipeline. ANY -- что угодно, DEV -- устройство, DIR --
каталог, PASS -- шаг не обрабатывает вход, вместо этого он должен быть
напрямую связан с выходом без обработки, т.е. в данном случае pipeline
должен передать выход предыдущего шага на вход следующего шага или
первого, который не PASS.
Иначе каждый шаг начинается с проверок и вывода fatal(), а в конце
сейчас приходится использовать специально написанную для данного случая
pass_thru_pipeline(). Именно эту однотипную и примитивную обработку
предлагаю перетащить в pipeline, чтобы не делать её на каждом шаге.
И вообще я бы заменил передачу dev на devname или симлинк. Чтобы не
видеть таких путей в mtab ни в stage1, ни в stage2:
/dev/pipeline/dst/pipe1/dev ==> /dev/sr0
> Как организовывать debug это другой вопрос. Можно добавить в шаги больше
> verbose сообщений. Можно также сделать шаг shell, который даст консоль.
>
>> [уже не про pipeline]
>>
>> Иногда нужно не делать switch_root "$rootmnt" "$INIT", а нужно просто
>> запустить скрипт "$INIT" с подмонтированного "$rootmnt", полностью остановив
>> счётчик таймаута загрузки, и разрешив интерактивное взаимодействие. При этом
>> make-initrd с запущенными фоновыми процессами может продолжать работать, а
>> организацию выключения/перезагрузки можно возложить на запущенный скрипт.
>> Как лучше реализовать аналог data/etc/rc.d/rc.sysexec?
> Ты всегда можешь придумать свой "метод" загрузки.
>
> Для обычных систем это localdev [1], который подразумевает пинок init,
> чтобы тот выполнил rc.sysexec.
>
> Но ты можешь это изменить и придумать свою последовательность (какую
> хочешь). Например вот фича [2], которая реализует "метод" bootloader,
> который показывает меню и делает kexec.
>
> [1] https://github.com/osboot/make-initrd/tree/master/data/lib/initrd/boot/method/localdev
> [2] https://github.com/osboot/make-initrd-bootloader
Это прекрасно, большое спасибо!
Теперь и rescue-launcher для всяких развёртывалок можно перетащить в
stage1...
--
Best regards,
Leonid Krivoshein.
next prev parent reply other threads:[~2021-04-06 17:38 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-05 20:33 ` Leonid Krivoshein
2021-04-05 22:51 ` Leonid Krivoshein
2021-04-06 8:44 ` Alexey Gladkov
2021-04-06 17:38 ` Leonid Krivoshein [this message]
2021-04-07 13:13 ` Alexey Gladkov
2021-04-06 8:28 ` Alexey Gladkov
2021-04-06 16:38 ` Leonid Krivoshein
2021-04-06 19:05 ` Alexey Gladkov
2021-04-06 19:30 ` Alexey Gladkov
2021-04-06 23:13 ` Leonid Krivoshein
2021-04-07 12:28 ` Alexey Gladkov
2021-04-06 23:00 ` Leonid Krivoshein
2021-04-07 12:11 ` Alexey Gladkov
2021-04-06 23:59 ` Leonid Krivoshein
2021-04-07 1:51 ` Leonid Krivoshein
2021-04-07 12:57 ` Alexey Gladkov
2021-04-07 18:29 ` Leonid Krivoshein
2021-05-26 15:05 ` Leonid Krivoshein
2021-05-26 18:12 ` Alexey Gladkov
2021-05-26 19:25 ` Leonid Krivoshein
2021-05-27 8:37 ` Alexey Gladkov
2021-05-27 12:29 ` Leonid Krivoshein
2021-05-27 13:53 ` Alexey Gladkov
2021-05-27 15:10 ` Leonid Krivoshein
2021-05-27 17:04 ` Alexey Gladkov
2021-05-27 17:11 ` Leonid Krivoshein
2021-05-30 20:34 ` Leonid Krivoshein
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a2ba677d-e65d-9e9c-cb05-5c4eec3688b0@gmail.com \
--to=klark.devel@gmail.com \
--cc=make-initrd@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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