Manejo de GRUB y BURG

Para quien no lo conozca, GRUB es el mnemónico de GRand Unified Bootloader. Un Boot Loader, o cargador de arranque, es el primer programa que se ejecuta cuando la computadora arranca (salvando la secuencia de arranque en ROM).

El Boot Loader es responsable de cargar y transferir el control al núcleo, o kernel, del sistema operativo. El kernel, luego, incializa el resto del sistema operativo.

GRUB es, para aquellos que tenemos Linux, el "menú que aparece en la pantalla" y que nos permite seleccionar el sistema operativo, o la versión de kernel, que vamos a iniciar. Otro gestor conocido y que muchos hemos utilizado alguna vez, es LILO.

Configuración básica y opciones de arranque

El archivo /boot/grub/grub.cfg reemplaza el antiguo /boot/grub/menu.lst pero a diferencia de este último el archivo de configuración para la nueva versión es generado automáticamente a partir del archivo /etc/default/grub y los scripts ubicados en /etc/grub.d que son, si no hemos agregado alguno:

  • 00_header: Carga las opciones del archivo /etc/default/grub
  • 05_debian_theme: Configuración del tema: imagen de fondo y color de texto
  • 10_hurd: Para kernels Hurd
  • 10_linux: Para kernels Linux
  • 30_os-prober: Genera entradas para otros sistemas operativos instalados
  • 40_custom: Para agregar entradas a mano cuando os-prober no encuentra algún SO instalado

Para ver las resoluciones soportadas hay que entrar al menú durante el arranque de grub2 oprimiendo la tecla 'c' y luego:

    vbeinfo

Que nos mostrará el listado de resoluciones posibles, para salir del menú y regresar al grub:

    exit

El archivo /etc/default/grub contiene información importada de /boot/grub/menu.lst para generar las entradas del nuevo grub.cfg. De entre las opciones de este archivo, las que más nos puede interesar editar son las que marcamos con negritas en lo que resta de esta sección:

GRUB_CMDLINE_LINUX Si existe, agrega esta variable al final de la línea del kernel para todas las entradas del grub. Es similar a "altoptions" en menu.lst.

GRUB_GFXMODE Cambia la resolución del grub.

Ejemplos de configuración con estas opciones:

    GRUB_CMDLINE_LINUX="vga=792"
    GRUB_GFXMODE=1024x768

Con lo que la resolución de la TTY para todas las entradas será de 1024x768 a 32 bits y la resolución del grub de 1024x768.

Las opciones que controlan el tiempo que se mostrará la pantalla del grub son:

    GRUB_HIDDEN_TIMEOUT=5
    GRUB_HIDDEN_TIMEOUT_QUIET=false

GRUB_HIDDEN_TIMEOUT determina el número de segundos que se mostrara el grub en espera de que el usuario elija una entrada.

GRUB_HIDDEN_TIMEOUT_QUIET Toma uno de los valores true o false.

true: No se mostrará la cuenta regresiva.

false: Muestra la cuenta regresiva a partir del valor de GRUB_HIDDEN_TIMEOUT.

Así que, por ejemplo, ocultar el grub basta con darle a GRUB_HIDDEN_TIMEOUT el valor de 0.

Opciones de Arranque

Una de las brechas de seguridad que se puede tener en un equipo con linux, es dejar abierto el acceso en modo recuperación. Debian en este punto es más seguro, pero en otras distribuciones no lo son tanto, como en el caso de Ubuntu, puesto que ubuntu permite el acceso root son pedir esta contraseña, no así en Debian.

Lo más importante en este punto es modificar le grub y eliminar esta línea, para que no aparezca al iniciar el equipo, en resumen, eliminar la línea que está marcada en la imagen.

Por otro lado, para cambiar la entrada que cargará por default hay que cambiar el valor de GRUB_DEFAULT, para lo que hay tres opciones:

  • Asignar el número de la entrada correspondiente (comenzando a contar desde cero)
