Modificar GRUB

Como ya comenté en su momento en el manual sobre cómo instalar Linux, que fue una de las primeras entradas que escribí en el Blog, el GRUB (GRand Unifier Bootloader) es un gestor de arranque: es lo primero que se carga cuando arrancamos el ordenador. Permite tener diferentes sistemas operativos, y diferentes versiones de ellos, en el mismo disco duro. Por ejemplo podemos tener Windows y GNU/Linux en el mismo ordenador, 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.



Bien y tras esta clase de teoría cortesía de la Guía Ubuntu pasamos a la práctica. ¿Cómo podemos modificar el Grub? ¿Cómo podemos cambiar el sistema operativo por defecto? ¿Cómo podemos cambiar el tiempo de espera? La respuesta a esas y otras preguntas, a continuación ;)

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.


Actualizamos la información del inicio:


sudo update-grub



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.

Actualizamos la información del inicio:

sudo update-grub


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.

Actualizamos la información del inicio:

sudo update-grub



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 topsecrets

Guardamos el archivo y cerramos el editor.

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


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 una resolución de 640 x 480, tiene que estar en formato .xpm y comprimidas en .gz

Para saber desde GIMP cuántos colores tiene nuestra imagen ir a 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/imagen.xpm.gz

Donde (hd0,2) es donde se encuentra el directorio /boot. Esto varía según el equipo, para saber donde se encuentra debemos ejecutar:

sudo fdisk -l


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


ACTUALIZADO: Como digo arriba, la calidad de las imágenes que podemos poner de fondo en el Grub que nos viene por defecto está limitada a un máximo de 14 colores y una resolución de 640 x 480 por lo que, la verdad, queda un poco cutre. Una alternativa es instalarnos un Grub con soporte gráfico. En ESTA ENTRADA explico cómo hacerlo.


Referencias: Guía Ubuntu

Related Posts Plugin for WordPress, Blogger...

