# Como generar imagen para initrd [Solucionado]

## n0dix99

Saludos, estoy intentado actualizar la nueva version de mi kernel a la 2.6.20.7.

He seguido los pasos de la siguiente guia:

http://es.gentoo-wiki.com/HOWTO_Compilar_el_kernel_manualmente

Todo va bien, hasta q llego a la configuracion del grub.

Lo que sucede es que no se a que se refieren con imagen initrd. 

Como puedo conseguiarla???

Y si me pueden dar algunos ejemplos me seria de mucha ayuda.

Gracias por adelantado.Last edited by n0dix99 on Tue May 01, 2007 12:35 am; edited 1 time in total

----------

## Zagloj

Valora tú mismo si necesitas una imagen initrd:

http://www.linuxinfor.com/spanish/man4/initrd.html

 Básicamente debes hacer

```
mkinitrd -o /boot/initrd-version.img version
```

 Suerte  :Wink: 

----------

## n0dix99

Pero ahora quede con otra duda.

Es aconsejable tener imagen initrd???????

Si no entendi mal con dicha imagen se el kernel se carga en dos fases. Sin ella se carga en una sola.

----------

## Zagloj

Yo sólo la usé una vez que compilé con genkernel, nunca la uso en los kernel compilados a mano, y no me pasa nada, eso sí, recuerda no olvidar opciones sobre el sistema de archivos donde esté el kernel, si no daría kernel panic.

----------

## n0dix99

Como es eso de opciones en el kernel????

Creo q la guia q sigo no dice nada sobre ello.

----------

## Zagloj

Al configurar el kernel, la guía no comenta todas y cada una de las opciones del kernel, que yo no conozco y creo que pocos conocerán. Sólo ve mirando por FileSystems-> y pones como módulo [*] el/los sistemas de archivos que tengas, nada más, pero así debes hacer con otros apartados, ir configurando bien cada cosa, sonido, etc.

----------

## i92guboj

Una imagen initrd es solo necesaria en el caso de que algo que está compilado como módulo (no dentro del kernel) sea necesario en la fase de arranque. En el resto de casos, es totalmente inútil.

Hay muy pocos casos en los que el uso de initrd esté plenamente justificado, en el resto de casos, y en mi humilde opinión, solo añade más complejidad al proceso sin reportar beneficio alguno. En la mayoría de casos, simplemente añade lo que necesites en fase de boot dentro del kernel (con un "*" en menuconfig, en lugar de "M"). De esta forma dicho driver estará siempre disponible y no habrá problemas. 

Ejemplos de drivers que se necesitan en esa fase son los de tu controladora de discos IDE (o SATA, si arrancas desde un disco SATA) y los drivers del sistema de ficheros de tu partición /boot. A estas "opciones" es a lo que Zagloj se refiere.

Por tanto, a no ser que tengas una buena razón para ello, olvida todo lo referente a initrd.

----------

## n0dix99

Disculpa la ignorancia y insistencia, pero no entiendo eso de FileSystems.

Q tengo q hacer en especifico???

----------

## i92guboj

En el link que nos das en el primer post, ve al apartado "Configuración del kernel", en la parte que haces "menuconfig" te aparece la configuración del kernel, que tienes que adaptar a tu gusto y a tu sistema antes de compilarlo. Algunas cosas se pueden compilar como módulos (marcándolos con una M en menuconfig) o dentro del mismo kernel (marcando con un *).

Nos referimos al hecho de que si compilas lo que necesites para arrancar con un * no necesitas un initrd, porque está dentro del kernel y siempre estará disponible. El driver de tu filesystem o sistema de archivos es el soporte para ext3, reiserfs, xfs o cualquiera que sea el sistema con que formateaste tu /boot, o tu / si no tienes una partición dedicada para /boot. 

Todo eso está en menuconfig, en la sección de drivers.

Yo que tu, simplemente olvidaría lo del initrd. Si compilas manualmente simplemente marca lo que necesites con un * y olvídate de problemas. Y si compilas con genkrenel, no necesitas saber nada del tema.

----------

## Zagloj

El apartado Filesystems me refiero a lo que te aparece cuando haces:

```
cd /usr/src/linux

make menuconfig
```

 Y aparece algo similar a lo de la siguiente imagen:

http://es.tldp.org/Manuales-LuCAS/AA_Linux_colegio-1.1/AA_Linux_colegio-1.1-html/ck2218.png

 Ahí mira bien que aparece un apartado denominado Filesystems, entras (intro o barra espaciadora) y marcas ext3, ext2, reiserfs o los sistemas de archivos que utilices como módulos.

 Si tienes dudas, lee con calma, date tiempo  :Wink: 

Pd Sobre compilar el kernel en general hay muchos howtos, como el de TLDP de donde he sacado esa imagen.

----------

## n0dix99

Gracias...

Lo voy a ver.

Algun problema mando un mensaje. jajjaj  :Very Happy: 

----------

## n0dix99

Bueno como me lo temia me lanzo un error.

No filesystem could mount root, tried:reiserfs ext3 ext2 msdos fuseblk jfs vfat iso9660 ntfs. Kernel panic - not syncing:VFS:Unable to mount root fs on unknown-block (1,0)

