# [GRUB] Problemas al arrancar (será el SATA?) (solucionado)

## RiNoA__

Hola: 

Estoy un poco desesperada. Estoy instalando gentoo en un Intel Core 2 Duo 2.4 Ghz, placa ASUS P5B-E Plus,  1 HD 250 GB SATA 2 SEAGATE BARRACUDA 7200.10 y otro HD 250 GB SATA 2 SEAGATE BARRACUDA 7200.9. Necesité el soporte para JMICRON, asi que cogí el ultimo livecd de https://forums.gentoo.org/viewtopic-t-505165.html para poder arrancar y empecé a instalar, de las gentoo-sources el kernel 2.6.20-gentoo, al terminar de configurar mi sistema y  bootear tuve problemas de "hde interrupt" que también tuvieron otros usuarios https://forums.gentoo.org/viewtopic-t-509071-highlight-jmicron+hde.html y que arreglé con irqpoll, pero ahora lo que pasa es que no encuentra de ninguna forma root. He probado muchas combinaciones y he leido muchos posts parecidos al mio, en el que el problema final radicaba en las opciones del Kernel relacionado con los drives SATA, he probado con la configuración de Kernel que yo creo y con genkernel y sigo teniendo problemas y no se ya que más hacer.

Aquí pongo los errores:

Con genkernel:

```
!! Block device /dev/sdb3 is not a valid root device...

The root block device is unspecified or not detected.

Please specify a device to boot, or "shell" for a shell...

boot()::
```

Con un kernel muy parecido al de genkernel pero modificandolo levemente:

```
VFS: Cannot open root device "sdb3" or unknown-block(0,0)

Please append a correct "root=" boot option

Kenel panic -not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
```

En el disco maestro sda ahora mismo no hay ninguna partición pero habra una futura (XP mas adelante, ya sé que cuando lo instale me borrara el MBR, pero ya accederé desde el livecd para volver a correr grub, no cuesta mucho) y el sdb es el esclavo donde estoy poniendo Gentoo.

grub.conf para genkernel

```
default 0

timeout 30

splashimage=(hd1,0)/boot/grub/splash.xpm.gz

title=Gentoo Linux 2.6.20-gentoo

root(hd1,0)

kernel /boot/kernel-genkernel-x86-2.6.20-gentoo root=/dev/ram0 init=linuxrc ramdisk=8192 real_root=/dev/sdb3 udev irqpoll

#kernel /boot/kernel-genkernel-x86-2.6.20-gentoo root=/dev/sdb3 irqpoll

initrd /boot/initramfs-genkernel-x86-2.6.20-gentoo
```

He probado tanto con la línea sin comentar, como con la de abajo comentada.

grub.conf para kernel:

```
default 0

timeout 30

splashimage=(hd1,0)/boot/grub/splash.xpm.gz

title=Gentoo Linux 2.6.20-gentoo

root(hd1,0)

kernel /boot/kernel-2.6.20-gentoo root=/dev/sdb3 irqpoll

```

Ahora un fdisk: (siento la justificación, pero es que lo estoy copiando a mano).

```
fdisk -l

Disk /dev/sda: 250.0 GB, 250059350016 bytes

255 heads, 63 sectors/track, 30401 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device     Boot            Start                 End               Blocks            Id            System     

Disk /dev/sdb: 250.0 GB, 250059350016 bytes

255 heads, 63 sectors/track, 30401 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device     Boot    Start                 End               Blocks             Id        System     

/dev/sdb1        *          1                    5                40131            83        Linux

/dev/sdb2                   6                     6                8032+           82        Linux swap / Solaris

/dev/sdb3                   7              30401       244147837+           83        Linux

```

```

/boot/grub/device.map

(fd0)     /dev/fd0

(hd0)   /dev/sda

(hd1)   /dev/sdb

```

He comprobado que está compilado en el núcleo ext3 y que grub detecta los sistemas de ficheros (tal y como se sugería en otros topics similares).

