Guía de tecnologías

Compilar e instalar un kernel en Mandriva

5 min read Linux Actualizado 09 Oct 2025
Compilar e instalar kernel en Mandriva
Compilar e instalar kernel en Mandriva

5 Compilar el kernel

Para compilar el kernel, ejecuta este comando:

make rpm

Ten paciencia: la compilación del kernel puede tardar varias horas según la configuración del kernel y la velocidad del procesador.

Nota: “make rpm” crea paquetes RPM (binarios y fuente) listos para instalar en sistemas compatibles con RPM.

6 Instalar el nuevo kernel

Tras una compilación exitosa se crearán un src.rpm y un paquete rpm binario. El paquete src.rpm suele estar en /usr/src/rpm/SRPMS/. Averigua su nombre con:

ls -l /usr/src/rpm/SRPMS/

En mi sistema se llamaba kernel-2.6.18.3default-1.src.rpm.

El paquete binario suele ubicarse en /usr/src/rpm/RPMS/ARCH/, por ejemplo:

  • /usr/src/rpm/RPMS/i386/
  • /usr/src/rpm/RPMS/i586/
  • /usr/src/rpm/RPMS/i686/
  • /usr/src/rpm/RPMS/x86_64/

Según tu arquitectura, busca en la carpeta correspondiente. En mi sistema estaba en /usr/src/rpm/RPMS/i386/. Comprobar:

ls -l /usr/src/rpm/RPMS/i386/

Yo encontré kernel-2.6.18.3default-1.i386.rpm.

Instala el paquete rpm así:

cd /usr/src/rpm/RPMS/i386/
rpm -ivh kernel-2.6.18.3default-1.i386.rpm

Puedes transferir este paquete a otros sistemas Mandriva e instalarlo sin recompilar.

A continuación crea un ramdisk (initrd) para el nuevo kernel; de lo contrario es probable que el sistema no arranque con él:

mkinitrd /boot/initrd-2.6.18.3-default.img 2.6.18.3-default

Importante: ajusta nombres y versiones a las de tu paquete.

7 Configurar el cargador de arranque LILO

Debes configurar LILO para que el nuevo kernel arranque tras reiniciar.

Encuentra tu nuevo kernel y ramdisk:

ls -l /boot

Normalmente el kernel comienza con vmlinuz (por ejemplo vmlinuz-2.6.18.3-default) y el ramdisk con initrd (por ejemplo initrd-2.6.18.3-default.img).

Edita /etc/lilo.conf. Observa los stanzas existentes y copia uno como plantilla para la nueva entrada; reemplaza kernel y initrd y coloca la nueva entrada por encima de las demás. Especifica un nombre único en label y pon exactamente el mismo nombre en default para arrancar ese kernel por defecto.

vi /etc/lilo.conf

Por ejemplo, mi lilo.conf era así antes de añadir la nueva entrada:

| # File generated by DrakX/drakboot # WARNING: do not forget to run lilo after modifying this file default="linux" boot=/dev/sda map=/boot/map keytable=/boot/us.klt menu-scheme=wb:bw:wb:bw compact prompt nowarn timeout=100 message=/boot/message image=/boot/vmlinuz label="linux" root=/dev/sda6 initrd=/boot/initrd.img append=" resume=/dev/sda5 splash=silent" vga=788 image=/boot/vmlinuz label="linux-nonfb" root=/dev/sda6 initrd=/boot/initrd.img append=" resume=/dev/sda5" image=/boot/vmlinuz label="failsafe" root=/dev/sda6 initrd=/boot/initrd.img append=" failsafe resume=/dev/sda5" |

Y quedó así después de añadir la nueva entrada (fíjate en default y label):

| # File generated by DrakX/drakboot # WARNING: do not forget to run lilo after modifying this file default="linux-2.6.18.3-default" boot=/dev/sda map=/boot/map keytable=/boot/us.klt menu-scheme=wb:bw:wb:bw compact prompt nowarn timeout=100 message=/boot/message image=/boot/vmlinuz-2.6.18.3-default label="linux-2.6.18.3-default" root=/dev/sda6 initrd=/boot/initrd-2.6.18.3-default.img append=" resume=/dev/sda5 splash=silent" vga=788 image=/boot/vmlinuz label="linux" root=/dev/sda6 initrd=/boot/initrd.img append=" resume=/dev/sda5 splash=silent" vga=788 image=/boot/vmlinuz label="linux-nonfb" root=/dev/sda6 initrd=/boot/initrd.img append=" resume=/dev/sda5" image=/boot/vmlinuz label="failsafe" root=/dev/sda6 initrd=/boot/initrd.img append=" failsafe resume=/dev/sda5" |

