Actualizando el Kernel de Linux (Parte III)
Creación del disco de inicio en RAM initrd
El disco de arranque en RAM initrd ayuda al Kernel cuando este es cargado, ya que cuando se carga el Kernel en memoria no hay aún ningún dispositivo desde donde el Kernel pueda cargar los módulos básicos por lo tanto no podría funcionar correctamente.
El Kernel en sus funciones básicas soporta discos RAM por lo que se apoya en disco initrd para poner el sistema en marcha. El disco RAM initrd es cargado en primera instancia por el sistema de arranque GRUB o LILO y cuando el Kernel arranca ya lo tiene disponible. Este disco se monta en /initrd y cuando el sistema se ha iniciado se desmonta.
Principalmente tenemos dos utilidades para crear el disco dependiendo de la distribución de Linux que tengamos:
- mkinitrd: Distribuciones basadas en RedHat: Centos, Fedora… etc.
- mkinitramfs: Distribuciones basadas en Debian: Ubuntu, Linux Mint… etc
En nuestro caso utilizaremos el comando mkinitramfs para generar el archivo initrd
#mkinitramfs -o /boot/initrd.img-5.6.0 5.6.0
El formato del comando es el siguiente:
mkinitramfs -o [fichero_salida] [version]
El funcionamiento de mkinitramfs se basa en las reglas definidas en su archivo de configuración /etc/initramfs-tools/initramfs.conf.
Instalación del nuevo Kernel
En esta punto ya disponemos te todo lo necesario para poder iniciar nuestro sistema con el nuevo Kernel, sólo nos falta poner la opción en el sistema de arranque GRUB para poder seleccionarlo o que sea el Kernel por defecto.
Ejecutaremos update-grub para que la nueva configuración que hemos realizado se vuelque en el fichero de configuración /boot/grub/grub.cfg
Si nuestra distribución de Linux usa el sistema de arranque antiguo GRUB (y no GRUB2) y el comando update-grub no encuentra automáticamente la imagen de Linux deberemos realizar manualmente las modificaciones en el fichero /etc/grub.d/40_custom agregando las siguientes lineas:
menuentry "Test (5.6.0)"
set root=(hd0,1)
linux /vmlinuz-5.6.0 ro root=/dev/sda1
initrd /initrd.img-5.6.0
Después de la edición volveríamos a ejecutar update-grub para terminar con la configuración.
Una vez finalizado todo el proceso al iniciar, y seleccionar el modo de arranque avanzado, deberemos ver la opción de iniciar con el Kernel antiguo o el nuevo:
Y si iniciamos el sistema podemos consultar la versión de Kernel con la que ha iniciado el sistema: