Come ottenere grub2 per ricordare l'ultima scelta?


102

Grub2 - La documentazione della comunità Ubuntu dice quanto segue:

Il salvataggio di un sistema operativo può essere ottenuto eseguendo sudo grub-set-default se DEFAULT = salvato è impostato in / etc / default / grub. Può anche essere salvato se GRUB_SAVEDEFAULT = true è impostato anche in / etc / default / grub. In questo caso, il sistema operativo predefinito rimane finché non viene selezionato manualmente un nuovo sistema operativo dal menu GRUB 2 o viene eseguito il comando grub-set-default.

Ho messo le linee DEFAULT=savedE GRUB_SAVEDEFAULT=truedentro /etc/default/grub, e ho corso sudo grub-set-default. Ecco l'output:

$ sudo grub-set-default
entry not specified.
Usage: grub-set-default [OPTION] entry
Set the default boot entry for GRUB.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --boot-directory=DIR    expect GRUB images under the directory DIR/grub
                          instead of the /boot/grub directory

ENTRY is a number or a menu item title.

Report bugs to <bug-grub@gnu.org>.

Non sto seguendo correttamente la documentazione? Qual è il modo corretto per farlo?


2
Dopo aver modificato il file grub, esegui sempre " sudo update-grub".
Julien Chau,

Basta eseguire: sudo grub-set-default salvato È così semplice.
T. Coles,

Risposte:


153

La documentazione in questo caso è errata. Tutte le variabili in /etc/default/grubpartenza con GRUB_, quindi è GRUB_DEFAULT=saved, non è DEFAULT=saved . Ho corretto il wiki di Ubuntu per riflettere quello.

Il manuale ufficiale di grub lo descrive correttamente: http://www.gnu.org/software/grub/manual/grub.html#Simple-configuration

Inserisci quanto segue /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Quindi eseguire:

sudo update-grub

4
+1 per il link, ho modificato la tua risposta con la soluzione che ha funzionato per me (che ho derivato dal link che hai fornito)
Jay Sullivan,

Il link in questa risposta è rotto. 'Pagina 404'.
sdlins,

devo rimuovere la linea esistente GRUB_DEFAULT=0?
user25

@ user25 sì rimuovi GRUB_DEFAULT=0, la riga dovrebbe leggereGRUB_DEFAULT=saved
ctrl-alt-delor

4

Nel mio caso non funzionava per le voci definite tramite le /etc/grub.d/40_customquali mancava la savedefaultriga.

menuentry "Chameleon" {
    savedefault ### <<<< this must be added
    set root="(hd1)"
    chainloader +1
}

3

Stai dimenticando il numero (es. "ENTRY è un numero o un titolo di menu". Nel tuo testo).

sudo grub-set-default 1

affinché l'opzione 1 sia quella predefinita.

Sempre eseguire sudo update-grubdopo aver modificato il /etc/default/grubfile per applicare le modifiche.


7
Questo non ha funzionato per me, imposta semplicemente il menu GRUB in modo da indicare la voce 1, non l'ultima scelta
Jay Sullivan,

Se la tua opzione di menu fosse nascosta in un sottomenu, come all'interno di "Opzioni avanzate per Ubuntu", il formato è "submenu-index> submenu-item-index". Quindi dovresti specificare 1> 'indice-di-tua-scelta'. Dovresti anche essere in grado di specificare il nome della stringa per ogni selezione.
Epu,

2

savedefault non funzionerà, se non esiste un'intestazione corretta in grub.cfg generato automaticamente

Per generare un'intestazione corretta devi impostare in / etc / default / grub

GRUB_DEFAULT=saved

e crea grub-mkconfig per sostituire la tua copia di grub.cfg

grub-mkconfig -o /boot/grub.cfg

savedefault di Grub 2.02 non richiede alcun argomento aggiuntivo

Si potrebbe vedere la fonte di savedefault in grub.cfg


Guarda la risposta di @ccpizza, potrebbe essere di aiuto: askubuntu.com/a/674148/97838
Hibou57
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.