Diferencia entre revisiones de «GRUB»

De Guía Ubuntu
Saltar a: navegación, buscar
m (Moviendo la tabla de contenidos)
(Eliminar el sistema de recuperación)
Línea 140: Línea 140:
  
 
Abrimos etc/default/grub
 
Abrimos etc/default/grub
  sudo gedit etc/default/grub
+
  sudo gedit /etc/default/grub
 
y cambiamos
 
y cambiamos
 
  #GRUB_DISABLE_LINUX_RECOVERY="true"
 
  #GRUB_DISABLE_LINUX_RECOVERY="true"

Revisión de 13:48 13 dic 2009

GRUB
 
Proyecto GNU
1.97 / -
- / -
grub o grub2
-
Gestor de arranque
GPL
No
www.gnu.org/software/grub

GRUB (GRand Unifier Bootloader) es un gestor de arranque: es lo primero que se carga cuando se inicia la computadora. Permite tener diferentes sistemas operativos, y diferentes versiones de ellos, en el mismo disco duro. Por ejemplo podemos tener Windows y GNU/Linux en la misma computadora, GRUB se cargará antes que cualquiera de éstos permitiéndonos elegir cuál iniciar.

El gestor de arranque GRUB viene preinstalado en la mayoría de las distribuciones de GNU/Linux modernas, entre ellas Debian, Ubuntu y sus derivadas. Anteriormente, el gestor de arranque más usado era LILO.

Grub 2

Grub 2.0 es el gestor de arranque predeterminado de algunas de las últimas versiones de linux.

Modificaciones en el menú de arranque

Para modificar el tiempo de espera, sistema operativo por defecto, el nombre de los sistemas operativos y toda la información del arranque de cada uno de ellos (igual que se hacía antes en /boot/grub/menu.lst) se puede hacer mediante el archivo /boot/grub/grub.cfg No es recomendable hacerlo de este modo, ya que este archivo es un archivo creado automáticamente por el sistema utilizando otros archivos que son los que se deben modificar para cambiar los ajustes de Grub2. El archivo grub.cfg tambien se genera escribiendo en terminal:

sudo update-grub2

Los principales archivos para modificar las opciones de grub2 son:

  • Los contenidos en la carpeta /etc/grub.d/
    • /etc/grub.d/10_linux
      • Este archivo contiene comandos y scripts que se encargan del kernel de linux en la particion principal.
    • /etc/grub.d/30_os-prober
      • Este archivo contiene comandos y scripts que se encargan de otros sistemas operativos.
      • El archivo tiene 4 secciones. Los cambios que realicemos en una sección no afectarán al resto de las secciones.
        • Las cuatros secciones son Windows, otras particiones Linux, OSX y Hurd.
  • El archivo /etc/default/grub
  • Los de la carpeta /usr/sbin/ (solamente los que llevan grub*, son los comandos que se ejecutan en terminal)
Nota idea.png Los errores en las modificaciones de GRUB pueden llevar a problemas con el arranque. Por esto es recomendable hacer una copia de seguridad de los archivos que modifiquemos antes de realizar algún cambio

Cambiar el nombre de un sistema operativo en el menú

Con este comando podemos ver los nombres de todos los sitemas operativos (los nombres no cambian hasta que ejecutamos sudo update-grub2)

sudo cat /boot/grub/grub.cfg | grep "menuentry" | cut -d '"' -f 2
Cambiar el nombre de Ubuntu

Para cambiar el nombre de Ubuntu, modificamos el archivo /etc/grub.d/10_linux:

sudo gedit /etc/grub.d/10_linux

Podemos, por ejemplo, hacer que el nombre de Ubuntu sea del tipo "Ubuntu, Karmic 2.6.31-15-generic", añadimos la línea:

codename="`lsb_release -cs`"

al final de:

while [ "x$list" != "x" ] ; do
 linux=`version_find_latest $list`
 echo "Found linux image: $linux" >&2
 basename=`basename $linux`
 dirname=`dirname $linux`
 rel_dirname=`make_system_path_relative_to_its_root $dirname`
 version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
 alt_version=`echo $version | sed -e "s,\.old$,,g"`
 linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"

De esta forma añadimos una nueva variable con el nombre de la distro al archivo, que podremos usar despues en donde pone:

 linux_entry "${OS}, Linux ${version}" \
     "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
     quiet

Podemos modificar la primera línea a nuestro antojo:

linux_entry "${OS}, ${codename} ${version}" \         de esta forma mostrará "Ubuntu, Karmic 2.6.31-15-generic"
linux_entry "${OS} ${codename}" \                     de esta forma mostrará "Ubuntu Karmic"
linux_entry "${OS} Texto que quieras" \               de esta forma mostrará "Ubuntu Texto que quieras"