```

grub> root (hd1,0)

  Filesystem type is ext2fs, partition type 0x83

grub> root (hd1,1)

  Filesystem type unknown, partition type 0x82

grub> root (hd1,2)

  Filesystem type is ext2fs, partition type 0x83
```

El fstab:

```
GNU nano 1.3.12             File: /etc/fstab

/dev/sdb1               /boot           ext2            noauto,noatime  1 2

dev/sdb2               none            swap            sw              0 0 

/dev/sdb3               /               ext3            noatime         0 1

/dev/cdroms/cdrom0      /mnt/cdrom      iso9660         noauto,ro       0 0

/dev/fd0                /mnt/floppy     auto            noauto          0 0 

proc                    /proc           proc            defaults        0 0

shm                     /dev/shm        tmpfs           nodev,nosuid,noexec    0 0

none                    /proc/bus/usb   usbfs           defaults               0 0 

```

Y postearía el .config del kernel, pero todavía estoy investigando donde se encuentra el fichero!   :Embarassed: 

También he comprobado que tengo marcado en el núcleo esto:

```
<*> Intel/ICP (former GDT SCSI Disk Array) RAID Controller support 
```

y esto

```
<*> generic/default IDE chipset support 
```

Last edited by RiNoA__ on Mon Mar 12, 2007 9:18 pm; edited 2 times in total

----------

## artic

 *RiNoA__ wrote:*   

> 
> 
> grub.conf para kernel:
> 
> ```
> ...

 

Hola,

Despues del ladrillo que nos has dejado me quedo con unas dudas, donde esta tu bzImage de la configuracion del grub que no usa genkernel??????

Entiendo que has compilado un kernel con genkernel y otro tu misma???????

De genkernel solo decir que si para los novatos dicen que facilita mucho la compilacion,yo nunca lo he usado y no puedo ayudarte salvo referirte a la documentacion de gentoo.

Para compilacion de un kernel ,opcion que me gusta infinitamente mas ya que somos usuarios de gentoo ........ decirte un par de cosas: 

```
default 0

timeout 30

splashimage=(hd1,0)/boot/grub/splash.xpm.gz

title=Gentoo Linux 2.6.20-gentoo

root (hd1,0)                         #te faltaba un espacio entre root y el parentesis 

kernel /boot/bzImage root=/dev/sdb3 irqpoll
```

Como ves he puesto bzImage que se supone que debe estar en la ruta indicada en la configuracion y que lo habras copiado a /boot despues de compilar.

En el caso de tener un problema con los modulos de tu controladora (cosa que dudo mucho) puedes probar las mm-sources   2.6.21-rc2-mm1 .

Salu2

----------

## RiNoA__

Respecto al paréntesis, como lo he copiado a mano se me habrá escapado al pasarlo (de todas formas comprobaré que no se me haya colado en el fichero de configuración, pero si fuera así creo que me habría dado error, ¿no? Luego lo miro que ahora no tengo el pc aquí).

Respecto al bzImage, no te entiendo, si lo he puesto   :Confused:  (fíjate que he puesto código 2 de grub.conf 2 veces en el post...)

grub.conf para kernel: 

```
 

default 0 

timeout 30 

splashimage=(hd1,0)/boot/grub/splash.xpm.gz 

title=Gentoo Linux 2.6.20-gentoo 

root (hd1,0) 

kernel /boot/kernel-2.6.20-gentoo root=/dev/sdb3 irqpoll 
```

Y en efecto, tengo dos núcleos compilados, uno con mis selecciones y otro con genkernel por si las moscas... pero el error de root me pasa con los dos.

P.D.: Debo entender con esto https://forums.gentoo.org/viewtopic-t-544614.html  que para que funcione bien genkernel debería compilar el núcleo 2.6.19.2-r2 ?

P.D.2: Acabo de encontrar esto https://forums.gentoo.org/viewtopic-t-497930.html y creo que he liado lo de tener partición boot (xque tengo y he puesto /boot/bzImage) así que creo que lo tengo al revés, luego posteo con lo que haya mirado.

----------

## artic

Creo que te estas liando o alomejor soy yo que no entiendo bien lo que me quieres decir   :Rolling Eyes: 

```
default 0 

