Kernel Panic Gentoo - root ext4

Iniciado por D4RIO, 29 Junio 2011, 02:31 AM

0 Miembros y 2 Visitantes están viendo este tema.

D4RIO

Hola gente,

Paso a explicarles el problema:

 Tenia Ubuntu 11.04 instalado en la partición /dev/sda5

 Me hice un LiveUSB de Gentoo11 a partir del liveDVD, desde el cual instalé el sistema con el stage3 gentoo-hardened
 Bajé los fuentes del kernel de hardened
 Con make menuconfig hice la configuración de un kernel con ext4 compilado (no modulo) porque la partición raíz tiene ext4.

 Para no tener que armar la configuración de un cargador de arranque, entre en Ubuntu y corrí la actualización de GRUB2 para que reconozca Gentoo, cosa que hizo.

 Reinicié, y ohh!! Kernel Panic. Para hacerlo más simple y obtener solo lo necesario, agregué "quiet" a la línea de comandos del kernel.
 Ahora, reiniciando nuevamente, puedo dar el error:

 kvm: no hardware support
 Kernel Panic - not syncing: VFS: unable to mount root fs on unknown-block (0,0)
 swapper not tainted 2.6.38-<mi kernel>


Cosa que no se como solucionar. Si el kernel no tuviera soporte para ext4 bien, pero con el soporte para ext4 builtin ¿?

Voy a tratar de reiniciar sin la swap en el fstab, pero como no pudo montar el raiz, supongo que no tendrá nada que ver... sino trataré con genkernel

Si alguien tiene una sugerencia, bienvenido sea
saludos

EDITO (AGREGO):
Modifique la función que arroja el kernel panic (mount_block_root()) en init/do_mounts.c, queda como indico a continuación:
void __init mount_block_root(char *name, int flags)
{
char *fs_names = __getname_gfp(GFP_KERNEL
| __GFP_NOTRACK_FALSE_POSITIVE);
char *p;
#ifdef CONFIG_BLOCK
char b[BDEVNAME_SIZE];
#else
const char *b = name;
#endif

printk("D4RIO: mount_block_root([%s],[%d])\n",name,flags);
printk("D4RIO: fs_names before gfn: [%s]\n",fs_names);
get_fs_names(fs_names);
printk("D4RIO: fs_names after gfn: [%s]\n",fs_names);
retry:
for (p = fs_names; *p; p += strlen(p)+1) {
int err = do_mount_root(name, p, flags, root_mount_data);
switch (err) {
case 0:
goto out;
case -EACCES:
flags |= MS_RDONLY;
goto retry;
case -EINVAL:
continue;
}
        /*
* Allow the user to distinguish between failed sys_open
* and bad superblock on root device.
* and give them a list of the available devices
*/
#ifdef CONFIG_BLOCK
__bdevname(ROOT_DEV, b);
#endif
printk("VFS: Err open root=\"%s\", listing:\n",
root_device_name);

printk_all_partitions();
#ifdef CONFIG_DEBUG_BLOCK_EXT_DEVT
printk("DEBUG_BLOCK_EXT_DEVT is enabled, you need to specify "
       "explicit textual name for \"root=\" boot option.\n");
#endif
panic("VFS: Cant mount root fs on %s", b);
}

printk("List of all partitions:\n");
printk_all_partitions();
printk("No filesystem could mount root, tried: ");
for (p = fs_names; *p; p += strlen(p)+1)
printk(" %s", p);
printk("\n");
#ifdef CONFIG_BLOCK
__bdevname(ROOT_DEV, b);
#endif
panic("VFS: Unable to mount root fs on %s", b);
out:
putname(fs_names);
}


Como verán, agregué unas trazas muy vistosas con valores que no se trazan en el original, el resultado:

