[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