[devel] Q: postinst hook for firmware-*
Konstantin Lepikhov
lakostis на altlinux.org
Пт Ноя 24 02:06:35 MSK 2017
Hi Michael!
On 23-11-17, at 09:08:58 you wrote:
> On Thu, Nov 23, 2017 at 03:22:36PM +0100, Konstantin Lepikhov wrote:
> > > Дело не в обновлении microcode, а в том, что меняется initrd.
> > > И если по каким-то причинам новый initrd оказался не рабочим,
> > > то загрузиться с текущим ядром уже не получится. Да, бывает
> > > обратная ситуация, когда нужно перегенерить initrd, но такие
> > > случаи более-менее предсказуемы, думаю.
> > Для mission critical вещей есть такая вещь как monolitic kernel.
> > Железобетонно и предсказуемо.
>
> Это другая крайность.
>
> Мне кажется, что не следует перекладывать риск тех, кому не пофиг
> на микрокод, на всех. У всех, кому не пофиг на ядро, оно обновится
> (вместе со штатной и _ожидаемой_ перегенерацией initrd) примерно
> в течение недели.
>
Это все прекрасно и замечательно, но:
- Добавленный функционал по микрокоду это просто логическое продолжение
того, что делает триггер сейчас - а именно поддерживает initrd в
актуальном состоянии.
см. код
$ cat ~/git/work/bootloader-utils/kernel.filetrigger
...
ucode_detected=
while read f; do
case "$f" in
...
$UCODE_PREFIX/*-ucode/*)
ucode_detected=1
;;
esac
done
...
if [ -n "$ucode_detected" ]; then
VERSION=$(uname -r)
# regenerate initrd image without updating symlinks
/sbin/installkernel $INSTALLKERNEL_ARGS --nodefault --noflavour "$VERSION"
fi
...
Да, initrd пересоздается, но для текущего ядра и пересоздается возможно
тем же самым make-inird которым он создавался изначально. И в системе есть
другие ядра, и initrd для них остается нетронутым. Если же ядро одно, то я
не знаю, это редкий случай.
Да, можно вынести эту логику в отдельный триггер, который будет ставиться
вместе с make-initrd-ucode чтобы всем было хорошо, но мне не хочется
дублировать код.
PS В тему "а вдруг что": давайте тогда придумаем механизм сохранения
предыдущей версии systemd после обновления, он знаете ли вашу систему
так поломать может при обновлении, никакой initrd не спасет. Не далее
как раз такое случилось - #ALT 34193
--
WBR et al.
Подробная информация о списке рассылки Devel