# [GRUB2] No detecta nuevo kernel(y kernel panic)(cerrado)

## phyro

¡Buenas! Tanto tiempo  :Razz:  .

Tuve problemas con genkernel(que usé para instalar Gentoo), y me animé a compilar el kernel(mal, pero bue XD).

Hice lo que recomienda la guía[0](make menuconfig, make && make modules_install). Pero estaba viendo mientras escribía este thread XD, que estaba parado bajo "/usr/src/linux-2.6.31-gentoo-r6/" y no bajo "/usr/src/linux/". También estaba viendo de la guía[1], que no enlacé(antes de instalar los módulos) al nuevo kernel :S . ¿Será por eso?(me refiero al paso 4)

Bueno, sigo explicando lo que hice, pero no sé si modificará en algo haberlo hecho en un directorio diferente.

Al terminar eso, copie:

cp arch/x86_64/boot/bzImage /boot/kernel-2.6.31-gentoo-r6

cp System.map /boot/System.map-2.6.31-gentoo-r6

El último archivo copiado al principio no lo copie, al ver que GRUB no lo detectaba, lo copié de acuerdo a esta guía[1].

Y como uso GRUB2 de otra partición que tengo Ubuntu, desde Ubuntu, hice el siguiente comando:

#update-grub

Y me toma todos los kernels que ya tenía, menos este nuevo que generé. Por lo tanto, no puedo ingresar con el nuevo kernel. ¿Cómo podría solucionar esto?. Gracias desde ya.

[0] http://www.gentoo.org/doc/es/handbook/handbook-amd64.xml?part=1&chap=7

[1] https://forums.gentoo.org/viewtopic-t-227793.html

Intenté compilarlo como dice la guía(parado en "/usr/src/linux", y me acordé que justamente tiene el mismo problema que genkernel:

make menuconfig

make: *** No hay ninguna regla para construir el objetivo `menuconfig'.  Alto.Last edited by phyro on Mon Dec 21, 2009 3:04 pm; edited 2 times in total

----------

## esteban_conde

Como root intenta:

1) cd /usr/src/

2) ln  -sf linux-2.6.31* linux

3) cd /boot/

4) ln -sf System.map-2.6.31* System.map

Posiblemente el systema busque por System.map y se encuentra con System.map-2xxx*.

No obstante te advierto que no lo he probado aunque es inofensivo y lo más que puede pasar es que no funcione además siempre puedes borrar los enlaces si no funcionan.

----------

## phyro

Hice exactamente:

```
cd /usr/src/

ln -s linux-2.6.31* linux

cd /boot/

ln -sf System.map-2.6.31* System.map
```

Y luego, desde Ubuntu, "update-grub". Y no funcionó :'( .

----------

## esteban_conde

Pues deberias averiguar donde guarda ubuntu el archivo de configuración de grub y meter la nueva entrada a mano.

Supongo que estará en /boot/grub/ o /boot/grub2/.

Si está ahi fijate en la sintaxis del archivo e intenta seguirla para la nueva entrada.

----------

## phyro

 *esteban_conde wrote:*   

> Pues deberias averiguar donde guarda ubuntu el archivo de configuración de grub y meter la nueva entrada a mano.
> 
> Supongo que estará en /boot/grub/ o /boot/grub2/.
> 
> Si está ahi fijate en la sintaxis del archivo e intenta seguirla para la nueva entrada.

 

Gracias. Al final pude meterlo a este kernel en el grub, cuando editaba, me olvidaba de cerrar la llave, por lo que no funcionaba  :Razz:  .

En una de esas, logré bootear Gentoo correctamente, con el kernel nuevo, pero con el initrd que generó genkernel(modificando en el GRUB directamente cuando arranca la PC). Y funcionaba bien.

Cuando arreglo el GRUB, me sale un kernel panic(al bootear el nuevo kernel), por lo que recuerdo que falta el initrd. Entonces, siguiendo más o menos esta guía[0], intento generarlo(desenmascarando el paquete "mkinitrd" e instalando la versión "4.2.0.3-r1"):

```
emerge mkinitrd                                                                                                          

nano /etc/portage/package.keywords                                                                                       

emerge --ask mkinitrd

mkinitrd /boot/initrd.img-2.6.31-gentoo-r6 2.6.31-gentoo-r6 
```

Cuando quiero seguir exactamente los pasos del tutorial, me da que "-o" no es una opcón valida:

```
mkinitrd -o /boot/initrd.img-2.6.31-gentoo-r6 /lib/modules/2.6.31-gentoo-r6/

usage: mkinitrd [--version] [-v] [-f] [--preload <module>]

       [--omit-scsi-modules] [--omit-raid-modules] [--omit-lvm-modules]

       [--with=<module>] [--image-version] [--fstab=<fstab>] [--nocompress]

       [--builtin=<module>] [--nopivot] <initrd-image> <kernel-version>

       (ex: mkinitrd /boot/initrd-2.2.5-15.img 2.2.5-15)
```

Y si la quito:

```
mkinitrd /boot/initrd.img-2.6.31-gentoo-r6 /lib/modules/2.6.31-gentoo-r6/

/lib/modules//lib/modules/2.6.31-gentoo-r6/ is not a directory.
```

Por eso puse "2.6.31-gentoo-r6" solo.

Luego, actualizo el GRUB de la siguiente manera(guiándome de la entrada generada por genkernel):

```

menuentry "Gentoo Linux 2.6.31-gentoo-r6" {

                insmod ext2

        set root=(hd0,2)

        search --no-floppy --fs-uuid --set 7fea5240-6d95-4b0b-82ce-c6729bd0133f

        linux /boot/kernel-2.6.31-gentoo-r6 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda2

        initrd /boot/initrd.img-2.6.31-gentoo-r6

}
```

Y sigue el kernel panic(es bastante pesadita la imagen):

http://img706.imageshack.us/img706/7261/gentoo.jpg

Por lo que me mandé alguna macana al generar el initrd, al compilar el kernel o cualquier otra  :Razz:  . Cabe destacar que esta es la primera vez que configuro y compilo el kernel de manera "manual". Deje las opciones por default, y creo haber activado el soporte de ext4 y NO como módulo(la partición de Gentoo es de tipo ext4).

Les paso lo que tengo en /boot/ (de Gentoo):

```
ls /boot/

System.map                                    initramfs-genkernel-x86_64-2.6.30-gentoo-r5

System.map-2.6.31-gentoo-r6                   initrd.img-2.6.31-gentoo-r6

System.map-genkernel-x86_64-2.6.30-gentoo-r5  kernel-2.6.31-gentoo-r6

boot                                          kernel-genkernel-x86_64-2.6.30-gentoo-r5

grub
```

Gracias desde ya  :Very Happy:  .

[0] http://odiss.org/phpbb2/viewtopic.php?t=170

----------

## phyro

Intenté:

*Activar cramfs[0] [1]

*Activar más soporte para SATA(que tenga que ver con Intel) [2] , ya que:

```
lspci

00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller (rev 10)

00:02.0 VGA compatible controller: Intel Corporation 82G33/G31 Express Integrated Graphics Controller (rev 10)

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)

