From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 6 Apr 2021 10:44:50 +0200 From: Alexey Gladkov To: make-initrd@lists.altlinux.org Message-ID: <20210406084450.rxggsmhapka7g6lo@example.org> References: <53056ce2-d0bd-dcab-880f-80f2a6b6892a@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <53056ce2-d0bd-dcab-880f-80f2a6b6892a@gmail.com> Subject: Re: [make-initrd] Fwd: [#269003] TESTED make-initrd.git=2.14.1-alt1 X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2021 08:44:52 -0000 Archived-At: List-Archive: On Tue, Apr 06, 2021 at 01:51:30AM +0300, Leonid Krivoshein wrote: > 8. Можно сделать общее описание входа/выхода для всех поддерживаемых шагов и > выполнять необходимые проверки до и после выполнения шага, чтобы не не > делать этого внутри самих шагов. Такое описание будет полезно и для шага > debug. Шаги могут быть транзитными (pass-thru). Я не хочу навязывать что должны шага принимать и уж тем более нельзя навязывать, что они должны возвращать. Например, waitdev ничего не монтирует т.е. на выходе нет ничего кроме задержки перед следующим шагом. Могут быть шаги, которые будут спрашивать что-то у пользователя. Описывать такое очень сложно. Как организовывать 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 -- Rgrds, legion