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] 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.


      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