SDB:Tenere installate più versioni del kernel
Provato su openSUSE | Articoli consigliati | Articoli correlati | |||
|
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.
Indice
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.
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.
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)