Link recursivo /boot

By 6 de agosto de 2006 Gentoo, Linux No Comments

gentoo-hires.pngEn alguna ocasión me he encontrado con un enlace recursivo que (personalmente) no me gusta nada sobretodo cuando estás con un navegador como poir ejemplo konqueror o nautilus.

Éste es un enlace recursivo de /boot/boot a /boot/

gentoo boot # ls -l
total 3038
lrwxrwxrwx 1 root root 1 Sep 5 05:23 boot -> .

Lo que nos quiere decir que el link boot nos a punta a "actual directorio", si hicieramos:

gentoo boot # cd boot

Nos volveríamos a encontrar una y otra vez con el mismo contenido hata el infinito.

¿Por que nos pasa esto?
Al montar: mount /dev/hda1 /boot/, el contenido de hda1 está realmente en / , bien, al ponerle esta línea a grub

kernel (hd0,0)/boot/kernel-2.4.22 root=/dev/hda3

Va al directorio /boot/ cuando realmente (hd0,0) tiene el kernel en / , entonces se guenera ese link recursivo llamado boot, de forma que cuando vaya a buscar ese directorio, encontrará el link y éste a su vez le estará diciendo que debe leer el "actual directorio" y así salvamos el posible fallo de tubieramos al llamarlo erróneamente, o tambien preservaríamos la forma standard de llamar al kernel.


Nota:grub tiene una manera muy curiosa de nombrar a los discos (y esto es lo que más lia), nombra los discos como lo haría en BSD de forma que (hd0,0) sería igual a: hda1, (hd1,1) a hdb2 y así.A la hora de configurar grub es necesario tener en cuenta cuan es la clave para no equivocarnos al llamar a /boot/kernel{versión}. Por ejemplo; si hemos configurado:

Partición Sistema de Ficheros Tamaño Descripción

no debemos descuidar que para grub (Linux) el boot esta en el / de /dev/hda1 con lo que la linea de llamada al boot será algo así:

(listado correspondiente a grub cuendo hemos utilizado genkernel)

default 0 timeout 30 splashimage=(hd0,0)/grub/splash.xpm.gz  title=Gentoo Linux 2.4.22 root (hd0,0) kernel (hd0,0)/kernel-2.4.22 root=/dev/hda3 initrd (hd0,0)/initrd-2.4.22# Solo en caso de arranque doble title=Windows XP root (hd0,5) chainloader +1

Pero si sólo temenos dos particiones (swap y boot+sistema_de_ficheros) la cosa cambiaría:

splashimage=(hd0,0)/boot/grub/splash.xpm.gz  title=Gentoo Linux 2.4.22 root (hd0,0) kernel (hd0,0)/boot/kernel-2.4.22 root=/dev/hda3 initrd (hd0,0)/boot/initrd-2.4.22

Ya que no existe un punto de montaje en /boot que corresponda a /dev/hda1 y portnto se comporte como un directorio sólo si se monta en /etc/fstab al inicio y bien si lo montamos nosotros a mano, si no que /boot/ es un directorio y debe ser detallado.


Estracto de: http://www.gnu.org/software/grub/grub-faq.es.htmTengo una partición boot separada en GNU/Linux (u otro sistema tipo UNIX), y GRUB parece no manejar correctamente esta situación.Esto es a menudo considerado un bug, pero en realidad no lo es. Es una funcionalidad.GRUB es un gestor de arranque y normalmente no se ejecuta bajo ningún sistema operativo, por tanto no sabe donde está montada una partición bajo tu sistema. Por tanto, si tienes una partición /boot e instalas las imágenes de GRUB en el directorio /boot/grub, GRUB encuentra las imágenes en el directorio /grub pero no en /boot/grub. Esto es correcto, ya que no hay garantía de que todos los sistemas operativos monten la misma partición como /boot.Hay varias soluciones a esta situación.

  1. Instalar GRUB en el directorio /boot/boot/grub en lugar de en /boot/grub. Puede parecer feo, pero funciona bien.
  2. Crear un enlace simbólico antes de instalar GRUB, por ejemplo cd /boot && ln -s . boot. Esto funciona sólo si el sistema de ficheros de la partición boot soporta enlaces simbólicos y GRUB soporta esta funcionalidad.
  3. Instalar GRUB con la orden install, para especificar las trayectorias de las imágenes explicitamente. Por ejemplo:
    grub> root (hd0,1)
    grub> install /grub/stage1 d (hd0) /grub/stage2 p /grub/menu.lst

Leave a Reply

Your email address will not be published.