¿Cómo cambio el orden de arranque de GRUB?

336

Tengo Windows 7 y Ubuntu instalados en una máquina compartida. Debido a que muchos de los no desarrolladores usan Windows, me gustaría cambiar el orden de arranque para que sea más fácil para ellos.

Actualmente, el orden de arranque es similar al siguiente:

  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86 (arranque seguro)
  • Prueba de Memoria
  • Prueba de Memoria
  • Windows 7 en /dev/sda6

¿Cómo cambio el orden predeterminado para que Windows 7 esté en la parte superior de la lista?

  • Windows 7 en /dev/sda6
  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86 (arranque seguro)
  • Prueba de Memoria
  • Prueba de Memoria
chrisjlee
fuente
55
Preguntas y respuestas similares: askubuntu.com/questions/52963/…
fossfreedom
¿Hiciste un 'sudo update-grub' después de cambiar el archivo grub?
Tinellus
Sí, creo que me olvidé de hacer eso, ¡gracias! Intentaré actualizar con los resultados.
jeffery_the_wind
kubuntu 14.04 sudo apt-get install kde-config-grub2luego en el sistema config goto apagado de inicio
n611x007

Respuestas:

295

Puede usar una aplicación GUI fácil de usar llamada Grub Customizer para hacer su vida un poco más fácil. Como su nombre lo indica, puede hacer mucho más que simplemente reordenar las entradas del menú de GRUB con él.

Puedes instalarlo de la siguiente manera:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

(Consulte la pregunta Formular Ubuntu) ¿Es seguro agregar PPA a mi sistema y cuáles son algunas de las "banderas rojas" a las que debe prestar atención? )

Hay un artículo de How-To Geek al respecto, Cómo configurar el menú de arranque de Linux GRUB 2 de manera fácil . Echa un vistazo si estás interesado. Además, hay un hilo resuelto en los foros de Ubuntu, Cambiar el orden de arranque en GRUB 2 que menciona esta herramienta.

Aquí hay algunas capturas de pantalla:

pantalla_1

pantalla_2

pantalla_3


Alguna solución de problemas:

La configuración del Personalizador de Grub puede funcionar solo desde la última instalación de Linux / Ubuntu, la que instaló el Grub.

Por ejemplo, si alguien tiene dos sistemas operativos instalados (Windows y Ubuntu), y luego instala un tercer sistema operativo (Manjaro, etc.) y luego trata de seguir la respuesta anterior, los cambios de Grub Customizer no funcionarán cuando se realicen desde el segundo sistema operativo ( Ubuntu, en el ejemplo). El programa tiene que instalarse en el sistema operativo thirs, ya que parece que Grub Customizer solo puede editar los archivos Grub creados por la instalación del sistema en el que está instalado.

Los archivos que determinan el menú de arranque de Grub vienen en la mayoría de los casos con el último sistema instalado en una máquina, por lo que Grub Customizer debe instalarse y utilizarse desde ese sistema Linux.

Nitin Venkatesh
fuente
44
Muy bienvenido :) Las capturas de pantalla provienen de la publicación del blog que está vinculada anteriormente: P
Nitin Venkatesh
2
Esto no funciona con la última versión de Ubuntu. ¿Podemos obtener una publicación actualizada aquí?
AL
77
Creo que tu respuesta es buena y útil, así que no me malinterpretes. Si bien las herramientas GUI son ordenadas y fáciles, ocultan los hechos. La respuesta de Marve a continuación analiza los archivos en uso y cómo actualizarlos manualmente, proporcionando información sobre cómo funciona Grub. Cuando la GUI falla, y lo hará para algunos, al menos eche un vistazo a los fundamentos: después de todo, no son tan difíciles y la manipulación manual probablemente será más fácil a largo plazo.
barrypicker
1
También me encontré con problemas al usar esta herramienta. Parece que actualiza la correlación / etc / default / grub pero luego dice core dump y abortó.
Mauricio Gracia Gutierrez
1
Esto necesita una actualización relacionada con los niveles duales del menú de grub actual.
Hannu
244

También puede cambiar la entrada de arranque predeterminada de grub desde la línea de comandos sin tener que instalar ninguna herramienta adicional. Esto no cambiará el orden en la lista, pero permitirá que se inicie un sistema operativo diferente de manera predeterminada, que de todos modos suena como lo que desea.