GRUB_DEFAULT=0
  • Asignar el contenido de la etiqueta menuentry correspondiente en el archivo grub.cfg, por ejemplo:
GRUB_DEFAULT="Windows XP Professional (on /dev/sda1)"
  • También puede tomar el valor saved con lo que utilizará la entrada utilizada en el anterior arranque.
GRUB_DEFAULT=saved

Una vez modificado todo lo que queramos, simplemente guardamos y al reiniciar veremos el resultado.

Para mayor información visiten http://www.esdebian.org/wiki/instalar-grub2-debian

Recuperar GRUB2 después de instalar Windows

Hubo un tiempo en el que usaba exclusivamente Ubuntu en mis maquinas pero por motivos de trabajo tuve que instalar Windows. Al hacer esto se murio el GRUB, cosas de "the fantastic operating system".

Para arreglar este estropicio tuve que entrar con un LiveCD, abrir la consola y poner lo siguiente.

Con esto nos listara las unidades que detecta en la maquina:

$ sudo fdisk -l

Ahora indicamos la unidad donde tenemos ubicado el GRUB2. En este caso esta en sda1.

$ sudo mount /dev/sda1 /mnt

Ahora monta el resto de los dispositivos.

$ sudo mount --bind /dev /mnt/dev

Accedemos con permisos a al sistema de archivos de nuestra partición.

$ sudo chroot /mnt

Por último cargamos el GRUB2 de nuevo. Lo único que tenemos que tener en cuenta esta vez es poner bien la unidad (en este caso como HD), por lo que pondremos sda, sin el número.

# grub-install --recheck /dev/sda

Ahora simplemente tenemos que reiniciar, y comprobar si arranca el GRUB adecuadamente.


Fuente : Recuperar GRUB

Be Linux my friend

vía Recuperar GRUB2 después de instalar Windows.

Predeterminar Windows en Grub o Burg

Para quienes tengan problemas a la hora de configurar BURG (principalmente) para predeterminar windows como sistema por defecto en tu equipo, pueden seguir estos comandos para hacerlo:

BURG:

# mv /etc/burg.d/30_os-prober /etc/burg.d/09_os-prober
# update-burg

GRUB:

# mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober 
# update-grub

Editar Grub2 manualmente

Lo Primero

Lo primero que debemos hacer es ir a Aplicaciones/Accesorios/Terminal y teclear:

# nano /boot/grub/grub.cfg

esto último nos abrirá en la misma terminal un editor de texto muy parecido a VIM.

Cambiar el tiempo de espera para seleccionar un SO.

moviendonos con el cursor del teclado buscamos la línea que diga set timeout=10 :

if [ ${recordfail} = 1 ]; then
set timeout=-1
else
set timeout=10 
fi
### END /etc/grub.d/00_header ###

Donde dice set timeout=10 cambiamos ese numero (10) por la cantidad de segundos que deseemos que nos de para elegir un SO.

Para finalizar solo presionamos Control+O, Enter, Control+X (en ese orden) y listo

Cambiar el SO. por defecto

moviendonos con el cursor del teclado buscamos la línea que diga set default="0":

### BEGIN /etc/grub.d/00_header ###
if [ -s /boot/grub/grubenv ]; then
have_grubenv=true
load_env
fi

set default="0"

### BEGIN /etc/grub.d/00_header ###if [ -s /boot/grub/grubenv ]; then  have_grubenv=true  load_envfiset default="0"

Donde dice set default="0" cambiamos el 0 por el número de línea en la cual se encuentra el SO que deseamos sea el predeterminado, esto para los novatos lo podemos saber contando las lineas que aparecen en el grub cuando iniciamos el equipo (comenzando desde 0, 1, 2, ... y contando la línea que dice Other OS). Una vez sepamos el número en la cual esta la línea, solo cambiamos el 0 por ese número y listo.

En el caso de que no deseemos reiniciar para ver y contar las lineas de grub debemos buscar y contar cada línea que diga menuentry (nuevamente contando desde 0 (cero)) y hacer lo mismo mencionado anteriormente.