D4RIO: mount_block_root([/dev/root],[32769])
D4RIO: fs_names before gfn: [/dev/root]
D4RIO: fs_names after gfn: [ext3]
VFS: Err open root="sda6", listing:
Kernel panic - not syncing: VFS: Cant mount root fs on unknown-block(0,0)
Pid: 1, comm: swapper Not tainted 2.6.38-hardened-r6dario-hardened1 #3
Call Trace:
[<c1379439>] ? panic+0x4d/0x129
[<c1592c72>] ? mount_block_root+0x210/0x224
[<c1592cbf>] ? mount_root+0x39/0x4d
[<c1592e15>] ? prepare_namespace+0x142/0x168
[<c1592400>] ? kernel_init+0x196/0x1a6
[<c159226a>] ? kernel_init+0x0/0x1a6
[<c1027f86>] ? kernel_thread_helper+0x6/0x10


No me gusta ese ext3, pero no tengo tiempo ahora para ponerme a mirarlo.

Será hasta mañana!
OpenBSDFreeBSD

Akai

Así a ojo... me suena a que alguna config no está como toca. Revistaste que hayas cargado también en el kernel los drivers para el disco duro y demás?

Prueba a mirar la wiki de gentoo, tienen algunas páginas muy interesantes sobre configuraciones del kernel.

Por otro lado, quizá usar una config típica y luego ir quitando módulos que no necesites podría ser una idea una vez consigas arrancarla.

D4RIO

Hola Akai,

Por arrancar la maquinita no hay problema, la uso desde el Ubuntu en sda5, monto /proc y /dev y me chrooteo al Gentoo en una consola.

Ayer recompilé con casi todo SATA y PCMCIA builtin (incluso las cosas que estaban como módulos) y nada, lo que copié arriba. Voy a ver si la variable fs_names puede tomar ext4, y si es así, porqué toma ext3.

Sino, quiza deba poner la .config actual en un respaldo, compilar el kernel hardened con la config por defecto y si aún así no funciona, rendirme a usar el kernel genérico de Gentoo (buuuu).
OpenBSDFreeBSD

Akai

Has preparado un ramdisk para que ejecute? Posiblemente sea lo que te pueda estar dando problemas ¿? si mal no recuerdo la herramienta es initrd. En Archlinux se usa otra, por lo que es posible que me equivoque con el nombre.

Añado algo, usas GRUB? creo que no aguanta bien ext4.

Por otro lado, con esta clase de situaciones, lo que yo siempre he hecho ha sido usar la configuración que supuestamente ha de funcionar para todos, aunque me cueste un tiempo compilarla, y una vez vaya, optimizarla.


D4RIO

No ustilicé ramdisk, pero tampoco es necesario. Compilando con genkernel siempre se genera un ramdisk, pero el mismo handbook de gentoo indica que no es necesario ramdisk para los que prefieran compilar el kernel a mano.

Uso GRUB2, que es el default de Ubuntu, pero no creo que sea el problema. He leído por ahí que el problema suele ser el kernel.

Podría compilar otro kernel, el default de Gentoo, pero por ahora no tengo tiempo (laburo)

Cuando lo haga te comento,
Gracias
OpenBSDFreeBSD

arkangeleir

ami una ves me ocurrio eso y era porque el genkernel de gentoo no marco la opcion en el kernel para utilizar ext4

cuando ejecutes el genkernel dale la opcion de revisar las configuraciones y marca laopcion y se solucionara tu problema
te aconsejo a utilizar funtoo es igual que gentoo  pero las sincronizaciones son mas rapidas y esta mejor mantenido por el creador de gentoo

saludos..

D4RIO

Despues de muchos muchos meses leo esto.

Por un lado, ya habia revisado esas configuraciones.
Por otro, cambié esa partición por un Backtrack 5, así que creo que este es un

T E M A   C E R R A D O

Algun MOD please, cerrarlo
OpenBSDFreeBSD

Foxy Rider

Y lo volvía a revivir ...
Bueno, tema cerrado.