Después ejecuta:

lilo

Y reinicia el sistema:

shutdown -r now

Si todo va bien el sistema arrancará con el nuevo kernel. Comprueba la versión con:

uname -r

Debería mostrar algo como:

2.6.18.3-default

Si el sistema no arranca, reinícialo y en el menú de LILO selecciona el kernel anterior para arrancar:

Captura del menú de LILO al arrancar

Puedes intentar otra compilación hasta obtener un kernel funcional. No olvides eliminar la entrada del kernel que no funciona de /etc/lilo.conf y ejecutar:

lilo

después de modificar /etc/lilo.conf.

8 Enlaces


Lista de comprobación antes de compilar e instalar

  • Hacer backup completo del sistema o al menos de /boot y /etc/lilo.conf.
  • Anotar la versión actual del kernel: uname -r.
  • Asegurarse de tener espacio suficiente en /boot y /var/tmp.
  • Confirmar la arquitectura destino (i386, x86_64, etc.).
  • Revisar configuración del kernel (.config) y opciones críticas (sistemas de archivos, controladores de disco).

Importante: realiza estas tareas en un entorno con acceso físico o consola remota segura (KVM/iLO) para poder recuperar el sistema si no arranca.

Plan de recuperación si el sistema no arranca (runbook)

  1. Reinicia y en el menú de LILO selecciona el kernel anterior.
  2. Arranca en modo de rescate o con un kernel conocido bueno.
  3. Revisa /var/log/messages y dmesg por errores de módulos o controladores.
  4. Quita la entrada errónea de /etc/lilo.conf o corrige paths incorrectos.
  5. Regenera initrd si corresponde y ejecuta lilo de nuevo.
  6. Si no puedes arrancar, usar un LiveCD/LiveUSB para montar la partición y reparar /boot y /etc/lilo.conf.

Alternativas y consideraciones

  • Si usas GRUB en vez de LILO, añade la nueva entrada en /boot/grub/grub.conf o /boot/grub2/grub.cfg según la versión.
  • Para despliegues en varios servidores, construir un repositorio interno RPM y distribuir paquetes con yum/localrepo en lugar de transferencia manual.
  • Para cambios frecuentes, considera usar herramientas de automatización (Ansible, Salt) para gestionar kernels y bootloader.

Mini metodología para cambios seguros en kernel

  1. Preparación: backup, espacio y lista de comprobación.
  2. Compilación: make rpm en sistema de construcción controlado.
  3. Verificación local: instalar en una máquina de prueba o VM idéntica.
  4. Despliegue: instalar en producción con una ventana de mantenimiento.
  5. Monitorización: comprobar logs y rendimiento tras el reinicio.
  6. Retroceso: tener un plan de recuperación claro si algo falla.

Criterios de aceptación

  • El nuevo kernel arranca sin errores y uname -r muestra la versión esperada.
  • Servicios críticos (por ejemplo, redes, sistemas de archivos, bases de datos) funcionan correctamente.
  • No hay errores relevantes en dmesg ni en /var/log/messages durante el arranque.

Glosario (una línea cada término)

  • RPM: formato de paquete para distribución y gestión de software en sistemas basados en Red Hat.
  • initrd/initramfs: imagen en RAM usada durante el arranque antes de montar la raíz real.
  • LILO: cargador de arranque tradicional para Linux (Linux Loader).
  • uname -r: comando que muestra la versión del kernel en ejecución.

Resumen

Compilar e instalar un kernel en Mandriva implica generar paquetes RPM, instalar el binario, crear initrd y actualizar el cargador de arranque (LILO). Realiza backups, sigue la lista de comprobación y ten preparado un plan de recuperación para minimizar riesgos.

Notas: siempre prueba en una máquina no crítica antes de desplegar en producción y documenta los cambios de configuración y versiones.

Autor
Edición

Materiales similares

Podman en Debian 11: instalación y uso
DevOps

Podman en Debian 11: instalación y uso

Apt-pinning en Debian: guía práctica
Sistemas

Apt-pinning en Debian: guía práctica

OptiScaler: inyectar FSR 4 en casi cualquier juego
Guía técnica

OptiScaler: inyectar FSR 4 en casi cualquier juego

Dansguardian + Squid NTLM en Debian Etch
Redes

Dansguardian + Squid NTLM en Debian Etch

Arreglar error de instalación Android en SD
Android

Arreglar error de instalación Android en SD

Conectar carpetas de red con KNetAttach
Redes

Conectar carpetas de red con KNetAttach