Come posso avviare con una versione del kernel precedente?


56

L'ultimo kernel sta causando problemi con il mio suono, che ha funzionato bene con una versione precedente. Dato che ho installato solo Ubuntu, Grub non viene visualizzato durante l'avvio. Come posso scegliere manualmente la versione del mio kernel durante l'avvio?

Risposte:


59

Il modo più semplice per visualizzare Grub è tenere premuto il SHIFTpulsante durante l'avvio.

In alternativa, puoi sempre visualizzare Grub senza avviare un kernel particolare:

gksudo gedit /etc/default/grub

passare GRUB_TIMEOUTa -1 e commentareGRUB_HIDDEN_TIMEOUT

finire correndo

sudo update-grub

5
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported. Ho commentato GRUB_HIDDEN_TIMEOUTe impostatoGRUB_TIMEOUT=0
acidghost

Giusto per essere espliciti: GRUB_HIDDEN_TIMEOUT è una variabile d'ambiente che deve essere impostata quando si esegue 'update-grub'?
Jonathan Hartley,

1
@JonathanHartley GRUB_HIDDEN_TIMEOUTè definito in/etc/default/grub
wjandrea l'

20

Tenendo premuto il tasto Maiusc durante l'avvio, verrà visualizzato il menu Grub. Ora puoi selezionare una versione del kernel precedente.

Per selezionare un kernel più vecchio come kernel predefinito, vedere questo post


2
Nel mio caso (Ubuntu 16.04), è stato lasciato il turno. Lo spostamento a destra non ha funzionato.
Bob,

1
cosa succede se i kernel più vecchi non vengono visualizzati in grub (sono stati rimossi)? Questo significa che questi kernel non sono accessibili?
Kalamalka Kid

1
Ho dovuto usare la fuga (anziché il turno)
Jonathan King,

6

Durante l'avvio quando appare GRUB con le voci seleziona la seconda voce, ad esempio, Opzioni avanzate per Ubuntu lì puoi vedere diverse versioni del kernel più vecchie che sono state installate in precedenza, puoi selezionarne una che funziona bene per te. Altrimenti vai su grub.cfg e incolla la versione del tuo kernel richiesta sopra la voce del kernel attualmente installata. Funziona in entrambi i modi


4

Se hai qualche kernel nel tuo sistema puoi impostare manualmente quale versione del kernel inizierà:

  1. Riavvia il PC con il pulsante Shift premuto per visualizzare GRUB dopo l'avvio del BIOS. Vedrai qualcosa come: Pagina iniziale di GRUB

  2. Seleziona "Opzioni avanzate per Ubuntu" e memorizza l'indice di questa riga del menu (il conteggio inizia da 0) Nell'indice delle immagini è 1

Seleziona il kernel concreto

  1. Seleziona il kernel concreto per l'avvio e memorizza anche l'indice di questa riga di menu (il conteggio inizia da 0) Nell'indice dell'immagine del kernel scelto è 2

  2. Avvia il sistema. Questa azione è per un avvio su kernel concreto. Se vuoi iniziare sempre dal Kernel concreto, dovresti fare i seguenti passi:

4.1. Apri e modifica il file di installazione di GRUB:

sudo nano /etc/default/grub

4.2. Trova la riga GRUB_DEFAULT = ... (per impostazione predefinita GRUB_DEFAULT = 0) e imposta nel percorso del menu delle virgolette il kernel concreto (Ricorda gli indici dei menu dai passaggi 2 e 3). Nel mio sistema il primo indice era 1 e il secondo era 2. Ho impostato su GRUB_DEFAULT

GRUB_DEFAULT="1>2"

Salvare il file.

4.3. Aggiorna le informazioni di GRUB per applicare le modifiche:

sudo update-grub

4.4. Dopo il riavvio, si avvia automaticamente il kernel tramite il percorso di menu scelto. Un esempio sulla mia macchina 1 -> 2

4.5. Controlla la versione del kernel dopo il riavvio:

uname -r


3

A cura di https://help.ubuntu.com/community/Grub2 :

GRUB_HIDDEN_TIMEOUT = 0

Questa impostazione determina per quanto tempo verrà visualizzata una schermata senza il menu di GRUB 2. Mentre lo schermo è vuoto, l'utente può premere qualsiasi tasto per visualizzare il menu.

Il comportamento predefinito è nascondere il menu se è presente un solo sistema operativo. Se un utente con solo Ubuntu desidera visualizzare il menu, posizionare un simbolo # all'inizio di questa riga per disabilitare la funzione di menu nascosto.

Downgrade Kernel: come eseguire il downgrade del kernel su 11.10

Aggiorna kernel: Come posso aggiornare il kernel a 3.1?


2

Installa il kernel precedente con il seguente comando:

sudo apt-get install linux-image-3.0.0-12-generic linux-headers-3.0.0-12-generic

Quindi riavviare. Ti verrà richiesto di scegliere il tuo kernel.


