Come posso impostare il timeout di grub e la voce di avvio predefinita di grub?


191

In Ubuntu 12.04 (o versioni successive), come posso impostare l'ora di GRUB e il sistema operativo predefinito (che vedo all'avvio) mentre eseguo il doppio avvio di Windows (7/8) e Ubuntu (12.04 o versioni successive)?


Puoi dare maggiori informazioni. Cosa intendi con "grub time" e qual è il tuo sistema operativo predefinito. Nel tuo menu di grub quali sono le diverse linee?
Julien Chau,

1
grub time indica il conto alla rovescia quando devo selezionare il sistema operativo nella schermata iniziale del BIOS. Mi dispiace ma non so esattamente come si chiama quel menu di selezione del SO quindi l'ho pubblicato come grub time.
meteore

Risposte:


227
  • Premere Alt+ F2, digitare gksudo gedit /etc/default/grubpremere Entere inserire la password.
  • Vedrai i seguenti contenuti:

    GRUB_DEFAULT = 0
    GRUB_HIDDEN_TIMEOUT = 0
    GRUB_HIDDEN_TIMEOUT_QUIET = true
    GRUB_TIMEOUT = 10
    GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || eco Debian`
    GRUB_CMDLINE_LINUX_DEFAULT = "splash tranquillo"
    GRUB_CMDLINE_LINUX = ""
    
  • È possibile modificare il valore predefinito da 0 a qualsiasi numero, corrispondente alla voce nel menu di avvio di Grub (la prima voce è 0, la seconda è 1, ecc.)

  • È possibile modificare il "timeout nascosto" (nessun menu); e mostra anche il conto alla rovescia ( GRUB_HIDDEN_TIMEOUT_QUIET=false)
  • Puoi forzare la visualizzazione del menu di grub commentando le due GRUB_HIDDENrighe con #a all'inizio della riga
  • E imposta il timeout del menu grub (il valore predefinito è 10 secondi)

  • Apporta le modifiche, premi Ctrl+ Sper salvare e Ctrl+ Qper uscire

  • Importante : aprire un terminale con Ctrl+ Alt+ Te digitare sudo update-grubper applicare le modifiche appena apportate
  • Riavvia e dovresti vedere il timeout / la modifica della voce predefinita

Domanda collegata:


Grazie, @Raja, ma grub / grub2 era la differenza principale. Se avessi il grub2 corretto, avrei felicemente modificato la tua risposta invece di crearne un'altra :)
ish,

grazie la tua risposta ha funzionato ma puoi spiegarmi il secondo e il terzo punto (il timeout nascosto e le linee nascoste di grub) a cosa servono.
meteore

2
Si prega di non raccomandare a nessuno di modificare l'opzione predefinita di grub impostando un indice arbitrario. È terribilmente non intuitivo e può provocare un disastro. L'utente può inserire quello sbagliato o può cambiare durante un aggiornamento, con conseguente comportamento imprevisto.
Cerin,

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

1
@Cerin qual è il tuo suggerimento allora?
phil294,

30

Se leggi il file che stai modificando nell'esempio sopra (/ etc / default / grub), noterai che le prime due righe ti chiedono di eseguire update-grubdopo aver apportato le modifiche per aggiornare il file effettivo che grub legge in " ottieni le sue istruzioni "(/boot/grub/grub.cfg). Si noti che è necessario eseguirlo prima con il sudocomando poiché sono necessari i privilegi di root per eseguire effettivamente il comando (motivo per cui il poster sopra ha detto di digitare sudo update-grub). Ciò causerà la scrittura delle modifiche apportate in /boot/grub/grub.cfg. Le prossime due righe ti dicono che puoi leggere la documentazione completa delle opzioni in quel file (di nuovo, / etc / default / grub) digitando info -f grub -n 'Simple configuration'.

Detto questo, impostare GRUB_TIMEOUT su -1 se si desidera impostare il "tempo grub" in modo che sia indefinito. In altre parole, non si avvierà mai automaticamente. Dovrai effettuare una selezione.

Infine, per rispondere alla tua domanda, ecco le descrizioni di quelle "linee nascoste" direttamente dalla documentazione di cui sopra:

GRUB_HIDDEN_TIMEOUT
    Wait this many seconds for a key to be pressed before displaying
    the menu.  If no key is pressed during that time, boot
    immediately.  Unset by default.

GRUB_HIDDEN_TIMEOUT_QUIET
    In conjunction with `GRUB_HIDDEN_TIMEOUT', set this to `true' to
    suppress the verbose countdown while waiting for a key to be
    pressed before displaying the menu.  Unset by default.

Spero che questo possa essere d'aiuto!


14

È possibile utilizzare un'applicazione chiamata Grub Customizer . È molto più semplice.

Puoi installarlo tramite:

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

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

Ecco alcune schermate di questo software:

Screen_1

Pagina_2

screen_3


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

5

Ho seguito la prima risposta, ma sembra che sia necessario aggiornarlo se si esegue il dual boot con Windows 7 Pro e Ubuntu 16.04. Assicurati anche che l'avvio protetto sia disattivato nel BIOS.

a) Per prima cosa dice usa Alt+ F2quando penso che voglia usare per aprire una finestra terminale. Nel mio caso è Ctrl+ Alt+ T.

