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