timeout 30 

splashimage=(hd1,0)/boot/grub/splash.xpm.gz 

 

title=Gentoo Linux 2.6.20-gentoo 

root (hd1,0) 

 

#kernel /boot/kernel-2.6.20-gentoo root=/dev/sdb3 irqpoll  <---Esta linea es incorrecta 

 kernel /boot(bzImage root=/dev/sdb3 irqpoll     
```

Supongo que si has compilado el kernel se te habra generado un bzImage en /usr/src/linux/arch/i386/boot/bzImage  .Donde en mi caso es i386 pq es mi arquitectura,en el tuyo puede variar si usas 64 bits.

Se supone que desde esa ruta debes copiar el bzimage a /boot y asegurarte de que cuando lo hagas /boot este realmente montado si no lo estaras metiendo en el /boot del raiz.

Lo que no puedo decirte es si tu nucleo esta bien compilado ,desconozco la controladora  SATA que usa tu placa ,o aveces una placa base usa varias controladoras SATA distintas y alomejor usas la que no es.En mi caso mi placa usaba 2  diferentes.

Un saludo

----------

## sefirotsama

Me pasaba exactamente lo mismo que a ti hace unos dias. Lo solucioné recompilando el kernel. No sé cuales son los drivers de tu SATA, habilita más compativilidad para discos sata y (en mi caso) habilita emulación de SCSI que por lo que sea lo necesito para cargar la memoria usb.

En principio con esto te habria de bastar.

Ya te digo que mi error era exactamente el mismo

----------

## RiNoA__

Artic: El bZImage lo renombre a 2.6.20-gentoo. No obstante lo he vuelto a copiar a boot como bzImage y he intentado arrancar asi y sigo igual. Y he probado lo que dice la direccion del topic en ingles y el kernel lo encuentra en hd(0,1). Pregunta quizas estupida: el grub-install se lo tengo que hacer al disco maestro sda, o sea:

grub-install /dev/sda

no? No al sdb aunque lo tenga todo ahi...

sefirotsama: Tengo compilada la emulacion de SCSI ya. En cuanto a la controladora, si hago un lsmod desde el livecd sale:

nfs

lockd

sunrpc

sata_mv

sbp2

No estoy segura de a que opcion del kernel corresponde exactamente sata_mv, aunque voy a ver si pruebo diferentes configuraciones porque sigo igual v_v

P.D.: Las controladoras son una de JMicron y otra de Intel ICH8 y ya les di soporte en el kernel.

----------

## artic

Para saber a que opcion pertenece ese modulo hay dos opciones:

La mas rapida www.google.es

La otra opcion es ver el help cuando marcas un modulo.Alli te dice como se llama el modulo de lo que estas seleccionando.

Aunque para simplificar te dire que es  Marvell SATA support.

Por cierto tienes habilitado el Jmicron pata support en tu kernel?????? Lo digo pq nunca se sabe.....

PD -el kernel config esta dentro de la carpeta linux .

----------

## sefirotsama

Mi post en el que traté este error es el siguiente: https://forums.gentoo.org/viewtopic-t-543337.html

Mi error era este (entiendo que el tuyo es el mismo):

 *error wrote:*   

> VFS: cannot open root device "sda4" or unknown-block(0,0)
> 
> Please append a correct "root=" boot option
> 
> kernel panic - not syncing:VFS: Unable to mount root-fs on unknown-block(0,0)

 

 *RiNoA__ wrote:*   

> 
> 
> sefirotsama: Tengo compilada la emulacion de SCSI ya. En cuanto a la controladora, si hago un lsmod desde el livecd sale:
> 
> nfs
> ...

 

Estos són los modulos correspondientes a la carga del LiveCD. Mi solución rapida fué pillar todos o casi todos los drivers de SATA y marcarlos, incluso algunos que sabia ya que no podian ser (por si acaso) entonces funcionó.

Respecto al grub :mirate el archivo /boot/grub/devices.map:

# more /boot/grub/devices.map

En mi caso era algo así como:

 *devices.map wrote:*   

> # bla bla bla
> 
> hd0     sd0

 

Ahí te indica como interpreta (según grub) los dispositivos.

En mi caso me decia que el sd0 (sda) era hd0 (no me preguntes porqué). Ese es el disco duro de inicio según la bios y se instala el GRUB en el Master boot record. Si se te inicia el grub al arrancar significa que el parametro del grub al que te refieres al kernel ya es correcto.

Mi linia del grub que hace referencia al montage de la raiz (partición con punto de montage / ) lo tengo como:

real_root=sda4 que en mi caso es la particion que me corresponde a la particion que corresponde a /.

Mi grub.conf (por si te sirve)

 *grub.conf wrote:*   

> default 0
> 
> timeout 5
> 
> splashimage=(hd0,3)/boot/grub/splash.xpm.gz
> ...

 

Y ya te digo, metele todos los controladores (escepto el libata o libsata que está obsoleto e incompatible con los demás) y en un futuro (es decir cuando puedas arrancar el sistema) ya recompilaras el kernel según el hardware específico.

Si estas 135% desesperada prueba de compilarlo con genkernel pero igualmente no te garantiza nada y deberas modificar el grub.conf para ese kernel...

En principio con esto te ha de funcionar.

Si aún así te falla escribe tu archivo /etc/fstab.

----------

## RiNoA__

A ver:

Ante todo, gracias por vuestra ayuda. Pero esto sigue sin tirar   :Crying or Very sad: 

Artic: Tenía compilados en el núcleo tanto el JMicron Pata Support como el Marvell SATA Support ya. Y es bueno saber lo del help, no me había fijado, me limitaba siempre a leer rápidamente la explicación ^^

sefirotsama: He marcado en el núcleo TODO el soporte SATA y aún así sigue sin funcionar. Incluso probé también un núcleo de genkernel con todas las opciones SATA (siguiendo el consejo de  https://forums.gentoo.org/viewtopic-t-497930.html ) y tampoco. Sigo con los mismos errores :/ Eso sí, todo menos los SATA que están ya "deprecated" y menos el SCSI low levels siguiendo el consejo de la página anterior.

Respecto a Grub, me saca sin problemas la lista a bootear y llegan a verse las primeras líneas del arranque hasta que salta el kernel panic. He estado investigando el hecho de tener montado todo en el disco esclavo sin NADA ahora mismo en el maestro, pero en teoría eso no tendría que estar dando problemas.

Se me agotan las ideas, no sé por donde estoy  metiendo la pata. Tampoco parece cosa de los nombres de /boot/kernel y tal: aunque tenga una partición de boot, /boot/bzImage también lo pilla según explican en ese post por un enlace simbólico de GRUB que en realidad lee /. Y también me preocupo de toquetearlo todo con /boot montado.

Vuelvo a dejar los ficheros. Esta vez dejo también parte del .config del Kernel.

EDIT: Vaya, creía que había copiado toda la info en el disket y no ha sido así, ahora no la puedo poner :/ Editaré mañana con todo. Nuevamente, gracias. Pero te puedo adelantar, sefirotsama, que no he cambiado nada en el /etc/fstab y que está escrito en el primer post de todos.

Una pregunta, ¿pasa algo si pregunto lo mismo en otro foro? Por colocarlo en alguno que esté inglés a ver si a alguien más se le ocurre algo...

----------

## artic

Hola,

Me he fijado en el post que remites al principio y en la config del kernel en el apartodo de modulos de controladoras SATA tiene marcado mas modulos de los que tu tienes.Supongo que debes tenerlos marcados tb para que funcione,son cosas muy nuevas y hay que dar bastantes vueltas.

Otra opcion es que pruebes un kernel mm-sources que en este ultimo creo añaden ultimas versiones de modulos SATA,con lo que al igual se te resuelve el problema.

Haz un config de tu kernel ,en la opcion principal de save configuration file,le ones un nombre y te lo guarda en la carpeta linux,con la extension .config.

Lo de colocarlo en el foro principal (ingles) claro que no pasa nada ,es una opcion que muchos foreros usan siempre y cuando you only speak english in the main gentoo forum.

Salu2

----------

## bontakun

si tienes boot en una particion diferente prueba lo sgte

```

default 0 

timeout 30 

splashimage=(hd1,0)/grub/splash.xpm.gz 

title=Gentoo Linux 2.6.20-gentoo 

root(hd1,0) 

kernel kernel-2.6.20-gentoo root=/dev/sdb3 irqpoll 

```

lo mismo deberia ser para splashimage

y como ya te mencionaron debes tener el soporte scsi para discos duros en el kernel...

saludos...

P.D.: que modelo de placa madre tienes???

----------

## RiNoA__

Mi placa base?  Una ASUS P5B-E Plus, http://es.asus.com/search.aspx?searchitem=1&searchkey=p5b-e+plus  (No consideraréis esto publicidad, verdad? Sino lo quito ipso facto...)

Y no me he olvidado del topic, es que estoy un poco liada estos días, quiero probar un kernel mm-source y lo que me dice bontakun. Ya os comentaré. (Infinitas gracias por la ayuda...   :Razz:  )

----------

## Drevak

Partiendo de la base que tu controlador sata esta soportado por el kernel, que tal si pruebas desactivando por completo el soporte ATA en el kernel? Yo tenia un problema similar con el portatil y resulto que me detectaba el disco como hda antes de cargar los drivers sata.

Device Drivers  ---> 

ATA/ATAPI/MFM/RLL support  ---> 

< > ATA/ATAPI/MFM/RLL support    

Podrias postear un dmesg?

----------

## x86

Yo tuve un problema bastante similar y eran que no había incluido en el kernel unas opciones para ATA, y las incluí en el kernel, (ojo no como modulo) y problema solucionado ! . Hice mas o menos lo que dice Drevak ...

Saludos!!!

----------

## RiNoA__

FUNCIONA!!!!!!!!!!!!!!!

Drevak, he seguido tu consejo de quitar el soporte ATA y ya arranca ^^. Ahora sólo me queda ir quitando los controladores SATA que no me interesan poco a poco y ya lo tendré todo ^^ (xque ahora mismo tengo todos los controladores SATA siguiendo el consejo de sefirotsama). 

En fin, muchas gracias a todos los que me habéis ayudado. Ahora a compilar las X's y KDE, que con este equipo va a toda leche la compilación, como se nota... y tengo muchas ganas de trastear xDD

Gracias de nuevo!

----------

## Inodoro_Pereyra

Sugerencia pequeñita:

No es necesario eliminar drivers adicionales del kernel, sobre todo si los compilaste como módulos.

Saludos!

----------

## artic

 *inodoro_pereyra wrote:*   

> Sugerencia pequeñita:
> 
> No es necesario eliminar drivers adicionales del kernel, sobre todo si los compilaste como módulos.
> 
> Saludos!

 

Ya pero los Sata "deben" de ir compilados directamente,con lo cual si no los quitas tienes un bzImage algo mas pesado.

salu2

----------

## sefirotsama

Lo de meter todos los drivers SATA pues ya te dije que era una manera de saber si era por compatibilidad con unos u otros. Yo lo hice y me funcionó.

Ahora lo que hago es que mientras mantengo mi kernel estable recompilo uno nuevo añadiendo una nueva entrada al grub y indicandole el nuevo kernel a testear con menos drivers o directamente con los únicos necesarios que creo que són así poco a poco tengo solo los drivers que necesito.

Recuerda de guardarte los archivos de configuración a parte de todas las versiones que te fincionen.

Un saludo

----------

## Inodoro_Pereyra

 *Quote:*   

> si no los quitas tienes un bzImage algo mas pesado

 

Retiro lo dicho...  

Saludos!

----------

## RiNoA__

 *Quote:*   

> Recuerda de guardarte los archivos de configuración a parte de todas las versiones que te fincionen. 

 

Faltaria mas!!!   :Rolling Eyes:   Thanks por los consejos, tenia pensado hacer eso, ir probando kernels con distintas opciones de SATA hasta dar con uno mas optimo.

----------

