Come posso cambiare l'ordine di avvio di GRUB?


336

Ho Windows 7 e Ubuntu installati su una macchina condivisa. Poiché molti non sviluppatori usano Windows, mi piacerebbe cambiare l'ordine di avvio per renderlo più facile per loro.

Attualmente l'ordine di avvio è simile al seguente:

  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86 (avvio sicuro)
  • Test di memoria
  • Test di memoria
  • Windows 7 attivo /dev/sda6

Come posso modificare l'ordine predefinito in modo che Windows 7 sia in cima all'elenco?

  • Windows 7 attivo /dev/sda6
  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86 (avvio sicuro)
  • Test di memoria
  • Test di memoria

5
Domande e risposte
fossfreedom

Hai fatto un 'sudo update-grub' dopo aver modificato il file grub?
Tinellus,

sì, penso di aver dimenticato di farlo, grazie! Proverò ad aggiornare con i risultati.
jeffery_the_wind,

kubuntu 14.04 sudo apt-get install kde-config-grub2quindi nella configurazione del sistema
vai allo

Risposte:


295

Puoi utilizzare un'applicazione GUI di facile utilizzo chiamata Grub Customizer per semplificarti un po 'la vita. Come suggerisce il nome, puoi fare molto di più che riordinare le voci del menu di GRUB con esso.

Puoi installarlo tramite:

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

(Vedi Poni la domanda su Ubuntu PPA è sicuro da aggiungere al mio sistema e quali sono alcune "bandiere rosse" a cui prestare attenzione? )

C'è un articolo How-To Geek a riguardo, Come configurare il menu di avvio di Linux GRUB 2 in modo semplice . Dai un'occhiata se sei interessato. Inoltre, c'è un thread risolto nei forum di Ubuntu, Modifica l'ordine di avvio in GRUB 2 che menziona questo strumento.

Ecco alcuni screenshot:

Screen_1

Pagina_2

screen_3


Alcuni problemi di risoluzione dei problemi:

Le impostazioni di Grub Customizer possono funzionare solo dall'ultima installazione di Linux / Ubuntu, quella che ha installato Grub.

Ad esempio, se qualcuno ha due sistemi operativi installati (Windows e Ubuntu), quindi installa un terzo sistema operativo (Manjaro, ecc.) E quindi tenta di seguire la risposta sopra, le modifiche di Grub Customizer non funzioneranno se apportate dal secondo sistema operativo ( Ubuntu, nell'esempio). Il programma deve essere installato nel loro sistema operativo, in quanto sembra che Grub Customizer possa modificare solo i file Grub creati dall'installazione del sistema su cui è installato.

I file che determinano il menu di avvio di Grub arrivano nella maggior parte dei casi con l'ultimo sistema installato su una macchina, quindi Grub Customizer deve essere installato e utilizzato da quel sistema Linux.


4
Molto gradito :) Gli screenshot provengono dal post sul blog che è collegato sopra: P
Nitin Venkatesh

2
Questo non funziona con l'ultimo Ubuntu. Possiamo ottenere un post aggiornato qui?
AL

7
Penso che la tua risposta sia buona e utile, quindi per favore non fraintendermi. Mentre gli strumenti della GUI sono puliti e facili, nascondono i fatti. La risposta di Marve in basso discute i file in uso e come aggiornarli manualmente, fornendo informazioni su come funziona Grub. Quando la GUI fallisce, e lo farà per alcuni, almeno dà una sbirciatina alle basi: non sono poi così difficili e la manipolazione manuale sarà probabilmente più facile a lungo termine.
barrypicker,

1
Ho anche riscontrato problemi con questo strumento. Sembra che aggiorni la correzione / etc / default / grub ma poi dice core dump e interrotto.
Mauricio Gracia Gutierrez,

1
Ciò richiede un aggiornamento relativo ai doppi livelli del menu corrente di grub.
Hannu,

244

È inoltre possibile modificare la voce di avvio predefinita di grub dalla riga di comando senza dover installare alcuno strumento aggiuntivo. Ciò non cambierà l'ordine nell'elenco ma consentirà l'avvio di un sistema operativo diverso per impostazione predefinita, che suona comunque come quello che potresti desiderare.

