¿Cómo ejecutar automáticamente mkinitramfs en Debian después de la actualización apt para los paquetes del kernel?

¿Cómo ejecutar automáticamente mkinitramfs en Debian después de la actualización apt para los paquetes del kernel?

Lo que estoy tratando de lograr es tener un sistema de archivos raíz cifrado en una Raspberry Pi (que ejecuta Raspian Buster) que se desbloquea en el arranque a través de ssh. Llegué bastante lejos adaptándomeun tutorial para Kali Linuxy lo hice funcionar al menos una vez, pero aún no sobrevive a las actualizaciones del kernel.

Uno de los problemas es que esta configuración utiliza un initramfs al que se hace referencia /boot/config.txten

initramfs initramfs.gz followkernel

y eso debe actualizarse después de una actualización del kernel llamando manualmente, por ejemplo

mkinitramfs -o /boot/initramfs.gz 4.19.118-v7+

donde 4.19.118-v7+depende de la versión actual del kernel y del tipo de hardware Raspberry Pi que se utiliza. Por supuesto, quiero que esto se haga automáticamente cada vez que apt upgradeinstale un nuevo kernel.

Aquí es donde me quedé atascado con 2 problemas:

  • A) ¿Dónde y cómo conecto ese proceso de actualización de manera adecuada?
  • B) ¿Cómo determino la versión correcta del kernel que debo utilizar?

Respecto a A) Llegué tan lejos como para aprender que raspberrypi-kernel.postinstse ejecuta /etc/kernel/postinst.d/. Este vuelve a llamar /usr/sbin/update-initramfsal que al final llamará mkinitramfs. Donde me confundí fue este código en /usr/sbin/update-initramfs:

set_initramfs()
{
        initramfs="${BOOTDIR}/initrd.img-${version}"
}

Determina el nombre del archivo para initramfs. Nunca se generó ningún archivo de este tipo durante la actualización y no estoy seguro de estar en el camino correcto, ya queWikipediadice que el esquema init.rd fue reemplazado por el esquema initramfs. Sin embargo, no pude encontrar una buena documentación que describa cómo se supone que suceden las cosas después de una actualización del módulo del kernel. (Se agradecen buenos enlaces).

Entonces mi pregunta es: ¿Dónde hay un buen lugar para conectar un script que ejecute el mkinitramfscomando? ¿Debo modificar /etc/kernel/postinst.d/? ¿Esta solución será estable en las próximas versiones de Debian?

Respecto a B), es fácil obtener versiones del kernel disponibles con

> ls -l /lib/modules/ | awk -F" " '{print $9}'`

5.4.51+
5.4.51-v7+
5.4.51-v7l+
5.4.51-v8+

Pero, ¿cómo selecciono automáticamente el correcto para el hardware actual? Para un Pi3B+ esto sería 5.4.51-v7+. ¿Hay alguna manera de determinar esto automáticamente?

¡Muchas gracias por su ayuda!

Respuesta1

Parece que initramfs debe habilitarse configurando INITRD=Yesy /etc/default/raspberrypi-kernelagregando un script posterior a la actualización /etc/initramfs/post-update.d/para actualizar /boot/config.txtcomo se propone enActualice intramfs después de la actualización del kernel n.° 608.

Espero que esto funcione ...

información relacionada