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.