GRUB2 es el entorno gráfico que nos permite elegir el sistema operativo al que queremos acceder cuando encendemos nuestro ordenador. Desde hace ya mucho tiempo, esta es la versión que la mayoría de distros Linux nos instalan. En este post voy a explicar paso a paso como configurar y editar GRUB2, editando varios archivos de configuración.
Vamos a ver 2 formas de editar GRUB2. Primero voy a explicar la forma más geek, editando archivos del sistema. Si eso te da miedo, o no te atreves a tocar los archivos del sistema, puedes estar tranquil@. Hay una forma gráfica mediante un programa llamado Grub Customizer.
1. Editando archivo de configuración de GRUB2
Por si no lo sabes, vamos a trabajar con archivos VITALES para GRUB y su sistema. Por tanto, recomiendo hacer siempre una copia de seguridad de cada archivo que editemos. Así, te evitas sustos.
Hay varios archivos a editar, según lo que queramos cambiar de nuestro GRUB. El primero de ellos, es el archivo de configuración de GRUB2. Lo abrimos en un editor de texto (nano, gedit, kate…):
$ sudo nano /etc/default/grub
Voy a explicar que es cada línea de este archivo, y como podemos editarlas para cambiar la configuración de nuestro GRUB:
- GRUB_DEFAULT= 0: Con la opción 0 hacemos que se seleccione por defecto la primera entrada (sistema), con la opción 1, la segunda… así sucesivamente. Si en cambio ponemos saved, hacemos que siempre se seleccione el último sistema al que se accedió.
- #GRUB_HIDDEN_TIMEOUT=0: Si descomentamos esta línea (quitamos la almohadilla o hash, #), oculta el menú de entradas del GRUB. Si ponemos un tiempo mas alto lo que hace es esconder el menú, pero esperarse un tiempo hasta continuar. Si en cambio comentamos la línea (añadimos un #), mostrará el menú de entradas del GRUB.
- GRUB_HIDDEN_MENU_QUIET=true/false: Si está a “true” oculta la cuenta atrás , mientras que si está a “false” muestra la cuenta atrás (aparecerá en la zona inferior de la pantalla).
- GRUB_TIMEOUT=90: Esta línea indica el tiempo de espera (en segundos) hasta iniciar el sistema que tenemos como DEFAULT. Con un valor de -1, se desactiva la cuenta atrás y el valor será infinito.
- GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash acpi_osi=Linux”: En esta línea, la opción quiet agrupa las entradas iguales, con splash, tras elegir el sistema, se muestra la imagen de carga en vez de los mensajes del kernel (la típica pantalla negra con letras blancas donde se muestra el proceso de encendido y comprobación de las particiones de los discos duros). La tercera opción, acpi_osi=Linux puede arreglar varios problemas de hardware en nuestro sistema Linux, como por ejemplo el brillo, tal y como explico en este otro post.
- #GRUB_GFXMODE=640×480: Esta línea permite cambiar la resolución del GRUB. Si se descomenta la línea, se aplica la resolución que pongamos en la línea. Para saber las resoluciones soportadas por nuestro GRUB, debemos poner vbeinfo en la línea de comandos del GRUB (pulsar c para acceder a ella). Eso sí, solo se pueden utilizar resoluciones permitidas por nuestra tarjeta gráfica. Lo más normal es poner el valor “auto” tras el igual.
- #GRUB_DISABLE_LINUX_RECOVERY=”true”: Al descomentar esta línea, no aparezcerá la opción de recovery mode de los sistemas Linux en el menú.
NOTA: El resto de líneas que no he comentado, o no deben modificarse, o no las he modificado nunca. De acuerdo a como escribí en la página “Acerca de…” (en el panel superior del blog), no voy a explicar algo que no he probado, ya que estaría incumpliendo con una de las cosas que en esa página comento: todo lo escrito en este blog ha sido probado por mí (o al menos, tengo conocimiento de lo que hablo gracias a amigos o compañeros).
Una vez que sabemos que es cada línea, y siempre que modifiquemos alguna de ellas, es importante que actualicemos nuestro GRUB de acuerdo con su archivo de configuración:
$ sudo update-grub && sudo update-grub2
Si hacemos algún cambio en cuanto al número de entradas, el nombre de estas o alguna cosa más relacionada con las entradas del menú, podemos probar como aparecerían en nuestro GRUB con el siguiente comando (recuérdalo o, si eres humano, anótalo en alguna parte, ya que lo puedes necesitar bastante a lo largo de esta guía):
$ sudo cat /boot/grub/grub.cfg | grep "menuentry" | cut -d "" -f 2
Muy buen doc
Muy bien explicado el tema, lo unico que me quedo una duda acerca del grub timeout, cuanto es el maximo de tiempo que se puede poner? o si existe alguna manera de que quede en la pantalla de grub hasta que elijamos una opción?
Pues en cuanto al máximo de tiempo, creo que no hay límite. Es un tiempo en segundos, por lo que para lo que preguntas, yo suelo poner un tiempo de "9999999999" segundos (un poco bruto, lo sé, pero funciona jajaja). Un saludo y gracias! ^^
Muy bueno el tutorial, gracias por el programa Grub Customizer no lo conocía. Saludos
Gracias amigo me sirvió mucho
en teoria debes poner -1 y asi no habra ni cuenta atras ni tiempo máximo, hasta que no lo elijas un SO.
Hola, para cambiar el tiempo de espera del arranque, abro terminal y escribo sudo nautilus, luego voy al grub.cfg y lo edito y guardo con el timeout=02, pues tengo arranque dual. El problema es que cuando actualizo el SO vuelve al 10 y tengo que volver a hacerlo una vez al mes o así. Había una opción de proteger el archivo y dejarlo como sólo lectura, pero no la recuerdo y no sé si será la mejor solución. ¿Se te ocurre alguna otra mejor?, gracias y un saludo.
Ah, y comparto una instrucción que limpia los kernel menos el último, es útil para liberar espacio, la encontré por ahí, no es mía:
sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/(.*)-([^0-9]+)/1/")"'/d;s/^[^ ]* [^ ]* ([^ ]*).*/1/;/[0-9]/!d' | xargs sudo apt-get -y purge
Probada en Ubuntu 15.04 64 y funciona bien
Buenas! Lo único que se me ocurre es quitar los permisos de escritura a todos los usuarios salvo root, por lo que los permisos del archivo deben ser los siguientes:
$ ls -l /etc/default/grub
-rw-r–r– 1 root root 1541 feb 2 16:47 /etc/default/grub
Aún así, estos permisos se suponen son los que viene por defecto, y el archivo no debería cambiar. Una duda que me surge es, ¿estás modificando el fichero adecuado? El fichero es /etc/default/grub, y como comentas algo de grub.cfg, puede que no estés editando el archivo correcto.
Un saludo y gracias por lo que compartes! 😀
hola en principio agradecerle el trabajo.
Resulta que he instalado un sistema w7 en mi Pc y después le he instalado en otra partición un Ubuntu y por último he instalado otro w7, al recuperar el grub de Ubuntu solo me aparece un w7 y el otro me aparece dentro del primer w7. ¿ que puedo hacer para que me aparezcan los dos Windows en el menú grub de Ubuntu al arrancar la Pc?
Buenas! Creo que lo que pasa es que Grub te está identificando “Windows” como tipo de sistema, y luego dentro de esa distinción, te ofrece acceso a ambos Windows 7. Si no es así ¿quizás instalaste Ubuntu con Wubi en el primer Windows 7? De otro modo, tampoco tengo claro cómo ha podido pasar, quizás con algún dato más pueda ayudarte.
Hola, muchas gracias por esta guía, resulta muy útil.
Lo malo es que no sé cómo solucionar lo mío, a lo mejor sabes cómo:
El caso es que tengo Chakra Linux y Ubuntu Studio en un mismo disco. El grub de Chakra es el que tengo ya personalizado. Incluso he cambiado los iconos para que Ubuntu Studio aparezca con su logo y no con el genérico del pingüino. Uso el tema Sirius de Chakra para el Grub y tengo un fondo también personalizado.
Pero me gustaría poder cambiar el nombre “Ubuntu (+versión, +kernel…)” por Ubuntu Studio (+versión, +kernel…), y tampoco se me ocurre dónde hacerlo, porque no encuentro líneas que sean con la misma estructura que las que pones de ejemplo :/
Buenas! Hace mucho que no uso Ubuntu y que no edito el Grub de esta forma (pasé a hacerlo mediante Grub Customizer en Arch Linux). De todos modos, puede ser que haya cambiado la estructura de la versión de Grub que utilice Ubuntu, y por eso no encuentres las líneas a las que me refiero. De todas formas, si no recuerdo mal la documentación, la clave es encontrar los distintos menuentry, y según estos, ver a cual corresponde cada uno (SO Linux u otros SO). Espero que esto te ayude un poco.
Hola, colegas linux, como hago para ir directamente la linea 392,, tengo este error.
Error de sintaxis en la línea 392
Se han detectado errores de sintaxis en el fichero de
configuración de GRUB generado.
Asegurese de que no hay errores en /etc/default/grub
en los ficheros /etc/grub.d/* o, por favor, abra una
notificación de errores con el fichero /boot/grub/grub.cfg.new adjunto.
hecho
si alguno le ha pasado, por favor espero comentarios, gracias y saludos
Muy buen documento.
Quería consultarte si podías ayudarme con un problema…
Tengo ubuntu hace mucho rato… uso el grub porque tengo instalado además el WIN.. ubuntu 14 y una extrañeza que encontré por ahí, Zorin OS 12.
Ayer se me presentó un porblema con mi ubuntu 18.04 (el que uso habitualmente) y tuve que cargar zorin para arreglarlo.
Todo ok, salvo el pequeño detalle que el GRUB que me aparece ahora es de Zorin (que es muy detestable) y es sumamente dificil entrar a Ubuntu desde él. ¿alguna idea para volver a mi grub original?
Muchas gracas
Me respondo solo… lo reparé reinstalando el Grub en la dev/sda correspondiente.
Saludos
Buenos dias,
Una pregunta, tengo una lapto con CentOS7 instalado, quiero particionar el disco e instalar Windows en esa particion, tengo que hacer algo en el Grub? Podrian orientarme?