Come eseguire il downgrade del kernel dopo un aggiornamento errato (16.04)


20

I recenti aggiornamenti al kernel Ubuntu 16.04 (4.4.0-89 e -91) sono falliti gravemente sul mio laptop. Fortunatamente, ho ancora installato la precedente versione funzionante (4.4.0-57). Per ora ho Grub configurato per mostrarmi un menu e sto selezionando manualmente -57 all'avvio, ma questo sembra fragile, probabilmente si spezzerà in futuro sudo apt upgrade.

Penso di volere:

  • Per rimuovere -89 e -91, poiché non mi stanno facendo nulla di buono.
  • Per rendere -57 il valore predefinito per Grub, in un modo che persisterà attraverso gli aggiornamenti.
  • Per garantire che il -57 rimanga installato, anche se installo l'aggiornamento successivo del kernel
  • Per poter provare facilmente gli aggiornamenti successivi del kernel, ma tornare a -57 se fallisce. La mia preoccupazione principale è che -57 venga rimosso automaticamente.
  • Se trovo un aggiornamento funzionante in seguito, un semplice percorso per tornare indietro per annullare tutto questo e tornare ai seguenti aggiornamenti del kernel.

Cercare di rimuovere -91 con sudo apt remove linux-image-4.4.0-91-genericmi richiede di rimuovere linux-generico e linux-headers-generico. Sembra cattivo, quindi non l'ho provato.

Riesco a trovare una varietà di domande sul problema generale, ma nessuna sembra rispondere a tutti i miei obiettivi e la maggior parte sono abbastanza grandi da non pensare che si applichino più.

Qual'è il miglior modo per farlo?

Addendum : è stato contrassegnato come duplicato di Come impedire l'aggiornamento di un pacchetto specifico? . Questa risposta potrebbe riguardare una parte della mia domanda, ma non affronta il quadro generale.

In generale, il problema è che il kernel è gestito in modo insolito. È installato tramite linux-generic, che non è altro che una dipendenza dalle intestazioni linux-image-generic e linux-image-header. Quelli a loro volta sono solo dipendenze dai pacchetti linux-linux-image-VERSION-generic e headers-VERSION-generic, degni di nota per inserire il numero di versione nel nome del pacchetto (presumibilmente per rendere più semplice l'installazione multipla in parallelo).

In particolare non affrontati in quella risposta sono:

  • Non tratta come rimuovere -89 e -91.
  • Non affronta come rendere -57 il valore predefinito per Grub, anche se installo aggiornamenti successivi.
  • Non indica come garantire che -57 rimanga installato, anche se installo aggiornamenti successivi. Anche se la risposta è conservare uno o più pacchetti, dati i vari pacchetti coinvolti, quali dovrei tenere? Se si tratta di mantenere Linux-generico, come posso prima effettuare il downgrade?

È molto improbabile che i kernel "abbiano fallito" sul tuo laptop. Probabilmente hai installato alcuni driver in modo sbagliato e "fallito" dopo un aggiornamento del kernel. Hai installato qualche driver grafico?
Pilota

Se rimuovi l'ultimo kernel e linux-generico con le intestazioni, raggiungerai il tuo obiettivo. Ma come ho già detto, il problema è diverso.
Pilota

1
"fail" non era wifi e X scontento della mia grafica. Entrambi sono driver di stock Intel integrati e usati. Il problema era persistito attraverso più riavvii, incluso uno spegnimento / accensione completi. Quindi il mio obiettivo era un punto fermo fino a quando non avrei potuto indagare seriamente. Naturalmente, inizio a raccogliere alcune informazioni per indagini serie e -91 inizia a funzionare come previsto. sospiro incrocio le dita per ora.
Alan De Smet,

1
Questo non è un duplicato. Non si tratta solo di congelare qualche pacchetto. Forse è un duplicato ma non della domanda proposta.
Pilota 6

Risposte:


19

Rimuovere l'ultimo kernel da

sudo apt remove linux-image-4.4.0-91-generic linux-headers-4.4.0-91-generic

Che disinstallare meta pacchetti linux-generic, linux-image-generice linux-headers-generic. I kernel non verranno mai aggiornati.

Per ripristinarlo puoi eseguire

sudo apt install linux-generic

Ciò installerà l'ultimo kernel e i kernel riceveranno aggiornamenti.

linux-genericè un meta pacchetto. È vuoto, ma dipende da altri due meta-pacchetti: linux-image-generice linux-headers-generic.

Gli ultimi due indicano l'ultima immagine del kernel e le intestazioni.

Se rimuovete i meta-pacchetti, nulla verrà rimosso da Linux, ma l'immagine del kernel e le intestazioni non riceveranno aggiornamenti. Puoi sempre installarli in un secondo momento. Tireranno gli ultimi pacchetti del kernel "reali".

Quindi la soluzione è rimuovere manualmente i pacchetti del kernel che non vuoi e anche i meta-pacchetti.


3

Sebbene la soluzione di Pilot6 possa essere la soluzione migliore, puoi fare misure meno drastiche.

Vorrei rimuovere personalmente i kernel che non si desidera dal centro software e quindi mettere in attesa quei pacchetti - vedere Come impedire l'aggiornamento di un pacchetto specifico?

Questo è un cambiamento banale e puoi cavalcare o ripristinare il cambio piuttosto facilmente.


Quale pacchetto suggerisci di tenere?
Pilota

Linux-generico è probabilmente sufficiente, non ne sono certo. Potrebbe essere necessario aggiungere gli altri e potrebbe essere necessario specificare il kernel esatto, ma ne dubito.
Pantera,

3
sudo apt-mark hold linux-image-generic linux-headers-genericfarà
Pantera l'

1
@ Pilot6 - No, puoi mantenere i vecchi kernel e contrassegnare grub quale kernel avviare. askubuntu.com/questions/216398/…
Pantera

1
Si, puoi. Ma è troppo complicato e non ha senso pratico.
Pilota 6
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.