Imposta il kernel "più vecchio" come voce predefinita di grub


94

Ho installato un kernel mainline a scopo di test. Vorrei impostare grub per l'avvio dal kernel precedente per impostazione predefinita.

So di poter configurare le GRUB_DEFAULT=0impostazioni per la prima pagina di grub, ma come posso impostarlo per l'avvio di default da un kernel nella seconda pagina (pagina Avanzate)?

Preferirei farlo senza installare altro software (es. Grub-customizer).

Domande correlate:
Come impostare Windows per l'avvio come predefinito nel caricatore di avvio?
Come posso cambiare l'ordine di avvio di grub?


3
@belacqua: non è un duplicato. Questa domanda riguarda l'impostazione di un kernel più vecchio che non è presente nella prima pagina di opzioni di grub come predefinito.
Da fare il

Sembra che questo caso dovrebbe essere trattato nelle domande precedenti, anche se il metodo deve essere aggiornato per 12.10, kernel più vecchi, ecc.
belacqua,

3
Il caso d'uso della domanda è diverso e la risposta è molto specifica in un modo che non si applica agli altri duplicati rivendicati. Sono venuto qui per risolvere questo particolare problema; non modificare l'ordine di avvio; né per avviare Windows. +1 per "non un duplicato".
Robie Basak,

Risposte:


128

Innanzitutto, crea una copia di backup di /etc/default/grub. Se qualcosa va storto, puoi facilmente tornare alla copia nota.

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

Quindi modifica il file usando l'editor di testo che preferisci (ad esempio gedit, ecc.).

sudo -H gedit /etc/default/grub

Trova la riga che contiene GRUB_DEFAULT: questo è ciò che vorresti modificare per impostare il valore predefinito. È necessario conoscere il nome completo del kernel desiderato - ad es. Ubuntu, with Linux 3.13.0-53-generic- insieme al nome completo del "menu avanzato" - ad es Advanced options for Ubuntu.

Quindi combinare queste due stringhe con >e impostarle GRUB_DEFAULTcome: GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic"(comprese le virgolette).

Salvalo, quindi crea il menu grub aggiornato.

sudo update-grub

Vedi anche: Manuale GNU GRUB 2.02 o più specificamente la sezione 15.1.0 sull'impostazione di default .


Nota: esiste un metodo che utilizza numeri per accedere a kernel e menu, ma ciò non è raccomandato in quanto non è affidabile quando si verificano aggiornamenti del kernel.


24
L'uso di un valore numerico può essere problematico quando si verificano aggiornamenti. È meglio usare un testo predefinito, ovvero: GRUB_DEFAULT = "Versioni precedenti di Linux> Ubuntu, con Linux 3.2.0-18-generico"
Bealer

27
Si può usare sudo grub-mkconfig | lessper vedere tutte le possibili opzioni
Nitz,

9
Questa è una buona soluzione, ma ancora meglio è aprire un /boot/grub/grub.cfge lì vedrai tutto manuentrye tutto submenus. Se li modifichi, puoi facilmente impostare quelli predefiniti, anche cambiare i Titoli delle opzioni nell'elenco grub al riavvio di un computer.
Aleks,

7
È sicuramente utile esaminare /boot/grub/grub.cfgper determinare i nomi esatti da utilizzare. Ma non modificare questo file in quanto verrà automaticamente rigenerato update-grub, anche durante l'aggiornamento dei pacchetti.
Robie Basak,

18
La formattazione di GRUB_DEFAULT è leggermente obsoleta (almeno da Ubuntu 14.04.2). In esecuzione update-grubho riscontrato un avviso: non utilizzare il vecchio titolo Previous Linux versions>Ubuntu, with Linux 3.13.0-53-genericper GRUB_DEFAULT, utilizzare Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic(per versioni precedenti alle 2.00) o gnulinux-advanced-b0ce60c3-184c-453b-af59-419b56a2584f>gnulinux-3.13.0-53-generic-advanced-b0ce60c3-184c-453b-af59-419b56a2584f(per 2.00 o successive)
Wumms,

22

La soluzione migliore per me era impostare (in /etc/default/grub):

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

Con queste impostazioni l'ultimo valore selezionato viene mantenuto per l'avvio successivo. Se hai un nuovo kernel non devi modificare la tua configurazione.

Non dimenticare di rieseguire sudo update-grub

La soluzione è dalla lettura: info grub-mkconfig


4
Questo è fantastico
Mephisto

sei sicuro del punto e virgola ( ;) alla fine delle righe?!?
DJCrashdummy,

Non riesco a guardare nel mio computer dove l'ho usato in questo momento, ma hai ragione ";" sembra essere sbagliato o superfluo!
Martin T.

21

Ora che un Advancedmenu è predefinito in Ubuntu, dovrai selezionarlo prima del kernel che vuoi usare il >personaggio.

Impostare ad es .:

GRUB_DEFAULT="1>7"

in /etc/default/grube re-run sudo update-grub.

È importante notare che per il menu di GRUB la numerazione delle voci inizia con 0. Pertanto quanto 1sopra indica il Advancedmenu. Per precauzione, potresti voler impostare inizialmente GRUB_TIMEOUT=5. Alcuni potrebbero non essere in grado di accedere a GRUB premendo una chiave al momento dell'avvio. Questa è una rete di sicurezza nel caso in cui punti accidentalmente qualcosa del genere Memory test. È inoltre necessario includere tra virgolette i numeri sopra indicati. Non funzionerà diversamente.

Ho provato su 16.04 LTS.


Funziona anche in Debian.
Lawrence D'Oliveiro,

Trovo questa risposta molto utile, poiché dopo un aggiornamento del kernel punta ancora al kernel più recente. nella mia configurazione, ad esempio, è 1> 0, che significa: elenco avanzato-primo (è sempre il kernel più recente). il mio sistema qualche volta ha smesso di aggiornare automaticamente la voce 0 di grub con il kernel più recente, quindi uso questo metodo.
Peter Fleix,

9

Per essere in grado di impostare quale opzione di avvio utilizzare come predefinita è necessario sapere cosa c'è ... quindi:

Per visualizzare le voci di menu senza avviare effettivamente , provare qualcosa di simile:

$ lsb_release -s -rdc
Ubuntu 16.04.4 LTS
16.04
xenial

$ update-grub --version
grub-mkconfig (GRUB) 2.02 ~ beta2-36ubuntu3.17

$ grep -Ei 'sottomenu | menuentry' /boot/grub/grub.cfg | sed -re "s / (.?) '([^'] +) '. * / \ 1 \ 2 /"
menuentry Ubuntu
sottomenu Opzioni avanzate per Ubuntu
    menuentry Ubuntu, con Linux 4.4.0-34-generico
    menuentry Ubuntu, con Linux 4.4.0-34-generico (upstart)
    Ubuntu menuentry, con Linux 4.4.0-34-generico (modalità di ripristino)
menuentry Impostazione del sistema

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.