From: Leonid Krivoshein <klark.devel@gmail.com> To: make-initrd@lists.altlinux.org Subject: Re: [make-initrd] polld и проверка наличия /root/sbin/init Date: Sun, 9 Apr 2023 23:18:25 +0300 Message-ID: <6219f0d8-e4a6-4520-784f-2137ac7db177@gmail.com> (raw) In-Reply-To: <ZC6RE2eQ3HfxLTvB@example.org> Привет! On 4/6/23 12:29, Alexey Gladkov wrote: > [...] > Для более сложных случаев можно указать свой boot method: > > /lib/initrd/boot/method/SOMETHING/check > /lib/initrd/boot/method/SOMETHING/action > > echo SOMETHING > /etc/initrd/method Спасибо! Предположительно помогло создание симлинка check => /bin/false в altboot, т.е. способ решения проблемы через boot method сработал: ALT #45787. Но проблема была в другом месте... >> [...] >> bootchain после монтирования /sbin/init совершает ещё действия, поэтому нужно дождаться его выполнения. >> В случае bootchain было бы надёжным запускать polld только тогда, когда он завершил свою работу. >> Такое в принципе возможно? > В новой версии make-initrd у pipeline будет шаг останавливающий или > запускающий сервисы. В bootchain вы может сделать такой же шаг. Если какие-то вспомогательные сервисы нужны или не нужны, конечно их можно запускать из цепочки. Но делать так с ключевыми сервисами make-initrd, назначение которых я даже толком не понимаю, мне кажется неправильным. Такой подход может поломать что-то ещё. > Хотя я > считаю более правильным сделать свой boot method с нужными дополнительными > проверками. В ходе разборок заметил странную штуку... 1. pipeline раньше использовал telinit 2 в шаге rootfs. 2. bootchain делал изначально точно так же. 3. В какой-то момент в pipeline/rootfs поменялся механизм: вместо telinit 2 стал перезаписываться boot method => localdev. 4. Почти сразу я портировал это изменение в bootchain/rootfs. 5. И pipeline, и bootchain изначально меняют boot method на себя и оба не предоставляют функций check и action для проверки специального условия нахождения корня, полагаясь на то, что когда цепочка будет завершена, метод загрузки переключится на localdev и там уже есть нужный функционал проверки. 7. Странное и неожиданное здесь то, что данный функционал работает параллельно с pipeline или bootchain несмотря на то, что метод загрузки изменён в самом начале цепочки -- это и есть причина рейса. 8. Для pipeline данная проблема остаётся в равной степени актуальной. 9. Для bootchain сделал лишь одно изменение: перенёс переключение на метод localdev из шага rootfs за конец цикла демона chaind чтобы успевать переписать в stage2 файл журнала. 10. Добавлять в bootchain или pipeline проверку успешности прохождения цепочки, наверное, можно, но я не стал городить огород, поскольку на Сизифных регулярках, в основном, используется altboot поверх bootchain. 11. Проверять что-либо в altboot смысла не было -- он не первый и не последний шаг bootchain, просто переписать boot method -- недостаточно, т.к. bootchain это делает, а толку ноль, но объединив всё вместе с симлинком на /bin/false результат неожиданно проблему вылечил. Короче говоря, в make-initrd проверка метода localdev почему-то срабатывает, даже если метод загрузки установлен не localdev, и побороть это помогает только создание собственного check. -- WBR, Leonid Krivoshein.
prev parent reply other threads:[~2023-04-09 20:18 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-04-06 1:28 Антон Мидюков 2023-04-06 6:00 ` Leonid Krivoshein 2023-04-06 22:27 ` Leonid Krivoshein 2023-04-07 13:05 ` Alexey Gladkov 2023-04-06 9:29 ` Alexey Gladkov 2023-04-09 20:18 ` Leonid Krivoshein [this message]
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=6219f0d8-e4a6-4520-784f-2137ac7db177@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