Make-initrd development discussion
 help / color / mirror / Atom feed
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.



  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