Google
Web dns.bdat.net

Uso de grub

Pasar opciones al núcleo

Puede que interese pasar opciones al núcleo para el arranque. Estas opciones se pueden pasar tras la orden kernel. Por ejemplo:

kernel /boot/vmlinuz-2.4.19-12m root=/dev/hda1 vga=ask hdc=ide-scsi
              

Modificar la asignación de particiones

En ciertas ocasiones puede que interese modificar la asignación de particiones predeterminadas. Por ejemplo, Windows no se puede iniciar si no lo tenemos instalado en la primera partición del primer disco duro. Para estos casos usamos la orden map que modifica la asignación. Por ejemplo para que el sistema vea la segunda partición como si fuera la primera ejecutaríamos:

grub> map (hd0) (hd1)

  grub> map (hd1) (hd0)
   grub> root (hd1,0)
   grub> makeactive
   grub> chainloader +1
   grub> boot
              

Esto debería iniciar Windows instalado en la segunda partición.

Instalar Windows en cualquier partición

Suponemos que tenemos linux instalado en nuestro sistema y tenemos la primera partición ocupada y queremos instalar Windows en una partición distinta y vacía o con datos que no queramos conservar, por ejemplo en /dev/hda3.

Tendremos que usar las herramientas del sistema de forma que la distibución de particiones sea algo similar a la siguiente salida de fdisk:

Device       Start          End      System
/dev/hda1    1              3        Linux
/dev/hda2    4              905      Extended
/dev/hda3    906            1222     Win95 FAT32 (LBA)
/dev/hda5    4              36       Linux swap
/dev/hda6    37             905      Linux
              

En este caso tenemos /boot en /dev/hda1 y la partición raíz del sistema en /dev/hda6.

Es conveniente anotar estos datos de fdisk antes de comenzar la instalación para que en caso de que se borrara la tabla de particiones, poder restaurarla en caso de emergencia.

Ahora editamos el fichero grub.conf o menu.lst:

default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-18-0)
        root (hd0,0)
        kernel /vmlinuz-2.4.20-18.8 ro root=/dev/hda6
        initrd /initrd-2.4.7-10.img
title Windows 98
        map (hd0,0) (hd0,2)
        map (hd0,2) (hd0,0)
        rootnoverify (hd0,2)
        chainloader +1
title Disco arranque DOS
        map (hd0,0) (hd0,2)
        map (hd0,2) (hd0,0)
        chainloader (fd0)+1
title CD arranque DOS
        map (hd0,0) (hd0,2)
        map (hd0,2) (hd0,0)
        chainloader (hd2)+1
              

Las líneas map de la seccion Windows 98 son básica para que la instalación funcione de forma correcta y poder engañar a Windows para que crea que se está instalado en la primera partción del primer disco duro. Si no lo hacemos así, Windows borrará la tabla de particiones y no podremos arrancar.

La seccion "Disco arranque DOS" es necesaria si se va a arrancar desde un disquete para iniciar la instalación de Windows o arrancar Windows desde un disquete con posterioridad. De la misma forma "CD arranque DOS" es necesaria si queremos iniciar la instalación desde un CD. En este caso suponemos que el CD se corresponde a la unidad /dev/hdc.

Una vez guardado el fichero ya es operativo, como ya hemos visto, no es necesario volver a ejecutar grub.

Antes de continuar debemos comprobar que el nuevo arranque funciona. Reiniciamos el sistema y arrancamos Linux. Si el arranque falla debemos recurrir al disquete de emergencia y corregir el fichero.

Ahora, para la instalación de Windows debemos arrancar con grub. Tenemos que quitar todos los CD o disquetes de sus unidades. Una vez iniciado grub insertamos el medio de instalación en su correspondiente unidad y seleccionamos la opción adecuada de grub, disquete o CD.

Modificar la imagen de inicio

Para modificar la imagen de inicio tendremos que crear una imagen xpm de 14 colores y 640x480 pixels.

Si tenemos una imagen llamada inicio.jpg, podemos hacer (necesitamos ImageMagick) :

$ convert -geometry 640x480 -colors 14 inicio.jpg inicio.xpm
              

Ahora comprimimos la imagen con gzip y la copiamos en /boot/grub.

Por último editamos /boot/grub/grub.conf o menu.lst y ponemos:

# Color de frente
foreground = ffffff
# color de fondo
background = 000000
# Mostrar la imagen
splashimage = (hd0,1)/boot/grub/inicio.xpm.gz