Al agregar nuevo hardware a un sistema, o después de cambiar los archivos de configuración que pueden usarse anteriormente en el proceso de arranque, o al cambiar las opciones en un módulo del kernel, puede ser necesario reconstruir el ramdisk inicial (también conocido como initrd o initramfs) para incluir los módulos, archivos y directivas de configuración del kernel adecuados. En los ejemplos a continuación, verá el uso de $(uname -r), que es una forma de pasar la versión actual del kernel a un comando sin tener que escribirlo.
Procedimiento
1. Primero hagamos una copia de seguridad del Ramdisk inicial original:
# cp /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.bak
2. Crear un nuevo Ramdisk inicial (después de haber agregado los nuevos módulos en /etc/modprobe.conf o /etc/modules.conf para Kernel 2.4):
# mkinitrd -f /boot/initrd-`uname -r`-new.img `uname -r`
Puede ver que se ha creado un nuevo archivo ramdisk inicial initrd-[kernel-version]-new.img en el directorio /boot. Parámetros de mkinitrd (consulte man mkinitrd para obtener más detalles):
# mkinitrd --help usage: mkinitrd [--version] [--help] [-v] [-f] [--preload [module]] [--force-ide-probe] [--force-scsi-probe | --omit-scsi-modules] [--image-version] [--force-raid-probe | --omit-raid-modules] [--with=[module]] [--force-lvm-probe | --omit-lvm-modules] [--builtin=module] [--omit-dmraid] [--net-dev=interface] [--fstab=fstab] [--nocompress] [initrd-image] [kernel-version]
Los parámetros más utilizados son:
-f Permite que mkinitrd sobrescriba un archivo de imagen existente.–preload=module – Cargue el módulo módulo en la imagen ramdisk inicial. El módulo se carga antes que los módulos SCSI que se especifican en /etc/modprobe.conf. Esta opción se puede utilizar tantas veces como sea necesario.
–with=module – Cargue el módulo de módulos en la imagen ramdisk inicial. El módulo se carga después de los módulos SCSI que se especifican en /etc/modprobe.conf. Esta opción se puede utilizar tantas veces como sea necesario.
Si ha elegido un nuevo nombre para su archivo Ramdisk inicial, debe agregar una nueva entrada en /etc/grub.conf para poder usarlo:
title Red Hat Enterprise Linux 5 (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img
Después de eso, podrá elegir la entrada "Nuevo initrd" en su menú de Grub al iniciar.
Trabajar con copias de seguridad
Como se mencionó anteriormente, se recomienda que realice una copia de seguridad del initrd anterior en caso de que algo salga mal con el nuevo. Si es necesario, es posible crear una entrada independiente en /boot/grub/grub.conf para la imagen ramdisk inicial de copia de seguridad, para elegir convenientemente la versión anterior en el momento del arranque sin necesidad de restaurar la copia de seguridad. Esta configuración de ejemplo permite la selección de la imagen ramdisk inicial nueva o antigua desde el menú de grub:
title Red Hat Enterprise Linux 5 (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img title Red Hat Enterprise Linux 5 w/ old initrd (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img.bak
Alternativamente, puede ingresar al modo de edición en grub si necesita elegir el antiguo initrd y no hizo una entrada separada en grub.conf antes de reiniciar. Para hacerlo:
Si grub está protegido con una contraseña, presione p e ingrese la contraseña
Use las teclas de flecha para resaltar la entrada del kernel que desea iniciar
Presione e para editar
Resalte la línea initrd y presione e nuevamente
Cambie la ruta del initrd a la copia de seguridad que realizó (como /initrd-2.6.32-200.13.1.el5.img.bak)
Presione Enter para guardar temporalmente los cambios has hecho
Presiona b para arrancar