b) Nella prima voce gksudo gedit /etc/default/grubil gksudocomando non è installato di default in Ubuntu 16.04 . Per aggirare questo, procedi come segue nel Terminale:

sudo -ie premi Entere dai la tua password e poi di Enternuovo.

quindi digitare:

gedit /etc/default/grube premere Enter.

c) Ora vedrai il menu di modifica di grub come illustrato nella risposta 1. Segui la sua risposta fino a quando non arriva a Ctrl+ Sper salvare le modifiche. Questo non funziona in Ubuntu 16.04 ma dovresti vedere un pulsante di salvataggio nell'angolo in alto a destra dello schermo. Clicca su quello.

d) Ctrl+ Qper uscire.

e) Tipo successivo sudo update-grubeEnter

f) Digitare exit. Devi farlo due volte.

g) Riavvia

Ho scoperto che sul mio computer dopo alcuni accessi il processo di avvio non mostrava la schermata grub all'avvio e quindi non potevo entrare in Ubuntu poiché avevo impostato Windows come avvio predefinito con un ritardo di 7 secondi nel caso in cui volessi ottenere in Ubuntu.

Per correggere questo problema devi accedere a Windows.

  1. Fai clic sul menu Start e digita CMDnella casella di ricerca.

  2. Fare clic con il tasto destro sulla linea CMD che dovrebbe essere nella parte superiore dello schermo prodotta facendo clic con il tasto destro.

  3. Fai clic su Esegui come amministratore .

  4. Sul tipo di riga di comando bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi. Questa voce ha l'effetto di registrare il menu grub con il boot manager di Windows. (Credito per: Grub non mostrato all'avvio per Windows 8.1 Ubuntu 13.10 Dual boot )

  5. Alla fine, ho riavviato Windows.

Spero che questo possa essere d'aiuto.


Potete per favore collegarvi a "illustrato nella risposta 1" - Non sono riuscito a trovare quello che intendevi.
Tom Hale,

Anche "Ho seguito la prima risposta". Puoi usare la mia formattazione "Ringraziamento a:" come esempio. Ottimo primo post. Benvenuto in AskUbuntu.
Tom Hale,

Ho avuto un'interruzione di X-window in modi strani durante l'esecuzione di applicazioni grafiche come gedit come sudo. Suggerisco invece di utilizzare un editor di testo come nano.
Arthur Tacca,

2
Alt+F2è la scorciatoia di unità per eseguire un comando in background. Nel menu che si apre, puoi inserire qualsiasi comando come faresti nel terminale. Ma dal momento che non apre un terminale non vedrai alcun output del terminale e non potrai interagire con il terminale. Ecco perché lo useresti in genere per cose come l'avvio di un programma GUI come gedit. Inoltre non è possibile utilizzare sudo poiché è necessario il terminale per quello. Ecco perché usano gksudo(il sudo della GUI). Se esegui i comandi in un terminale, puoi semplicemente usare il normale in sudoquesto modo: sudo gedit /etc/default/grubnon è necessario sudo -i.
Sebastian,

@Sebastian Per il lancio di un'app grafica, sudo -Hè meglio , cioè sudo -H gedit /etc/default/grub.
wjandrea,

2

L'uso della voce predefinita basata su un numero mi ha stupito sin dalla sua introduzione in GRUB. Questa è davvero una cattiva idea. Che ne dici di aggiornamento del kernel e riconfigurazione automatica di grub? Che ne dite di utenti ignari che preferiscono l'ingresso alla fine dell'elenco? Gli aggiornamenti interrompono la configurazione basata su numeri predefiniti.

Invece usa l'opzione SALVATO qui per ricordare l'ultima voce scelta:

GRUB_DEFAULT=SAVED
GRUB_SAVEDEFAULT=TRUE

Quindi applicare GRUB con

sudo update-grub

1
Non è un grosso problema, ma questo non spiega come o dove apportare queste modifiche. Potresti voler collegare ad un'altra risposta che lo fa.
wjandrea,

1

Questo non funziona anche per me il 16.04.

Ma l'ho risolto modificando il file /boot/grub/grub.cfg

sudo vim /etc/default/grub

modifica grub

sudo update-grub
sudo chmod u+w /boot/grub/grub.cfg
sudo vim /boot/grub/grub.cfg

cambia il valore di timeout

###segment in /boot/grub/grub.cfg:
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  #set timeout=10 # comment this original
  set timeout=0 # add this
fi

sudo chmod -w /boot/grub/grub.cfg
reboot

0

Può essere fatto facilmente senza alcun codice. Segui questi passaggi.

  1. Apri il file system.
  2. Apri /etccartella.
  3. Apri defaultcartella.
  4. Trova il grubfile e aprilo con leafpad(o qualsiasi altro editor di testo).
  5. Imposta in base GRUB_TIMEOUTalle tue necessità e salvalo.
  6. Ora apri il terminale e digita update-grub.
  7. Riavvia il tuo sistema.

Questo è tutto.


0

Penso che tu abbia una linea come questa: GRUB_TIMEOUT_STYLE = nascosto

Modificalo in GRUB_TIMEOUT_STYLE = menu

E commenta tutte le righe relative alle funzionalità NASCOSTE.

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.