39 comentarios:

  1. Javyer dijo:

    Estaba buscando cómo cambiar el orden de Grub para que inicie Windows 1º porque en mi casa se pierden con el Grub...

    Voy a probarlo ahora mismo a ver qué tal me sale :)

    Saludos y gracias por la info.

  2. Jabba dijo:

    Todos hemos pasado por eso :). Me alegro que te sirva. Si te surge alguna duda ya sabes.

    Un saludo.

  3. Javyer dijo:

    No comprendí muy bien lo dle "default 0" pero al 2º intento lo hice correctamente ;)

    Lo he puesto en mi blog para tenerlo más a mano y no perder este post para cuando quiera modificar otras cosas del Grub y si de camino le sirve a otros pues mejor :D

    Saludos!

  4. Jabba dijo:

    Me alegro que funcionase :).

    Comparte lo que quieras. La información está para eso ;).

    Un saludo.

  5. Wabthor dijo:

    Muchas gracias por tu aporte Jabba, muy claro y preciso.

    Saludos.

  6. Anónimo dijo:

    Hola,

    soy nuevo en linux (uso ubuntu) y tengo una duda sobre el GRUB este.. El caso es que instalando las actualizaciones de linux, me han aparecido varias versiones de este y, cada vez que esto pasa, tengo que modificar el default para que me arranque windows por defecto.. Y, la verdad, empiezo a estar 1 poco cansado.. Hay alguna manera que el GRUB solo muestre 4 lineas (la version mas nueva de linux y windows, por ejemplo)?

    Muchas gracias

  7. Jabba dijo:

    Antes de nada, te agradecería que leyeras la sección correspondiente a los comentarios en el Acerca de.

    Dicho esto, la verdad que no tengo ni idea de cómo hacer esto que pides. De todas formas tampoco supone demasiado modificar el menu.lst cada vez que se actualize el kernel (que tampoco es que sea todos los días). Además, es un minuto.

  8. Muy util la info pero tengo una duda mas. Como hago para borrar una de las opciones en caso de que tenga duplicadas alguna de ellas?. Gracias.

  9. Jabba dijo:

    Puedes hacer dos cosas, o borras las líneas que no quieres que aparezcan directamente del menu.lst y guardas los cambios, o pones # delante de las líneas que no quieres que se muestren (por si no quieres borrarlas) y se ocultarán.

    Un saludo!

  10. Anónimo dijo:

    Muchas gracias por la ayuda
    Carlos desde Argentina

  11. David dijo:

    Hola a todos, tenia Linux Kubuntu 8.04, recientemente lo actualize a Linux Kubuntu 8.1 KDE 4.1, al iniciar Kubuntu, inicia bien, ahora, mi problema es el siguiente, cuando entro en el Recovery System, y doy inicio al proceso de recuperacion de la maquina (se restaura al punto de fabrica), este, elimina Kubuntu 8.1 KDE 4.1 volviendo a dejar, Kubuntu 8.04, lo que quiero yo, es poder modificar la opcion Recovery System, para que cada vez que la restaure, ésta vuelva a como está ahora, con Kubuntu 8.1 KDE 4.1, la configuracion que tengo y todos los programas instalados, desde ya, el que me pueda ayudar, le agradezco mucho... Gracias...

  12. Jabba dijo:

    Hola David. ¿De fábrica tu equipo venía con Kubuntu presintalado o con Windows? Lo digo porque si venía con Kubuntu preinstalado y restauras al punto de fábrica, evidentemente te va a borrar todos los cambios y programas que hayas instalado y te lo va a dejar como te venía de serie (con Kubuntu 8.04).

    Si en cambio te venía con Windows, en el menú del Recovery System supongo que te preguntará sobre qué partición quieres que restaure el sistema. Si tu eliges la partición en la que tengas instalado windows, no puede borrarte ni kde 4.1 ni nada que no tengas en la partición original de Windows, así que no tiene demasiado sentido esto que comentas. Ya nos dices.

    Un saludo

  13. Anónimo dijo:

    Tengo un teclado inalambrico:

    ¿Por qué no puedo utilizar el menu GRUB pero si puedo modificar la bios?

    No lo entiendo

  14. Anónimo dijo:

    excelente me ha servido mucho

  15. Adrian dijo:

    Hola.

    Cada vez que Ubuntu se actualiza se agrega una nueva linea al grub. Mi pregunta es: como hago para que esto no suceda?. Solo quiero una sola opcion para entrar a ubuntu.

    Desde ya muchas gracias!

  16. Jabba dijo:

    Igual me equivoco, pero creo que eso que pides no es posible. De todas formas es tan sencillo como editar el archivo menu.lst para borrar u ocultar las líneas que no quieras cada vez que hagas una nueva actualización del kernel (no se tarda ni un minuto).

    Un saludo

  17. Anónimo dijo:

    Hola! necesito saber si esta lineas de codigo las ingreso desde la terminal de linux o desde donde?

  18. Jabba dijo:

    Desde una terminal escribes:

    sudo gedit /boot/grub/menu.lst

    con eso abres el archivo de texto en el cual modificas las líneas de código que puedes ver en el tutorial

  19. Anónimo dijo:

    hola...tengo un problema... instale windows y ubuntu... pero al instalar windows me borro en grub de ubuntu..eso lo arregle..ahora me sale solo el menu para ingresar a ubuntu pero no para ingresar a windows... me puedes ayudar a modificar para que me puedan salir los 2 en el menu??

  20. Jabba dijo:

    Puede que hayas modificado el grub accidentalmente y ocultado o borrado las líneas relativas a Windows. Puedes hacer varias cosas:

    La primera es reinstalar el grub. AQUÍ tienes una entrada que te puede servir de ayuda.

    También puedes eliminar tu GRUB actual e instalar uno nuevo (con soporte gráfico) tal y como explico en ESTA OTRA ENTRADA (en tu caso haz sólo los puntos 1 y 2 del manual).

    Si nada de esto te funciona (que lo dudo) puedes probar a añadir directamente al fichero de configuración del grub las líneas relativas a windows. Esto sería, abres una terminal y escribes:

    sudo gedit /boot/grub/menu.lst

    Al final del documento, justo después de:

    title Ubuntu 9.10, memtest86+
    uuid 48016f49-40ef-4a85-9fd7-ec0cec978a93
    kernel /boot/memtest86+.bin
    quiet


    y antes de:

    ### END DEBIAN AUTOMAGIC KERNELS LIST

    introduce lo siguiente:

    title Microsoft Windows XP Professional
    root (hd0,0)
    savedefault
    makeactive
    chainloader +1

    Donde pone root (hd0,0) tienes que poner el disco tuyo donde se va a instalar el grub. Si no lo sabes abre una terminal y escribe:

    sudo grub

    luego:

    find /boot/grub/stage1

    y la terminal te devolverá lo que estamos buscando. En mi caso:

    (hd0,0)

    Espero que te sirva!

  21. Anónimo dijo:

    cuando escribo sudo gedit /boot/grub/menu.lst, me pide una pass..la pongo y dsp me tira el sgite error:

    (gedit:4392): Gtk-WARNING **: cannot open display:

    no se xq..

  22. Jabba dijo:

    Qué raro... eso pinta a que de alguna manera no detecta que estás conectado como root a las X.

    Prueba a hacer lo mismo desde la Terminal de root. Si no te aparece por defecto, edita el menú Aplicaciones (botón derecho del ratón) y habilita su casilla para que se muestre en el menú de Herramientas del sistema.

    Si no consigues nada, abre una terminal y escribe:

    sudo /usr/X11R6/bin/xhost +

    Si así tampoco funciona, sólo se me ocurre que pruebes a instalar gksu:

    sudo apt-get install gksu

    y uses gksu en lugar de sudo para abrir el menu.lst del grub.

    Ya nos cuentas.

  23. Gracias por la ayuda! Saludos desde Chile

  24. Jabba dijo:

    No hay de qué. Saludos.

  25. Emilce dijo:

    Hola! soy novata con ubuntu 9.10 Intente modificar el grub tal cual lo indicas en este post, pero cuando se abre el archivo menu.lst este está vacio y no puedo modificar nada, ¿que estaré haciendo mal? desde ya muchas gracias

  26. Jabba dijo:

    Hola Emilce, cuando sucede eso es porque te está creando un archivo llamado menu.lst. Esto suele ser debido a que estás o bien escribiendo mal la ruta o bien escribiendo mal el nombre del archivo. Verifica antes de nada que en la ruta /boot/grub/ está el archivo menu.lst y de estar, comprueba también que escribes correctamente la orden en la terminal. Suerte ;)

  27. Adrian dijo:

    Hola. A mi me pasa lo mismo que a Emilce el fichero se abre en blanco. Ya he comprobado todo lo que le dices en el comentario anterior pero esta todo ok?? Sabes que podria ser??

    Muchas Gracias. SAludos

  28. Anónimo dijo:

    saludos, he probado este método ya unas cuantas veces y no lo consigo. soy novato totalmente en ubuntu, me costó saber lo que era una terminal XD
    el caso es que nada más poner sudo gedit /boot/grub/menu.lst se me abre un editor de textos, pero no hay nada escrito...que hago???

    gracias de antemano

  29. Courage dijo:

    Anónimo 29:

    prueba copiando esto con los datos de tu distro, porque yo lo he hecho sobre Arch:

    # Config file for GRUB - The GNU GRand Unified Bootloader
    # /boot/grub/menu.lst

    # DEVICE NAME CONVERSIONS
    #
    # Linux Grub
    # -------------------------
    # /dev/fd0 (fd0)
    # /dev/sda (hd0)
    # /dev/sdb2 (hd1,1)
    # /dev/sda3 (hd0,2)
    #

    # FRAMEBUFFER RESOLUTION SETTINGS
    # +-------------------------------------------------+
    # | 640x480 800x600 1024x768 1280x1024
    # ----+--------------------------------------------
    # 256 | 0x301=769 0x303=771 0x305=773 0x307=775
    # 32K | 0x310=784 0x313=787 0x316=790 0x319=793
    # 64K | 0x311=785 0x314=788 0x317=791 0x31A=794
    # 16M | 0x312=786 0x315=789 0x318=792 0x31B=795
    # +-------------------------------------------------+
    # for more details and different resolutions see
    # http://wiki.archlinux.org/index.php/GRUB#Framebuffer_Resolution

    # general configuration:
    timeout 5
    default 0
    color light-blue/black light-cyan/blue

    # boot sections follow
    # each is implicitly numbered from 0 in the order of appearance below
    #
    # TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
    #
    #-*

    # (0) Arch Linux
    title Arch Linux
    root (hd0,0)
    kernel /vmlinuz26 root=/dev/disk/by-uuid/83d48ffd-4059-4729-a201-7b07baf12d1c ro
    initrd /kernel26.img

    # (1) Arch Linux
    title Arch Linux Fallback
    root (hd0,0)
    kernel /vmlinuz26 root=/dev/disk/by-uuid/83d48ffd-4059-4729-a201-7b07baf12d1c ro
    initrd /kernel26-fallback.img

    # (2) Windows
    #title Windows
    #rootnoverify (hd0,0)
    #makeactive
    #chainloader +1

    Para Jabba: ¿Por qué me pone Windows al final del fichero? Saludos

  30. Courage dijo:

    Y para finalizar anónimo 29:

    No pongas sudo gedit, pon únicamente gedit, ya que el usuario root no ha ejecutado el entorno gŕafico. Primero prueba esto y si no te va prueba lo que te he dicho antes

  31. Jabba dijo:

    Es más simple que todo eso. El problema es que este post lo publiqué en octubre de 2007, por aquel entonces el GRUB generaba un fichero llamado menu.lst en el que se guardaban las intrucciones que utilizaba el gestor de arranque, instrucciones que podíamos modificar a nuestro gusto. A partir de Karmic Koala esto deja de ser así ya que se instala por defecto una versión actualizada llamada GRUB 2 que ya no genera ese fichero. Ahora genera uno llamado grub.cfg que, aunque no lo recomiendan desde los foros oficiales de Ubuntu, puede ser igualmente "manipulado" por nosotros (la estrucutra es prácticamente idéntica al GRUB antiguo). A finales de 2009 publiqué un post sobre esto mismo:

    http://www.elblogdejabba.com/2009/12/modificar-grub-2.html

    Saludos!

  32. Anónimo dijo:

    gracias a los dos, sigo sin encontrar solución...como he dicho soy totalmente novato y tengo miedo de modificar lo que no debo...

  33. Courage dijo:

    Anónimo 33:

    Échale un ojo a esto, además no es modo texto

    http://ubuntulife.wordpress.com/2007/04/24/modificar-el-grub-y-la-pantalla-de-splash-de-manera-grafica/

  34. Anónimo dijo:

    Hola estimado,

    una consulta, ¿puede ser que el grub se modifique automaticamente y deje de hacer el conteo de espera? Porque me pasó que de un día para otro ya no contó más.

  35. Jabba dijo:

    Hola anónimo, pues la verdad que sí y es algo bastante molesto que ocurre cada vez que hay una actualización del kernel, se actualiza el GRUB y se resetean los parámetros originales. Hay que volver a cambiar la información del tiempo de espera y demás cada vez cada vez que hay una actualización de este tipo. También puedes aprovechar y ocultar las líneas de los kernels antiguos que te aparecerán en el GRUB colacando un símbolo # delante de cada línea que no quieras mostrar.

  36. Courage dijo:

    Yo no sé por qué os salen esas cosas, a mí me sale "Arch Linux" y "Arch Linux fallback".

    ¿Hacéis colección de kernels?

  37. Anónimo dijo:

    Muchas gracias!!! Saludos.

Deja tu comentario:

Procura que tu comentario esté relacionado con esta entrada y no olvides revisar la ortografía. Estás en tu perfecto derecho de comentar anónimamente, pero por favor, escribe con respeto y educación. Los comentarios que incumplan estas normas básicas de civismo serán eliminados sin previo aviso ni piedad.

Bajar inicio