Para finalizar solo presionamos Control+O, Enter, Control+X (en ese orden) y listo

Eliminar o modificar lineas del Grub2

Atención: este paso puede afectar el sistema operativo por defecto si has modificado la opcion set default="0" (como se mostro en el manual)

Primero no recomiendo eliminar lineas en el grub ya que podrian hecharse algo, en cambio recomiendo comentar la linea, lo cual implica que solo se vera en el archivo pero no se mostrara en el grub, para hacer esto deben anteponer a cada linea que no desean que aparesca el simbolo # (gato). Esto lo hacemos buscando la linea ### BEGIN /etc/grub.d/10_linux ###

posteriormente nos apareceran los distintos SO que podemos tener, en donde la apertura aparece la palabra menuentry y luego aparece el nombre del SO que si lo deseamos podemos modificarlo (solo lo que esta entre las comillas)

ejemplo:

menuentry "Ubuntu, Linux 2.6.31-20-generic"{

puede dejarse como:

menuentry "Ubuntu"{

Las llaves { } indican el inicio y fin de la configuración de cada SO, por lo cual si deseamos que no aparezca debemos comentar cada línea desde el menuentry hasta el } como se ve en el siguiente trozo del archivo grub.cfg, en donde aparecen en rojo los SO o lineas comentadas, para su cado debería quedarles mas o menos parecido, dependiendo si desean ocultar otras lineas o no.

Código:

### BEGIN /etc/grub.d/10_linux ###
menuentry "Ubuntu, Linux 2.6.31-20-generic" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,2)
search --no-floppy --fs-uuid --set 3c2f495e-e87d-463e-a6e2-29b2e339d835
linux /boot/vmlinuz-2.6.31-20-generic root=UUID=3c2f495e-e87d-463e-a6e2-29b2e339d835 ro   quiet splash
initrd /boot/initrd.img-2.6.31-20-generic
}
menuentry "Ubuntu, Linux 2.6.31-20-generic (recovery mode)" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
insmod ext2
set root=(hd0,2)
search --no-floppy --fs-uuid --set 3c2f495e-e87d-463e-a6e2-29b2e339d835
linux /boot/vmlinuz-2.6.31-20-generic root=UUID=3c2f495e-e87d-463e-a6e2-29b2e339d835 ro single
initrd /boot/initrd.img-2.6.31-20-generic
}
#menuentry "Ubuntu, Linux 2.6.31-14-generic" {
#        recordfail=1
#        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
# set quiet=1
# insmod ext2
# set root=(hd0,2)
# search --no-floppy --fs-uuid --set 3c2f495e-e87d-463e-a6e2-29b2e339d835
# linux /boot/vmlinuz-2.6.31-14-generic root=UUID=3c2f495e-e87d-463e-a6e2-29b2e339d835 ro   quiet splash
# initrd /boot/initrd.img-2.6.31-14-generic
#}
#menuentry "Ubuntu, Linux 2.6.31-14-generic (recovery mode)" {
#        recordfail=1
#        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
# insmod ext2
# set root=(hd0,2)
# search --no-floppy --fs-uuid --set 3c2f495e-e87d-463e-a6e2-29b2e339d835
# linux /boot/vmlinuz-2.6.31-14-generic root=UUID=3c2f495e-e87d-463e-a6e2-29b2e339d835 ro single 
# initrd /boot/initrd.img-2.6.31-14-generic
#}

### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
#menuentry "Memory test (memtest86+)" {
# linux16 /boot/memtest86+.bin
#}
#menuentry "Memory test (memtest86+, serial console 115200)" {
# linux16 /boot/memtest86+.bin console=ttyS0,115200n8
#}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional" {
insmod ntfs
set root=(hd0,1)
search --no-floppy --fs-uuid --set 0424215a24214fca
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober ###

Para finalizar solo presionamos Control+O, Enter, Control+X (en ese orden) y listo

Espero esto les sea de utilidad a la hora de modificar su grub2 y cualquier duda no duden en consultar.