Primero, haga una copia de seguridad de /etc/default/grub. En caso de que algo salga mal, puede volver fácilmente a la copia válida conocida:

sudo cp /etc/default/grub /etc/default/grub.bak

Luego edite el archivo usando vimo el editor de texto de su elección:

sudo vim /etc/default/grub

Encuentra la línea que contiene

GRUB_DEFAULT=0

y configurarlo en

GRUB_DEFAULT=x

donde xes el índice del elemento de menú grub al que le gustaría iniciar de forma predeterminada. Tenga en cuenta que los elementos del menú están indexados a cero. Eso significa que el primer elemento de la lista es 0y que el sexto elemento es en realidad 5. Entonces, para iniciar el sexto elemento de la lista, la línea se leería:

GRUB_DEFAULT=5

Si olvidó el orden de los artículos, eche un vistazo /boot/grub/grub.cfg. Cada entrada de menú se especifica mediante una línea de tipo:

menuentry 'Ubuntu' [options] {

También puede elegir el valor predeterminado por el nombre en lugar del índice, por ejemplo:

GRUB_DEFAULT='Ubuntu'

si había una menuentry 'Ubuntu'línea en /boot/grub/grub.cfg. Este puede ser un mejor método, ya que no depende del orden de las entradas, que podrían cambiar.

Para usar un kernel en el submenú "Versiones anteriores de Linux" use:

GRUB_DEFAULT="Previous Linux Versions>x"

(asegúrese de incluir las citas), dónde xestá el índice del núcleo antiguo en el submenú o el nombre del núcleo tal como aparece en /boot/grub/grub.cfg. Por ejemplo,

GRUB_DEFAULT="Previous Linux Versions>4.13.0-43-generic"

Luego construya el menú grub actualizado:

sudo update-grub
dcharles
fuente
55
La última vez que miré grub2 genera tantas entradas sobre la marcha que es realmente difícil averiguar qué número usar para una entrada.
Joe
52
Usar un índice puede ser bastante complicado: la lista de sistemas operativos puede cambiar después de una actualización. Pero puede echar un vistazo a /boot/grub/grub.cfg y buscar el nombre del sistema operativo predeterminado deseado. Luego use el nombre entre comillas en lugar de un índice. Ejemplo: en GRUB_DEFAULT="Microsoft Windows XP Professional (on /dev/sda1)"lugar deGRUB_DEFAULT=7
geekQ
1
Esto necesita una actualización relacionada con los niveles duales del menú de grub actual.
Hannu
55
Con la versión actual de Ubuntu 16.04, si desea seleccionar un Kernel específico para iniciar, debe agregar al Advanced options for Ubuntusubmenú, de esta manera:GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-34-generic'
Geoff Williams
1
@BandaMuhammadAlHelal Eso intentará arrancar el séptimo elemento de tu lista, ¿es eso lo que quieres? Si quieres el sexto elemento de tu lista, úsalo GRUB_DEFAULT=5.
Nick
39

Desde el sitio de tombuntu (artículo de Tom ):

GRUB se puede configurar usando el /etc/default/grubarchivo. Antes de realizar cualquier cambio, puede ser una buena idea hacer una copia de seguridad creando una copia:

sudo cp /etc/default/grub /etc/default/grub.bak

Puede restaurar la copia de la copia de seguridad sobre el original:

sudo cp /etc/default/grub.bak /etc/default/grub

Abra el archivo usando el editor de texto con privilegios de root:

gksu gedit /etc/default/grub

La línea GRUB_DEFAULT=0significa que GRUB seleccionará el primer elemento del menú para iniciar. Cambia esto a GRUB_DEFAULT=saved. Este cambio facilitará el cambio del elemento predeterminado más adelante.

Guarde y cierre el archivo. Ejecute este comando para aplicar sus cambios a la configuración de GRUB:

sudo update-grub

El cambio de configuración que realizamos permite usar los comandos grub-set-default y grub-reboot en cualquier momento. Estos le permiten cambiar el elemento de inicio predeterminado de forma permanente o solo para el siguiente inicio, respectivamente.

Ejecute grub-set-defaulto grub-reboot(con sudo) con el número del elemento de menú para iniciar (el primer elemento es 0). Este comando cambiará el valor predeterminado al segundo elemento:

sudo grub-set-default 1
silenTK
fuente
15
Esta respuesta se toma casi textualmente de tombuntu.com/index.php/2011/09/25/… . Por favor dar crédito donde se debe crédito.
James McMahon el
Esta respuesta no parece cambiar el orden de los elementos de arranque.
Sparhawk
Estoy usando Linux Mint Debian Edition. No tenía un / etc / default / grub, pero encontré que el valor GRUB_DEFAULT para modificar estaba en /etc/grub.d/00_header. Después de modificar GRUB_DEFAULT en 00_header con mi nombre de entrada de inicio deseado, simplemente ejecuté "sudo update-grub" y listo, éxito.
Análisis difuso
Vi estos mismos comandos en tipsonubuntu.com/2016/07/20/grub2-boot-order-ubuntu-16-04 Me di cuenta de que estos comandos solo funcionarán si se emitieron desde el sistema en el orden de arranque 0 primero.
Sun Bear
-2

Intenté lo siguiente y obtuve buenos resultados.

Abra una ventana de terminal ( Ctrl+ Alt+ T),

Escriba sudo gksu nautilusy presione Entrar. Escriba su contraseña de usuario.

Navega hasta el archivo /boot/grub/grub.cfg. Copie y pegue el archivo en el mismo directorio, debe crear una copia del archivo grub.cfg para realizar copias de seguridad. Luego haga doble clic en grub.cfg para abrir el archivo en un editor de texto.

En el archivo encontrarás la línea ( set default="0"). Edite el 0 en el número de línea en Grub que desea cargar. La mía era la sexta línea, así que usé 5, ya que la primera línea se considera 0. Guarde el archivo. Reinicie la PC y si elige la línea correcta, será la resaltada cuando se cargue Grub.

Buena suerte

Outkast
fuente
10
Como puede ver al principio del archivo, dice que no debe hacer esto. en su lugar edite /etc/default/gruby luego ejecute update-grub.
sazary
77
y tampoco recomendaría gksu nautilus. Demasiado fácil lanzar una bomba en su sistema desde allí.
sylvainulg
mira
tqjustc
Por alguna razón, esta respuesta se muestra como "respuesta automática" en Google cuando se busca: "orden de arranque de cambio de grub".
lepe
@lepe, no te preocupes, para mí el valor predeterminado es linuxandubuntu.com/home/…
vladkras
-5

Abra una ventana de terminal ( Ctrl+ Alt+ T) o presione Alt+ F2.

Escribe gksu nautilusy presiona Enter.

Eso abrirá el navegador de archivos Nautilus con permiso para cambiar los archivos propiedad de root.

Navegue hasta el archivo /boot/grub/grub.cfgy haga doble clic para abrir el archivo en un editor de texto.

Corta, mueve y pega las secciones de ese archivo que pertenecen a diferentes sistemas operativos. Debe tener mucho cuidado al hacer esto, ya que si lo hace mal, ya no podrá arrancar. El arranque de Windows siempre se puede reparar con las herramientas de un disco de instalación de Windows ( FIXMBR), que sobrescribe GRUB-MBR con un típico Windows-MBR.

Lo he probado desde Ubuntu 9.04 a 12.04 y siempre ha funcionado bien.

Pero solo he tratado de mover la sección de inicio de Windows a la parte superior de la lista para que se convierta en la predeterminada.

Si mi memoria es correcta, cada sección del menú de inicio en el archivo comienza con un begin... y termina con un ... end. Y abarca varias filas de texto.

El texto en ese archivo se ha vuelto un poco más complicado y no se ve igual en la última versión de Ubuntu que en versiones anteriores. Así que usa tu cerebro para salvarte de cometer un error.

Curt Jonsson
fuente
44
¿No tienes que correr sudo update-gruben algún momento?
Eliah Kagan
44
/boot/grub/grub.cfgse sobrescribe en cada paquete instalado / actualizado desencadenando una actualización de Grub, invocando efectivamente update-grub. Y eso genera un nuevo grub.cfg. Por lo tanto, la configuración de Grub se realiza en archivos en el /etcdirectorio como se explica en las otras respuestas, para asegurarse de que sea persistente.
gertvdijk