Guardamos el archivo y ejecutamos sudo update-grub2

Cambiar el nombre otro sistema operativo

Para cambiar el nombre de otros SO, modificamos el archivo /etc/grub.d/30_os-prober:

sudo gedit /etc/grub.d/30_os-prober

Vamos a la sección del archivo que corresponda (si es para cambiar Windows es la primera sección sobre la línea 80)

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"

Y cambiamos:

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

Por:

if [ "${LONGNAME}" = "Titulo literal que aparece en el menu grub" ] ; then
   LONGNAME="Nuevo título que quieres"
elif [ -z "${LONGNAME}" ] ; then
   LONGNAME="${LABEL}"
fi

Por ejemplo, si en el menú grub aparece "Windows 7 (loader) (on sda1)" y queremos q ponga "Seven (on sda1)", entonces escreibiremos:

if [ "${LONGNAME}" = "Windows 7 (loader)" ] ; then
   LONGNAME="Seven"
elif [ -z "${LONGNAME}" ] ; then
   LONGNAME="${LABEL}"
fi

Guardamos el archivo y ejecutamos sudo update-grub2

Cambiar o eliminar (on /dev/sdxy)

Modificamos la parte del archivo que pone (cada línea que pone menumentry es de una sección del archivo):

menuentry "${LONGNAME} (on ${DEVICE})" {
menuentry "${LONGNAME} " {                                    de esta forma, no muestra (on /dev/sdxy)
menuentry "${LONGNAME} (en la particion ${DEVICE})" {         de esta forma, muestra (en la particion /dev/sdxy)

Guardamos el archivo y ejecutamos sudo update-grub2.

Agregar manualmente una opción para el arranque de Mac Os X

Esta solución la recomiendo usar únicamente en caso de que no consigamos arrancar nuestra partición Mac o Hackintosh de ninguna manera. Comprobé que funciona para arrancar iAtkos despues de haberlo instalado con Chamaleon como gestor de arranque. Nos damos permiso de escritura en el archivo grub.cfg:

sudo chmod 0777 /boot/grub/grub.cfg

Abrimos el archivo grub.cfg:

sudo gedit /boot/grub/grub.cfg

Justo debajo de ### BEGIN /etc/grub.d/30_os-prober ### añadimos las siguientes líneas (hd0,1 es la primera partición del primer disco duro, si no está mac es esa partición, hd0,0 debe ser cambiado):

menuentry "MacOS X (en hd0,1)" {
          insmod hfsplus
          set root=(hd0,1)
          multiboot /boot
}

Atencion: en el propio archivo recomienda no modificar este archivo. Cada vez que ejecutemos el comando update-grub, el archivo se generará automáticamente y estos cambios se perderán.

Eliminar un sistema operativo del menú Grub

La información de los sistemas operativos se agrupa en distintos archivos de la carpeta /etc/grub.d/ Para eliminar un sistema operativo, simplemente eliminamos el archivo o le cambiamos el nombre (por ejemplo introduciendo un asterisco antes del nombre).

Eliminar memtest

Para que no aparezca memtest en el menú, le quitamos los permisos de ejecución con el siguiente comando:

sudo chmod -x /etc/grub.d/20_memtest86+

Si escribimos +x en lugar de -x volvemos a darle permisos de ejecución y nos volverá a aparecer.

Ejecutamos:

sudo update-grub2
Eliminar el sistema de recuperación

Abrimos etc/default/grub

sudo gedit /etc/default/grub

y cambiamos

#GRUB_DISABLE_LINUX_RECOVERY="true"

por:

GRUB_DISABLE_LINUX_RECOVERY="true"

También podemos hacer esto en un solo comando con:

sudo sed s/'#GRUB_DISABLE_LINUX_RECOVERY="true"'/'GRUB_DISABLE_LINUX_RECOVERY="true"'/g -i /etc/default/grub

Despues actualizamos grub2:

sudo update-grub2

Cambiar el tiempo de espera y sitema operativo por defecto

Estos parámetros se modifican en el archivo /etc/default/grub:

$ sudo gedit /etc/default/grub

En la sección:

GRUB_DEFAULT=0    

Sistema operativo por defecto, 0 es el primero, 1 el segundo, etc.

GRUB_TIMEOUT="10"    

Tiempo de espera en segundos Despues de modificar el archivo, debemos actualizar grub.cfg con el comando:

sudo update-grub2

Modificar el entorno

Modificar la imagen de fondo

La imagen de fondo debe estar en formato .png, o .tga, preferiblemente tga. Por ejemplo para utilizar una imagen cualquiera en JPG, la abrimos la imagen con Gimp, vamos al menú Imagen>Escalar imagen y le ponemos la resolución 640x480. Es preferible guardarla en el escritorio y copiarla en /usr/share/images/grub/ , donde vienen las imagenes por defecto de grub2, con una resolución de 640x480. Copiarla con el comando:

 sudo cp/home/tu_nombre/Escritorio/tu_imagen.tga /usr/share/images/grub/tu_imagen.tga

Crearemos un link a la carpeta /boot/grub para no tener que editar el script theme.

sudo ln -s /usr/share/images/grub/tu_imagen.tga /boot/grub/moreblue-orbit-grub.tga

Despues de modificar el archivo, debemos actualizar grub.cfg con el comando:

sudo update-grub2
Modificar el color del texto

Antes de modificar los colores del texto debemos tener una imagen de fondo. Para modificar los colores del texto abrimos el archivo /etc/grub.d/05_debian_theme

sudo gedit /etc/grub.d/05_debian_theme

En la sección:

# set the background if possible
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
 set color_normal=black/black 
 set color_highlight=magenta/black

Donde en "set color_normal" el primer "black" es el color del texto sin seleccionar y en "set color_highlight", "magenta" es el color del texto seleccionado y "black" es el color del fondo en la línea de texto seleccionado. Los colores que se pueden utilizar son:

  • rojo: red
  • verde: green
  • azul: blue
  • amarillo: yellow
  • cian: cyan
  • magenta: magenta
  • blanco: white
  • negro: black

Despues de modificar el archivo, debemos actualizar grub.cfg con el comando:

sudo update-grub2

Grub 1

Modificaciones en el menú de arranque

Nota idea.png Los errores en las modificaciones de GRUB pueden llevar a problemas con el arranque. Por esto es recomendable hacer una copia de seguridad del archivo menu.lst antes de realizar algún cambio. Se puede hacer con el siguiente comando:
$ sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.backup

Luego, para restaurar la copia de seguridad, hacemos lo siguiente:

$ sudo cp /boot/grub/menu.lst.backup /boot/grub/menu.lst

Si ya es demasiado tarde mira Cómo recuperar GRUB.


Cambiar el sistema operativo por defecto

Si tenemos Windows instalado y después hemos instalado Ubuntu, la configuración de GRUB por defecto hará que arranque Ubuntu. Si por algún motivo necesitamos que arranque Windows por defecto, veamos los pasos a seguir.

  • Editamos el archivo de configuración del menú de arranque de GRUB:
$ sudo gedit /boot/grub/menu.lst
  • Buscamos la siguiente línea:
default 0
  • Cambiamos el 0 por el número que ocupe el sistema operativo en la lista que queremos que se inicie por defecto, empezando por 0.
  • Guardamos los cambios y cerramos el editor.

Cambiar el tiempo de espera

En Ubuntu, GRUB deja por defecto 10 segundos para permitir la selección del sistema operativo o versión del kernel. Este tiempo puede parecer excesivo o demasiado breve. Para modificarlo basta con seguir los siguientes pasos:

  • Editamos el archivo de configuración del menú de arranque de GRUB:
$ sudo gedit /boot/grub/menu.lst
  • Buscamos la siguiente línea:
timeout         10
  • Modificamos el valor 10 por el deseado, teniendo en cuenta que se trata de segundos.
  • Guardamos los cambios y cerramos el editor.

Ocultar el menú

Si utilizamos normalmente sólo un sistema operativo o una versión del kernel, es molesto que nos aparezca el menú en cada arranque del sistema. GRUB permite configurar el menú de modo que no se muestre al arranque salvo que presionemos la tecla Escape (Esc) durante el mismo. Para hacer esto, seguimos los siguientes pasos:

  • Editamos el archivo de configuración del menú de arranque de GRUB:
$ sudo gedit /boot/grub/menu.lst

Buscamos la siguiente línea:

#hiddenmenu
  • Borramos la almohadilla o numeral (#) de la línea, haciendo esto la descomentaremos. Debe quedar así:
hiddenmenu
  • Guardamos los cambios y cerramos el editor.

Proteger con contraseña

Para que ningún usuario no autorizado pueda modificar los valores de GRUB en tiempo de ejecución, podemos establecer una contraseña, de esta forma sólo pulsando la tecla 'p' e introduciendo la contraseña se podrán cambiar los parámetros del programa.

  • Editamos el archivo de configuración del menú de arranque de GRUB:
$ sudo gedit /boot/grub/menu.lst

Buscamos la siguiente línea:

#password topsecret
  • Borramos la almohadilla o numeral (#) de la línea, haciendo esto la descomentaremos. Debe quedar así:
password topsecret
  • Guardamos el archivo y cerramos el editor.

Ahora la contraseña es topsecret, se puede cambiar e introducir la que se desee.

Codificar contraseña

Si queremos que nadie pueda leer la contraseña en el archivo de configuración de GRUB, el programa también ofrece la posibilidad de codificarla en formato md5:

$ sudo grub update 
  • Aparece la consola de GRUB, entonces escribimos:
grub> md5crypt
  • Introducimos la palabra a codificar, en este caso topsecret, el programa devolvería el valor:
$1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/'
  • Lo copiamos y volvemos a la consola de Ubuntu:
grub> quit
  • En el archivo de configuración del menú de GRUB, borramos la siguiente línea:
# password topsecret'

En su lugar, escribimos:

password --md5 $1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/

Y ya tenemos nuestro GRUB protegido por contraseña cifrada.

  • Guardamos los cambios y cerramos el editor.

Si queremos restringir el acceso a algún elemento del menú de GRUB, basta con añadir después del título del menú una línea con la contraseña, por ejemplo:

title		Ubuntu, kernel 2.6.15-26-386 (recovery mode)
password 	--md5 $1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/
root		(hd1,0)
kernel		/boot/vmlinuz-2.6.15-26-386 root=/dev/hdb1 ro single
initrd		/boot/initrd.img-2.6.15-26-386
boot
  • Guardamos los cambios y cerramos el editor.

Cambiar colores

Por defecto, en Ubuntu el menú del GRUB tiene un fondo negro con letras blancas. Para cambiar los colores del menú de arranque por otros más atractivos, seguimos los siguientes pasos.

  • Editamos el archivo de configuración del menú de arranque de GRUB:
$ sudo gedit /boot/grub/menu.lst
  • Buscamos la siguiente línea:
# color cyan/blue white/blue
  • * Borramos la almohadilla o numeral (#) de la línea, haciendo esto la descomentaremos. Debe quedar así:
color cyan/blue white/blue
  • Guardamos los cambios y cerramos el editor.

Ahora nos aparecerá un menú con fondo azul, al estilo de varias aplicaciones con interfaz de línea de comandos. Si queremos, podemos cambiar los colores reemplazando las palabras cyan, blue y white por otras, que representen los nombres de distintos colores en inglés.

Colocar una imagen de fondo

En vez de cambiar sólo los colores del menú, GRUB nos brinda la posibilidad de colocar una imagen de fondo para hacerlo aún más atractivo.

La imagen que se puede colocar en GRUB tiene que tener un máximo de 14 colores y un tamaño de 640 × 480 píxeles. Tiene que estar grabada en formato .xpm y conviene que esté comprimida con gzip (extensión .gz), aunque no es imprescindible.

  • Para saber desde GIMP cuántos colores tiene nuestra imagen ve a Colores -> Info -> Análisis del cubo de color...
  • Si tiene más de 14 colores, podemos reducir el número con Imagen -> Modo -> Indexado.
  • Una vez tenemos la imagen, para ponerla de fondo editamos el archivo de configuración del menú de GRUB:
$ sudo gedit /boot/grub/menu.lst
  • Añadimos al principio la línea:
splashimage=(hd0,2)/ruta_imagen/nombre_imagen.xpm.gz 

Donde (hd0,2) identifica el disco y partición donde se encuentra la imagen. Esto varía según el equipo. Si tienes un solo disco duro, antes de la coma irá hd0; si tienes Ubuntu en una sola partición, pero compartiendo el disco con otro sistema operativo, posiblemente irá después de la coma un 1. Puede ayudarte ejecutar:

$ sudo fdisk -l

teniendo en cuenta que GRUB numera las particiones desde 0 (por ejemplo, (hd0,1) se corresponde con sda2; (hd1,2) con sdb3).

  • Reiniciamos y listo, ya tendremos una imagen de fondo en el menú de arranque.

Configuración mediante aplicación externa

Otra de las formas para configurar GRUB fácilmente es por medio de la aplicación Start-Up Manager, para instalarlo tan solo hay que hacer clic a el Deb de su aplicación, no se encuentra en los repositorios por lo tanto tendréis que descargalo aquí.

Con esta aplicación podremos configurar el GRUB de manera muy fácil, nos da a elegir todas las opciones de manera sencilla.

Para poder ejecutarlo debemos poner en la consola lo siguiente:

$ sudo startupmanager

Ver también

Artículos relacionados

Editores gráficos

Existen alternativas para realizar la configuración de manera gráfica, como las siguientes:

Aplicaciones similares

Enlaces externos