Y otra cosa. Como puedo hacer para ver la configuracion del grub?????

Bueno todo lo que me puedan ayudar sera muy apreciado   :Smile: 

----------

## Zagloj

Para ver simplemtente la configuración del grub con 

```
cat /boot/grub/grub.conf
```

 Luego a parte tendrás que editarlo, fijarte si tienes bien seleccionada la partición... pero vamos, en el enlace que estás siguiendo te lo indica (tendrás otro kernel desde que iniciar, espero).

 Si no hubiera modo de entrar ya nos avisas y te comentamos lo que hacer desde el liveCD.  :Wink: 

----------

## n0dix99

Intento hacer:

cat /boot/grub/grub.conf

Y no me aparece el el archivo. 

Ni siquiera esta el /boot.

Creo que me toca el livecd, sino es que hay otra forma.

----------

## Zagloj

Veamos, tienes que montar la partición, no vaya a ser que lo hagas sin montarla:

```
mount /dev/xxx
```

 Donde xxx es donde está la partición /boot, puedes revisar el fstab (/etc/fstab) si lo deseas, pero deberías tener ese dato.

----------

## n0dix99

Primero, estos comandos los estoy haciendo en el grub, por que si entro normalmente por linux me sale el error del Kernel panic y no puedo poner haer mas nada.

Segundo, intente en el grub montar el boot , pero me dice que no reconoce el comando mount.

----------

## Zagloj

De acuerdo, ahora me aclaro, pues en el grub, con la letra 'e' editas la línea, y ya ahí te permite completar eso de root(x,y), pulsando tab, si mal no recuerdo, y luego deberías saber dónde pusiste tu partición root, root=/dev/xxx.

 Por cierto, para muestra:

title=Gentoo Linux 

root (hd0,1) 

kernel /bzImageetcetcetc root=/dev/sda4

 Eso es en el caso de un disco sata y que esté en la partición 4.

Pd Otra cosa, si estás actualizando el kernel deberías tener disponibles otros núcleos anteriores, ¿no tienes más líneas en el grub para elegir?. Si no es así, al menos para la próxima ya sabes que se debe dejar al menos un núcleo que sepamos que funciona (y su correspondiente entrada en el grub) para poder arrancar desde él.

----------

## n0dix99

OK. Ya la encontre

Me sale lo siguiente:

root(hd0,4)

kernel /boot/bzImage-2.6.20.7 root=/dev/ram0 init=/linuxrc ramdisk=8129 real_root=/dev/sda5 doscsi

Pero veo dos cosas raras:

1) en root(hd0,4) deberia decir root(hd0,5) por q es hay donde tengo el /boot

2) en root=/dev/ram0 lo mismo q en 1).

Sera que las edito...

----------

## Zagloj

Bueno, como no sé la configuración exacta de tu máquina no te puedo precisar, pero te recuerdo por si acaso que tengas en cuenta la nomenclatura de grub para las particiones (la letra a es 0 y el número de partición 1 es 0 para grub) a parte de eso, estamos indicando la partición de root, no la partición boot.

 Ah y atención

```
kernel /boot/bzImage-2.6.20.7 root=/dev/ram0 init=/linuxrc ramdisk=8129 real_root=/dev/sda5 doscsi
```

Si mucho no me equivoco estaría mejor

```
kernel /boot/bzImage-2.6.20.7 root=/dev/sda5 
```

 El doscsi se utiliza generalmente cuando el kernel ha sido compilado con genkernel (y usas scsi), que no es el caso.  :Wink: 

----------

## n0dix99

Asi que lo edito lo coloco como tu me dices y despues que hago????

----------

## Zagloj

Bueno, ahí te va poniendo una ayuda en inglés con la utilidad de las teclas (a estas horas ya no rige uno mucho  :Embarassed: ) en resumen deberías salir e iniciar (comprueba que la línea se ha quedado como la has puesto) con esa configuración, creo recordar que había una opción de "iniciar con esta línea" o algo parecido en inglés.

 Si no lo ves lo miramos, una vez que lo hayas conseguido, yo que tú desde una sesión como root editaba el grub.conf por si acaso, a mí no se me guarda la configuración para posteriores reinicios cuando lo he editado en línea.

----------

## n0dix99

Bueno te voy a contar lo que hice.

No encontre el comando para salvar la linea q habia modificado. Entonces la modifique y le di al comando b (q es para bootear desde esa linea).

Lo hice y corrio todo de maravilla.   :Very Happy:   :Very Happy:   :Very Happy:   :Very Happy: 

Entonces reinicie y me di cuenta que la linea no la salvo con los cambios que yo habia hecho.

Se me ocurrio entrar a mi session normal y modifique el grub.

Reinicie le di al GENTOO LINUX (el comando normal). Y todo funciona de maravilla.   :Very Happy:   :Very Happy:   :Very Happy:   :Very Happy:   :Wink:   :Wink:   :Wink: 

Hago un uname -a y me sale Linux 2.6.20.7 sjdhaojsd   .

Gracias por toda tu ayuda..

----------

## Zagloj

Pues nada, felicidades y encantado en lo que haya ayudado, una alegría entrar al foro al día siguiente y ver la etiqueta solucionado  :Wink: 

----------

