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