Innanzitutto, crea una copia di backup di /etc/default/grub. Nel caso in cui qualcosa vada storto, puoi facilmente tornare alla copia nota:

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

Quindi modifica il file utilizzando vimo l'editor di testo di tua scelta:

sudo vim /etc/default/grub

Trova la riga che contiene

GRUB_DEFAULT=0

e impostarlo su

GRUB_DEFAULT=x

dove xè l'indice della voce di menu di grub a cui si desidera avviare per impostazione predefinita. Si noti che le voci di menu sono indicizzate a zero. Ciò significa che il primo elemento nell'elenco è 0e che il sesto elemento è effettivamente 5. Quindi, per avviare il sesto elemento nell'elenco, la riga dovrebbe essere:

GRUB_DEFAULT=5

Se hai dimenticato l'ordine degli articoli, dai un'occhiata /boot/grub/grub.cfg. Ogni voce di menu è specificata da una riga di tipo:

menuentry 'Ubuntu' [options] {

Puoi anche scegliere il valore predefinito dal nome anziché dall'indice, ad esempio:

GRUB_DEFAULT='Ubuntu'

se c'era una menuentry 'Ubuntu'linea /boot/grub/grub.cfg. Questo potrebbe essere un metodo migliore, in quanto non dipende dall'ordine delle voci, che potrebbe cambiare.

Per usare un kernel nel sottomenu "Versioni precedenti di Linux" usare:

GRUB_DEFAULT="Previous Linux Versions>x"

(assicurati di includere le citazioni), dove si xtrova l'indice del vecchio kernel nel sottomenu o il nome del kernel così come appare /boot/grub/grub.cfg. Per esempio,

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

Quindi crea il menu grub aggiornato:

sudo update-grub

5
L'ultima volta che ho visto grub2 genera così tante voci al volo che è davvero difficile capire quale numero usare per una voce.
Joe,

52
L'uso di un indice può essere piuttosto complicato: l'elenco dei sistemi operativi può cambiare dopo un aggiornamento. Ma puoi dare un'occhiata a /boot/grub/grub.cfg e cercare il nome del sistema operativo predefinito desiderato. Quindi utilizzare il nome tra virgolette anziché un indice. Esempio: GRUB_DEFAULT="Microsoft Windows XP Professional (on /dev/sda1)"invece diGRUB_DEFAULT=7
geekQ

1
Ciò richiede un aggiornamento relativo ai doppi livelli del menu corrente di grub.
Hannu,

5
Con la versione corrente di Ubuntu 16.04, se si desidera selezionare un kernel specifico per l'avvio, è necessario aggiungere al Advanced options for Ubuntusottomenu, in questo modo:GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-34-generic'
Geoff Williams

1
@BandaMuhammadAlHelal Che tenterà di avviare il settimo elemento della tua lista - è quello che vuoi? Se si desidera il sesto elemento nell'elenco, utilizzare GRUB_DEFAULT=5.
Nick,

39

Dal sito tombuntu (articolo di Tom ):

GRUB può essere configurato utilizzando il /etc/default/grubfile. Prima di apportare modifiche, potrebbe essere una buona idea eseguirne il backup creando una copia:

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

È possibile ripristinare la copia del backup sull'originale:

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

Apri il file usando l'editor di testo con i privilegi di root:

gksu gedit /etc/default/grub

La linea GRUB_DEFAULT=0indica che GRUB selezionerà la prima voce di menu da avviare. Cambia questo in GRUB_DEFAULT=saved. Questa modifica renderà più semplice cambiare l'elemento predefinito in un secondo momento.

Salva e chiudi il file. Esegui questo comando per applicare le modifiche alla configurazione di GRUB:

sudo update-grub

La modifica della configurazione che abbiamo apportato consente di utilizzare i comandi grub-set-default e grub-reboot in qualsiasi momento. Ciò consente di modificare l'elemento di avvio predefinito in modo permanente o solo per l'avvio successivo, rispettivamente.

Esegui grub-set-defaulto grub-reboot(con sudo) con il numero della voce di menu da avviare (la prima voce è 0). Questo comando cambierà l'impostazione predefinita al secondo elemento:

sudo grub-set-default 1

15
Questa risposta è presa quasi alla lettera da tombuntu.com/index.php/2011/09/25/… . Si prega di dare credito dove è dovuto il credito.
James McMahon,

Questa risposta non sembra cambiare l'ordine degli elementi di avvio.
Sparhawk,

Sto usando Linux Mint Debian Edition. Non avevo un / etc / default / grub, ma ho trovato che il valore GRUB_DEFAULT da modificare era invece in /etc/grub.d/00_header. Dopo aver modificato GRUB_DEFAULT in 00_header con il nome desiderato per la voce di avvio, ho semplicemente eseguito "sudo update-grub" e voilà, successo.
Analisi fuzzy il

Ho visto questi stessi comandi in tipsonubuntu.com/2016/07/20/grub2-boot-order-ubuntu-16-04 Mi sono reso conto che questi comandi funzioneranno solo se sono stati emessi dal sistema nell'ordine di avvio 0 prima.
Sun Bear

-2

Ho provato quanto segue e ho ottenuto buoni risultati.

Apri una finestra del terminale ( Ctrl+ Alt+ T),

Digita sudo gksu nautiluse premi Invio. Digita la password dell'utente.

Passare al file /boot/grub/grub.cfg. Copia e incolla il file nella stessa directory, dovrebbe creare una copia del file grub.cfg a fini di backup. Quindi fare doppio clic su grub.cfg per aprire il file in un editor di testo.

Nel file troverai la linea ( set default="0"). Modifica lo 0 al numero di riga in Grub che desideri caricare. La mia era la sesta riga, quindi ho usato 5, poiché la prima riga è considerata 0. Salvare il file. Riavvia il PC e se hai scelto la linea corretta sarà quella evidenziata quando Grub si carica.

In bocca al lupo


10
come puoi vedere all'inizio del file, dice che non dovresti farlo. invece modifica /etc/default/grubed esegui update-grub.
sazary,

7
e non consiglierei nemmeno a gksu nautilus. Troppo facile far cadere una bomba nel tuo sistema da lì.
sylvainulg,

controllare questo post: psychocats.net/ubuntu/bootmenu
tqjustc

Per qualche motivo questa risposta viene mostrata come "risposta automatica" in google quando si cerca: "grub change order boot".
lepe,

@lepe, non ti preoccupare, per me l'impostazione predefinita è linuxandubuntu.com/home/…
vladkras,

-5

Apri una finestra del terminale ( Ctrl+ Alt+ T) o premi Alt+ F2.

Digita gksu nautiluse premi Enter.

Ciò aprirà il browser di file Nautilus con il permesso di modificare i file di proprietà di root.

Passare al file /boot/grub/grub.cfge fare doppio clic per aprire il file in un editor di testo.

Taglia, sposta e incolla le sezioni in quel file che appartiene a diversi sistemi operativi. Devi fare molta attenzione quando lo fai, come se facessi qualcosa di sbagliato, non sarai più in grado di avviarlo. L'avvio di Windows può sempre essere riparato con gli strumenti da un disco di installazione di Windows ( FIXMBR), che sovrascrive GRUB-MBR con un tipico Windows-MBR.

L'ho provato da Ubuntu 9.04 a 12.04 e ha funzionato bene ogni volta.

Ma ho solo provato a spostare la sezione di avvio di Windows in cima all'elenco per renderla predefinita.

Se la mia memoria è corretta, ogni sezione del menu di avvio del file inizia con una begin... e termina con un ... end. E si estende su più righe di testo.

Il testo in quel file è diventato un po 'più complicato e non sembra lo stesso nell'ultima versione di Ubuntu come nelle versioni precedenti. Quindi usa il tuo cervello per salvarti dal fare un errore.


4
Non devi correre sudo update-grubad un certo punto?
Eliah Kagan,

4
/boot/grub/grub.cfgviene sovrascritto ad ogni pacchetto installato / aggiornato innescando un aggiornamento di Grub, invocando efficacemente update-grub. E questo genera un nuovo grub.cfg. Pertanto, la configurazione di Grub viene eseguita nei file nella /etcdirectory come spiegato dalle altre risposte, per assicurarsi che sia persistente.
gertvdijk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.