00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)

00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)

00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)

00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)

00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)

00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01)

00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)

00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)

00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)

00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01)

00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)

01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
```

*Hacer "make modules" antes de "make modules_install"

*Borrar el "real_root" y "root" del GRUB(no sé donde lo leí ya XD).

Y no funciona XD.

[0] http://help.lockergnome.com/linux/cramfs-filesystem-mount-root-fix--ftopict416755.html

[1] http://www.linuxquestions.org/questions/linux-newbie-8/kernel-panic-while-booting-468847/

[2] http://www.linuxquestions.org/questions/linux-kernel-70/kernel-panic-not-syncingvfs-unable-to-mount-root-fs-on-unknown-block-10-547998/

----------

## esteban_conde

 *Quote:*   

> menuentry "Gentoo Linux 2.6.31-gentoo-r6" {
> 
>                 insmod ext2
> 
>         set root=(hd0,2)
> ...

 

Sustituyelo por lo siguiente:

 *Quote:*   

> menuentry "Gentoo Linux 2.6.31-gentoo-r6" {
> 
>                 insmod ext2
> 
>         set root=(hd0,2)
> ...

 

con el grub anterior "set root=(hd0,2)" se reducia a "root (hd0,2)" sin "set" ni "=" además con un kernel compilado a mano y teniendo el systema de archivos a montar con la opción <*> en vez de <M> no es necesario ningun initrd.

Haz copia de seguridad de tu grub.conf antes de efectuar cambios por si acaso.

----------

## phyro

 *esteban_conde wrote:*   

>  *Quote:*   menuentry "Gentoo Linux 2.6.31-gentoo-r6" {
> 
>                 insmod ext2
> 
>         set root=(hd0,2)
> ...

 

No funcionaba, parece que no es válido para GRUB2 eso.

Sin embargo, le borre todo eso y lo dejé así:

 *Quote:*   

> menuentry "Gentoo Linux 2.6.31-gentoo-r6" {
> 
>                 insmod ext2
> 
>         set root=(hd0,2)
> ...

 

Y funcionó XDDD. No se porque ahora funciona y antes no :S . Cuando antes ya había probado así. En fin, gracias por todo!.

----------

## esteban_conde

Si antes lo tenias así y no arrancaba lo único que habrias cambiado es el enlace de System.map, para saberlo sólo tienes que eliminarlo.

----------

## phyro

 *esteban_conde wrote:*   

> Si antes lo tenias así y no arrancaba lo único que habrias cambiado es el enlace de System.map, para saberlo sólo tienes que eliminarlo.

 

Disculpa las demoras en contestar. Probablemente sea eso, ya que antes no lo había hecho.

Gracias por todo  :Wink:  .

----------