2
  1. Immediatamente dopo la schermata iniziale BIOS / UEFI durante l'avvio, con BIOS, premere e tenere premuto rapidamente il Shifttasto, che farà apparire il menu GNU GRUB. (Se vedi il logo Ubuntu, hai perso il punto in cui puoi entrare nel menu di GRUB.) Con UEFI premi (forse più volte) il Esctasto per accedere al menu di GRUB. A volte la schermata iniziale del produttore fa parte del bootloader di Windows, quindi quando si accende la macchina si passa direttamente alla schermata GRUB, quindi Shiftnon è necessario premere .

  2. Dalla schermata di GRUB selezionare Opzioni avanzate per Ubuntu e premere Enter.

    inserisci qui la descrizione dell'immagine

  3. Apparirà una nuova schermata viola che mostra un elenco di kernel. Utilizzare i tasti ↑ e ↓ per selezionare la voce evidenziata. Premere Invio per avviare il kernel selezionato, "e" per modificare i comandi prima dell'avvio o "c" per una riga di comando. Premere Esc per tornare al menu precedente.

    inserisci qui la descrizione dell'immagine


1
Sebbene sia la stessa di questa risposta molto più breve: askubuntu.com/a/584738/307523 La tua risposta va molto oltre con schermate e Shiftchiavi per far apparire grub in primo luogo.
WinEunuuchs2Unix

1

La risposta di Jackkobec descrive un metodo di visualizzazione grub.cfge scorrimento del codice sorgente per trovare un numero di menu. Un modo più semplice è con questo script :

Grub Version: 2.02~beta2-36ubuntu3.22


         ┌───────────┤ Use arrow, page, home & end keys. Tab toggle option ├────────────┐
         │ Menu No.     ----------- Menu Name -----------                               │ 
         │                                                                              │ 
         │  1>3  Ubuntu, with Linux 4.15.0-55-generic                                  ↑│ 
         │  1>6  Ubuntu, with Linux 4.15.0-54-generic                                  ▒│ 
         │  1>9  Ubuntu, with Linux 4.14.134-0414134-generic                           ▒│ 
         │  1>12 Ubuntu, with Linux 4.14.120-0414120-generic                           ▮│ 
         │  1>15 Ubuntu, with Linux 4.14.114-0414114-generic                           ▒│ 
         │  1>18 Ubuntu, with Linux 4.14.110-0414110-generic                           ▒│ 
         │  1>21 Ubuntu, with Linux 4.14.98-041498-generic                             ▒│ 
         │  1>24 Ubuntu, with Linux 4.14.89-041489-generic                             ▒│ 
         │  1>27 Ubuntu, with Linux 4.14.78-041478-generic                             ▒│ 
         │  1>30 Ubuntu, with Linux 4.14.70-041470-generic                             ▒│ 
         │  1>33 Ubuntu, with Linux 4.4.0-157-generic                                  ▒│ 
         │  1>36 Ubuntu, with Linux 3.16.60-031660-generic                             ▒│ 
         │  1>36 Ubuntu, with Linux 3.16.60-031660-generic                             ▒│ 
         │  2    Ubuntu 18.04.1 LTS (18.04) (on /dev/nvme0n1p10)                       ▒│ 
         │  3    Advanced options for Ubuntu 18.04.1 LTS (18.04) (on /dev/nvme0n1p10)  ▒│ 
         │  3>0  Ubuntu (on /dev/nvme0n1p10)                                           ↓│ 
         │                                                                              │ 
         │                                                                              │ 
         │                     [Display Grub Boot]            Exit                      │ 
         │                                                                              │ 
         └──────────────────────────────────────────────────────────────────────────────┘ 



Nota: in questo esempio è grub-menu.sh shortstato utilizzato per chiamare lo script. Il shortparametro elimina queste righe:

     │  1>10 Ubuntu, with Linux 4.14.134-0414134-generic (upstart)                 ▒│ 
     │  1>11 Ubuntu, with Linux 4.14.134-0414134-generic (recovery mode)           ▒│ 

Tasti di controllo

Dopo aver fatto scorrere le voci (è possibile utilizzare la rotellina del mouse o i tasti freccia) premere Escapeper tornare alla riga di comando.

Se si premono Enteri comandi grub associati per la voce vengono visualizzati:

menuentry 'Ubuntu, with Linux 4.14.134-0414134-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.14.134-0414134-generic-advanced-b40b3925-70ef-447f-923e-1b05467c00e7' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b40b3925-70ef-447f-923e-1b05467c00e7
else
search --no-floppy --fs-uuid --set=root b40b3925-70ef-447f-923e-1b05467c00e7
fi
echo 'Loading Linux 4.14.134-0414134-generic ...'
linux /boot/vmlinuz-4.14.134-0414134-generic root=UUID=b40b3925-70ef-447f-923e-1b05467c00e7 ro noplymouth fastboot acpiphp.disable=1 pcie_aspm=force vt.handoff=7 i915.fastboot=1 nopti nospectre_v2 nospec mem_sleep_default=deep
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.14.134-0414134-generic
}
Press <Enter> to continue

Aggiornamento di grub per l'avvio del kernel precedente

Esiste una serie di comandi grub per ciascuna voce di menu. Le voci compilate sono tutte archiviate nel /boot/grub/grub.cfgfile.

In questo esempio vogliamo che il numero di menu `1> 9> sia impostato come predefinito, quindi usiamo:

sudo -H gedit /etc/default/grub

e trova questa linea:

GRUB_DEFAULT=0

e cambiarlo in questo:

GRUB_DEFAULT="1>9"

Quindi salva il file ed esegui

sudo update-grub
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.