Lilo y el error “FATAL: Could not load /lib/modules/*/modules.dep”
March 25th, 2008 by BusindreEl gestor de arranque Lilo actualmente ha sido de cierta forma sustituido por Grub en la mayoría de distribuciones GNU/Linux, pero podemos encontrarnos en la necesidad de usar el veterano cargador en algunas determinadas circunstancias. Por ejemplo, si queremos usar ciertos tipos de sistemas de ficheros que dan problemas con Grub, como puede ser “Xfs”, necesitaremos utilizarlo para poder arrancar sin problemas nuestros sistemas operativos instalados. En su fichero de configuración (/etc/lilo.conf) dependiendo de que errores se cometan podemos apreciar unos avisos / errores en la carga del kernel Linux, algunos más descriptivos que otros. Vamos a tratar un par de errores con su solución que se producen al configurar erróneamente Lilo y que provoca muchos quebraderos de cabeza a más de uno.
En algunas ocasiones podemos observar que en la carga de nuestra distribución se muestra un error de este tipo, siendo XXX a versión de kernel con la que estamos arrancando.:
FATAL: Could not load /lib/modules/XXX/modules.dep: No such a file or directory
Este error NO impide que la carga del sistema continúe en la mayoría de los casos, pero podremos notar que según se nos muestra el servidor gráfico algún dispositivo como puede ser el ratón PS2 o el USB no funciona estando perfectamente configurado el fichero /etc/X11/xorg.conf. Si ejecutamos un lsmod y vemos que no muestra nada, que no hay módulos cargados en memoria nos damos cuenta de que algo falla, si intentamos cargar un modulo manualmente y observamos el siguiente error.
modprobe:FATAL: Could not load /lib/modules/XXX/modules.dep: No such a file or directory
El problema en el 99% de estos casos es tema de la configuración del fichero /etc/lilo.conf, ya sea por una edición errónea del usuario o bien una configuración o instalación automática de un nuevo kernel. En concreto el error surge de la opción “image”, que es la encargada de especificar el kernel que GNU/linux arrancará. El problema es que estamos arrancando una imagen de kernel (vmlinuz) que no es la de nuestra distribución. Debemos usar la imagen correspondiente a nuestra distro, que por norma estará en el directorio /boot y posiblemente tenga un enlace en “/” o en el mismo /boot.
/boot/vmlinuz -> /boot/vmlinuz-huge-smp-2.6.25.5-smp
/vmlinuz -> /boot/vmlinuz-huge-smp-2.6.25.5-smp
NOTA: La imagen del kernel debe estar lógicamente en la misma partición que el fichero lilo.conf, si /etc/lilo.conf está en hda3 la imagen vmlinuz* debe estar en la carpeta /boot de hda3 (Tercera partición del primer disco IDE).
Otro error común que encontramos en una mala configuración del cargador de arranque es:
kernel panic - not syncing : VFS: unable to mount root FS on unknown-block
Este error viene por la falta de una imagen correcta para la opción initrd en la configuración del cargador Lilo (lilo.conf). Está opción como comentábamos hace referencia a un fichero imagen denominado “Initial Ram Disk”, el cual se usa en el arranque del núcleo para inicializar los dispositivos que hacen que el inicio del kernel sea posible. Es una colección de controladores (Drivers) específicos de cada kernel que son necesarios para tener disponibles ciertos dispositivos, como pueden ser tarjetas SCSI, discos duro, controlador PS2, tarjetas de red o cualquier otro dispositivo de nuestro hardware. Es un fichero que no se debe compartir entre kernels, cada kernel usa el suyo, podemos encontrarla comprimida con gunzip (gz) pero no hay que descomprimirla, se usa comprimida directamente en la opción initrd. No todos los núcleos que encontramos en los distintos GNU/Linux requieren del fichero imagen “Initial Ram Disk”. Un ejemplo de uso es el siguiente:
image = /boot/vmlinuz-2.6.25-5-686
label = Debian
initrd = /boot/initrd.img-2.6.25-5-686
read-only
root = /dev/sda5
Tener la imagen del kernel vmlinuz* + initrd.img* es obligatorio para un correcto funcionamiento y arranque de nuestro GNU/Linux. Recordar queda que las imágenes deben estar en la partición donde lilo.conf se encuentre. Es decir si lilo.conf esta en sda1 y tenemos un sistema en sda5, debemos copiar los ficheros de sda5 “vmlinuz*” e “initrd*” (En el caso de que exista) en el directorio /boot de la partición donde este lilo.conf (sda1). Recordar que se debe ejecutar el comando lilo como root para que añada los cambios y hacerlos efectivos en el arranque.
Posted in Linux |