Make-initrd development discussion
 help / color / mirror / Atom feed
* [make-initrd] [RFC] kexec feature
@ 2020-03-09 16:02 Alexey Gladkov
  2020-04-05 19:09 ` Alexey Gladkov
  0 siblings, 1 reply; 3+ messages in thread
From: Alexey Gladkov @ 2020-03-09 16:02 UTC (permalink / raw)
  To: make-initrd; +Cc: Dmitry V. Levin

Привет!

В ходе обсуждения с Димой и Глебом появилась идея сделать условную фичу
kexec, которая бы позволяла создавать из образа kexec-based bootloader. В
основном прицел идёт на EFI.

Схема работы тут также как с рутом, но для /boot. Находим нужные модули
для него а в runtime ищем этот раздел, но вместо переключения туда читаем
конфиг оттуда, показываем менюшку и делаем kexec на выбранное ядро.

Поиск для не-рута и так уже давно есть. Необходимо лишь добавить новую
логику для выхода из initrd после нахождения /boot.

Pros:

* bootloader не пытается дублировать реализации lvm/raid/luks.
* больше возможностей для кастомизации стадии загрузчика.

Cons:

* не-EFI загрузка. Для MBR всё равно нужен загружен (lilo/grub).
* более сложный загрузчик - выше шанс получить не загружаемую систему.
* медленнее?

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [make-initrd] [RFC] kexec feature
  2020-03-09 16:02 [make-initrd] [RFC] kexec feature Alexey Gladkov
@ 2020-04-05 19:09 ` Alexey Gladkov
  2020-04-22 14:09   ` Alexey Gladkov
  0 siblings, 1 reply; 3+ messages in thread
From: Alexey Gladkov @ 2020-04-05 19:09 UTC (permalink / raw)
  To: make-initrd; +Cc: Dmitry V. Levin

On Mon, Mar 09, 2020 at 05:02:28PM +0100, Alexey Gladkov wrote:
> Привет!
> 
> В ходе обсуждения с Димой и Глебом появилась идея сделать условную фичу
> kexec, которая бы позволяла создавать из образа kexec-based bootloader. В
> основном прицел идёт на EFI.
> 
> Схема работы тут также как с рутом, но для /boot. Находим нужные модули
> для него а в runtime ищем этот раздел, но вместо переключения туда читаем
> конфиг оттуда, показываем менюшку и делаем kexec на выбранное ядро.
> 
> Поиск для не-рута и так уже давно есть. Необходимо лишь добавить новую
> логику для выхода из initrd после нахождения /boot.

Я сделал первый вариант такой фичи [1]. С ней я смог выбрать ядро и
загрузить свою систему.

К сожалению без странностей не обошлось. У меня пока не получилось
зафиксировать initrd. Указание CONFIG_CMDLINE не помогает:

$ grep ^CONFIG_CMDLINE kernel.config
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="ro quiet initrd=\\EFI\\LINUX\\bootloader.img"

приходится указывать initrd через efi shell.

Также пакет пока не может собраться на aarch64.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [make-initrd] [RFC] kexec feature
  2020-04-05 19:09 ` Alexey Gladkov
@ 2020-04-22 14:09   ` Alexey Gladkov
  0 siblings, 0 replies; 3+ messages in thread
From: Alexey Gladkov @ 2020-04-22 14:09 UTC (permalink / raw)
  To: make-initrd

On Sun, Apr 05, 2020 at 09:09:17PM +0200, Alexey Gladkov wrote:
> Я сделал первый вариант такой фичи [1]. С ней я смог выбрать ядро и
> загрузить свою систему.
> 
> К сожалению без странностей не обошлось. У меня пока не получилось
> зафиксировать initrd. Указание CONFIG_CMDLINE не помогает:
> 
> $ grep ^CONFIG_CMDLINE kernel.config
> CONFIG_CMDLINE_BOOL=y
> CONFIG_CMDLINE="ro quiet initrd=\\EFI\\LINUX\\bootloader.img"

Потому что этот параметр разбирается до загрузки самого ядра [1]. Он
передаётся либо через параметры, либо через efi сервис [2].

Необходимо написать враппер который сделает либо одно, либо другое.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/efi/libstub/file.c#n257
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/efi/libstub/x86-stub.c#n788

> приходится указывать initrd через efi shell.

> Также пакет пока не может собраться на aarch64.

Ограничил архитектуру до x86_64 потому что только на ней я её использую.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-04-22 14:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-09 16:02 [make-initrd] [RFC] kexec feature Alexey Gladkov
2020-04-05 19:09 ` Alexey Gladkov
2020-04-22 14:09   ` Alexey Gladkov

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