viernes, 14 de febrero de 2014

Reparando el Kernel Panic Volume group "VolGroup00" not found en Centos 5


En esta ocacion explicare como solucionar este error que me llevo 1 dia y medio resolver, me atormento por un buen rato pero al final lo pude vencer.

bueno al grano, si estas viendo esta entrada de seguro tienes este mismo problema y te sale en el post este mismo error que muestro a bajo:

Scanning logical volumes
No volume groups found
Activating logical volumes
Volume group "VolGroup00" not found
Trying to resume from /dev/VolGroup00/LogVol01
Unable to access resume device /dev/VolGroup00/LogVol01
Creating root device
Mounting root filesystem
mount: could not find the system "/dev/root/"
Setting up other filesystems
Setting up new root fs
setuproot: moving /dev/failed: No such file or directory
no fstab.sys, mounting internal defaults
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
Switching to new root and running init
unmounting old /dev
unmounting old /proc
unmounting old /sys
switchroot: mount failed: No such file or directory
Kernel Panic - not syncing: attempted to kill init


todo esto se debe a que el nucleo de linux no reconoce las particiones del disco duro, en este caso el /dev/VolGroup00/LogVol00 y /dev/VolGroup00/LogVol01

la manera con que pude resolver este dilema es mediante un enjaulamiento de sistema, para eso necesitamos una ditribucion de linux, yo use lubuntu para esta tarea ya que tiene livecd, pero cualquier distribucion de gnu/linux con livecd funciona.

ok, iniciamos nuestro ordenador con nuestro livecd, accedemos a una terminal y montamos todo lo necesario, a bajo mostrare los comandos.

$sudo mount /dev/VolGroup00/LogVol00  /mnt
$sudo mount /dev/sda1  /mnt/boot
$sudo mount  --bind  /dev  /mnt/dev
$sudo mount  --bind  /dev/pts  /mnt/dev/pts
$sudo mount  --bind  /proc  /mnt/proc
$sudo mount  --bind  /sys  /mnt/sys

ahora que hemos montado todo esto, es hora de realizar el enjaulamiento con el comando chroot, e aqui el ejemplo:

$sudo chroot /mnt

ok, en este momento ya estamos dentro de nuestro CentOS 5 en el cual no teniamos acceso, por culpa del kernel panic, ahora es hora de hacer la magia para que todo funcione.

Ahora debemos averiguar que modulos esta usando el livecd para que funcione nuestro disco duro, en mi caso fue el ahci, esto lo puedes averiguar con el comando lspci y lsmod.

ok, una vez sabiendo que modulos  son para nuestro equipo es hora de modificar el archivo modprobe.conf asi que lo modificamos con nuetro editor de texto favorito, yo usare nano.

#nano /etc/modprobe.conf

y renombramos los drivers que corresponden a nuestro ordenador, en mi caso asi quedo.

alias eth0 tg3
alias scsi_hostadapter ahci

una vez hecho esto guardamos, cerramos y nos dirigimos a la carpeta de boot de esta forma.

#cd /boot

lo que haremos sera recontruir el initrd para que reconozca nuestro nuevo hardware que es el motivo por el cual linux nos lanza el kernel panic.

Pero antes tenemos que hacer una copia de nuestro initrd por si las dudas.

#mv initrd-2.6.18-238.9.1.el5PAE.img initrd.backup

Una vez ya hecho una copia procedemos a realizar la recontruccion del initrd.

#mkinitrd initrd-2.6.18-238.9.1.el5PAE.img   2.6.18-238.9.1.el5PAE

ya finalizada la reconstruccion, nos salimos del modo enjaulamiento con un exit

#exit

y ya solo queda reiniciar el equipo y acceder con el kernel que reparamos.

$sudo reboot

Nota: este error surgio por una clonacion de un servidor que maneja raid y al pasarlo a sata, centos no tenia idea de como levantar las particiones LVM ya que no tenia los drivers necesarios para poder reconocer el disco duro.


espero que le sirva a alguna persona que tenga el mismo problema que yo tuve :)