[devel] [RFC] make-initrd

Led led на altlinux.ru
Ср Янв 15 07:00:13 MSK 2014


On Wednesday 15 January 2014 04:39:36 Денис Смирнов wrote:
> On Wed, Jan 15, 2014 at 04:36:41AM +0400, Dmitry V. Levin wrote:
> > Кто багов боится - тот dist-upgrade не делает. :)
> > Не похоже, чтобы риски обновления образа initramfs существенно отличались
> > от рисков обновления системы.
>
> Если после обновления системы systemd сдохнет и не будет грузиться, то
> init=/bin/sh спасёт.

Только если драйвер клавиатуры вкомпилен в ядро, или, каким-то чудом, подгрузился:)

> И до тех пор, пока в системе живы хотя бы /bin/sh, 
> /usr/bin/ip (кстати, с чего это он в /usr/bin?) и /bin/rpm, вместе со
> своими зависимостями -- большинство багов от неудачного dist-upgrade можно
> исправить без помощи rescue.
>
> А критичный баг в initramfs для меня уже будет означать однозначную
> необходимость в rescue, да с переменным успехом (ибо выяснить что там не
> так, и исправить -- нужны отдельные знания).
>
> > Можно провести параллель между образом initramfs и executable, статически
> > слинкованным с несколькими библиотеками.  По идее, после обновления любой
> > из этих библиотек такой executable полагается пересобрать, но при этом
> > возникает риск, что полученный результат не будет настолько же рабочим.
>
> Только вот работоспособность этого бинарника критична для загрузки системы
> хоть в какое-то ремонтопригодное состояние.
>
> У initramfs ровно две критичных задачи:
> 1. примонтировать rootfs (с последующей загрузкой)
> 2. в случае невозможности примонтировать rootfs -- дать администратору
> ручки, чтобы это как-либо исправить
>
> systemd тут -- это уже из пушки по вороьбям.

> А вот использование старого 
> доброго init выглядит разумным шагом.

Я к сожалению так и не понял: в чём же тут профит... :(

>
> И лучше бы initramfs максимально изолировать от остальной системы. Потому
> как выигрышь в максимум единицы секунд на повторном старте udev+systemd не
> стоит того, чтобы терять на этом надёжность.

ИМХО у initramfs ровно одна задача: смонтировать / и запустить с него системный init (чем бы он ни был). В 90% случаев 
для этого даже udev не нужен.

-- 
Led


Подробная информация о списке рассылки Devel