SDB:Tenere installate più versioni del kernel

(Reindirizzamento da SDB:Keep multiple kernel versions)


Provato su openSUSE Articoli consigliati Articoli correlati
Icon-checked.png

Icon-manual.png Icon-help.png

Questo articolo illustra la funzionalità multiversion kernel di openSUSE (lett. kernel "multi-versione", ovvero molteplici versioni del kernel Linux disponibili all'avvio), descrive inoltre come abilitarla e configurarla.

Icon-warning.png
Attenzione! Questo funzionalità dovrebbe essere usata soltanto da utenti esperti.

Comportamento predefinito quando si installa un nuovo kernel

Quando si scarica e si installa un nuovo kernel con YaST o Zypper, il comportamento predefinito di una generica installazione di openSUSE è di eliminare il vecchio kernel non appena quello nuovo è stato installato e prima che il sistema sia stato riavviato usando il nuovo kernel.

Modificare il comportamento predefinito con la funzionalità multiversion kernel

A partire da openSUSE 12.1 è disponibile una nuova funzionalità altamente configurabile - che si chiama appunto multiversion kernel - che si può abilitare e configurare nel file /etc/zypp/zypp.conf.

Abilitando e configurando questa funzionalità è possibile modificare il comportamento predefinito di openSUSE e configurarlo in modo tale da:

  • eliminare il vecchio kernel solo dopo che il sistema sia stato riavviato con successo usando il nuovo kernel
  • tenere un numero specificato di vecchi kernel come kernel di riserva
  • conservare una particolare versione del kernel

Dopo il riavvio di sistema successivo all'installazione di una nuova versione del kernel uno script confronterà l'elenco dei kernel installati con le impostazioni in /etc/zypp/zypp.conf ed eliminerà quelli che non sono più necessari.


Abilitare la funzionalità multiversion kernel

Avvia una sessione (anche da console virtuale) come root, apri il file /etc/zypp/zypp.conf con un editor e cerca al suo interno le seguenti due righe di testo:

#multiversion = provides:multiversion(kernel)

e

#multiversion.kernels = latest,running

La prima riga dice al sistema di conservare molteplici versioni del kernel e la seconda riga determina il modo con cui queste versioni del kernel sono gestite dal sistema.

De-commenta entrambe le righe rimuovendo il cancelletto (#) iniziale e poi salva il file.

Osserva che, se avrai de-commentato soltanto la prima riga, il sistema conserverà tutti i kernel senza eliminarne alcuno di essi. Questo non è un comportamento desiderabile in quanto a lungo andare riempirà il tuo disco con le vecchie versioni del kernel. Per prevenire questo inconveniente entrambe le righe devono essere de-commentate, o dovrai eliminare a mano le vecchie versioni del kernel.

Configurare la funzionalità multiversion kernel

Nel file /etc/zypp/zypp.conf sono menzionate numerose opzioni che sono disponibili per configurare il comportamento della funzionalità multiversion kernel (per praticità si riportano i commenti di questo file direttamente tradotti):

## Elenco separato da virgole di pacchetti kernel da tenere installati in parallelo, se la
## variabile multiversion di sopra è impostata. È possibile indicare i pacchetti con i parametri:
## 2.6.32.12-0.7 - Versione esatta da mantenere
## latest        - Tieni il kernel con il numero di versione maggiore
## latest-N      - Tieni il kernel con l'N-esimo numero di versione maggiore
## running       - Tieni il kernel in esecuzione
## oldest        - Tieni il kernel con il numero di versione inferiore (il kernel GA)
## oldest+N      - Tieni il kernel con l'N-esimo numero di versione inferiore
##
## Default: Non eliminare alcun kernel se è impostata multiversion = provides:multiversion(kernel)

Il loro utilizzo è spiegato in dettaglio qui sotto.

Eliminare un vecchio kernel solo dopo il riavvio

Casi d'uso: Vuoi essere sicuro che il vecchio kernel sarà eliminato solo dopo che il sistema si sia riavviato con successo usando il nuovo kernel.

Configurazione: De-commenta le due righe in /etc/zypp/zypp.conf come specificato nella sezione 3 di sopra, il che ti condurrà al seguente risultato:

multiversion = provides:multiversion(kernel)
multiversion.kernels = latest,running

Spiegazione: I parametri latest,running informano il sistema di conservare l'ultimo kernel installato (latest) e quello in esecuzione (running, quindi funzionante) se sono diversi.

Per questioni di prudenza potresti voler configurare il tuo sistema in modo tale da tenere sempre il kernel latest e il kernel running.

Se riavvii il sistema con il nuovo kernel - come ci si aspetterebbe in questo caso - allora, dopo che il nuovo kernel sia stato avviato con successo, il kernel da tenere è dato da

  • il kernel latest = il kernel nuovo, più recente
  • il kernel running = anche questo il kernel nuovo

Il kernel più recente e quello in esecuzione non sono più diversi (dal momento che ora kernel latest e runnig sono identici) per cui tutti gli altri kernel, in questo caso il precedente, verranno rimossi.

Se riavvii invece il sistema con il vecchio kernel, il kernel da tenere è dato da

  • il kernel in esecuzione (running) = il vecchio kernel con cui riavvii il sistema
  • il kernel più recente (latest) = il kernel nuovo

In questo caso entrambi i kernel, il latest e il running, sono diversi e quindi verranno conservati entrambi e nessuno dei due rimosso.

Tenere i kernel più vecchi come riserve

Casi d'uso: Vuoi tenere una o più versioni di kernel meno recenti per avere uno o più kernel di riserva. Questo si rivelerebbe utile se, per esempio, si volessero installare kernel unstable a scopo di test. In caso qualcosa andasse storto con un nuovo kernel ustable, ovvero la tua macchina non si avviasse più, avresti ancora una o più versioni precedenti del kernel installate e note per non avere problemi, con cui potresti avviare il tuo computer.

Configurazione: Aggiungi uno o più parametri di configurazione latest-N alla riga con multiversion kernel in /etc/zypp/zypp.conf. La riga di esempio qui sotto farà sì che sul tuo sistema vengano sempre mantenute le ultime due versioni dei kernel precedenti:

multiversion.kernels = latest,latest-1,latest-2,running

Spiegazione: Quando avrai riavviato il sistema dopo l'installazione di un nuovo kernel, il sistema manterrà

  • il kernel nuovo e in esecuzione, come configurato con latest,running
  • la versione del kernel precedente a quella del kernel nuovo, come configurato con latest-1
  • il predecessore della versione del kernel precedente, come configurato con latest-2

e rimuoverà tutte le versioni più vecchie del kernel.

Se vuoi preservare dei particolari numeri di versione del kernel, è sufficiente aggiungere un altro parametro di configurazione latest-N alla riga con multiversion kernels. Se per esempio si volessero preservare quattro versioni aggiuntive del kernel, allora la riga dovrebbe essere simile a questa:

multiversion.kernels = latest,latest-1,latest-2,latest-3.latest-4,running

con la quale verrebbero lasciati cinque kernel tra quelli installati: quello nuovo e le quattro versioni precedenti.

Il risultato opposto si può ottenere usando i parametri oldest e oldest+N. Un'espressione multiversion kernels come questa

multiversion.kernels = latest,oldest,oldest+1,running

lascerà il tuo sistema con

  • la versione del kernel più recente e in esecuzione, come configurato con latest,running
  • la versione più vecchia del kernel, come configurato con oldest
  • il successore della versione più vecchia del kernel, come configurato con oldest+1

Tenere una particolare versione del kernel

Casi d'uso: Effettui aggiornamenti regolari del sistema e nuove versioni del kernel vengono installate da YaST o Zypper. Inoltre hai anche compilato il tuo kernel personale per svariate ragioni e vorresti essere certo che il sistema lo mantenga.

Configurazione: Aggiungi il numero di versione del kernel da te compilato alla riga introdotta da multiversion kernels in /etc/zypp/zypp.conf. Se per esempio il nome del tuo kernel personalizzato fosse 3.1.0-46-<tuo_username>, allora la riga di configurazione dovrebbe risultare come questa:

multiversion.kernels = latest,3.1.0-46-<tuo_username>,running

Spiegazione: Quando avrai riavviato il tuo sistema dopo l'installazione di un nuovo kernel, il sistema manterrà

  • il kernel nuovo e in esecuzione, come configurato con latest,running
  • il kernel da te compilato, come configurato con 3.1.0-46-<tuo_username>

Usare tutte le opzioni di configurazione

Casi d'uso: Hai un sistema appena installato che aggiorni di frequente e su cui vuoi conservare

  • il kernel che era fornito nel supporto di installazione e il suo successore
  • il kernel più recente e il suo predecessore
  • il tuo kernel personale che ti sei compilato, il cui nome è 3.1.0-46-<tuo_username>

Configurazione: Modifica la riga con multiversion kernels in /etc/zypp/zypp.conf nella seguente:

multiversion.kernels = latest,latest-1,oldest,oldest+1,3.1.0-46-<tuo_username>,running

Spiegazione: Una volta riavviato il sistema dopo l'installazione di un nuovo kernel, il sistema terrà

  • il kernel nuovo e in esecuzione, come configurato con latest,running
  • il predecessore del kernel nuovo e in esecuzione (running), come configurato con latest-1
  • il kernel da te compilato, come configurato con 3.1.0-46-<your_username>
  • il kernel che era fornito col supporto di installazione, come configurato con oldest
  • il successore del kernel fornito dal supporto d'installazione, come configurato con oldest+1

Collegamenti esterni

Autore (?):--Freigeist A 08:09, 25 December 2011 (MST)