15 Installazione di più versioni del kernel #
SUSE Linux Enterprise Server supporta l'installazione parallela di più versioni del kernel. Quando si installa un secondo kernel, vengono creati automaticamente una voce di avvio e un disco initrd, pertanto non è necessaria alcuna ulteriore configurazione manuale. Al riavvio del computer, il kernel appena aggiunto è disponibile come opzione di avvio aggiuntiva.
Utilizzando questa funzionalità, è possibile verificare in modo sicuro gli aggiornamenti del kernel avendo sempre la possibilità di tornare al kernel precedente. A questo scopo, non utilizzare gli strumenti di aggiornamento (come YaST Online Update o l'applet del programma di aggiornamento), ma seguire la procedura descritta in questo capitolo.
È importante essere consapevoli che, quando si installa un kernel autocompilato o di terze parti, si perdono tutti i diritti al supporto. Sono supportati solo i kernel forniti con SUSE Linux Enterprise Server e quelli distribuiti tramite i canali di aggiornamento ufficiali per SUSE Linux Enterprise Server.
Dopo l'installazione di un kernel aggiuntivo, è consigliabile verificare la configurazione del boot loader per impostare la voce di avvio di default preferita. Per ulteriori informazioni, vedere Section 13.3, “Configuring the Boot Loader with YaST”.
15.1 Abilitazione e configurazione del supporto multiversione #
L'installazione di più versioni di un pacchetto software (supporto multi-versione) è abilitata per default a partire dalla versione SUSE Linux Enterprise Server 12. Per verificare l'impostazione, procedere come segue:
Aprire
/etc/zypp/zypp.conf
con l'editor preferito comeroot
.Cercare la stringa
multiversion
. Se è abilitata la funzione multiversione per tutti i pacchetti kernel che la supportano, viene visualizzata la riga seguente priva di commenti:multiversion = provides:multiversion(kernel)
Per limitare il supporto multiversione solo a determinati tipi di kernel, aggiungere l'elenco dei nomi dei pacchetti separati da virgole all'opzione
multiversion
in/etc/zypp/zypp.conf
, ad esempiomultiversion = kernel-default,kernel-default-base,kernel-source
Salvare le modifiche apportate.
Accertarsi i moduli kernel necessari forniti dal fornitore (Kernel Module Package) siano installati anche per il nuovo kernel aggiornato. Durante il processo di aggiornamento del kernel non si riceverà alcun avviso in merito a eventuali moduli kernel mancanti perché i requisiti del pacchetto vengono ancora soddisfatti dal kernel precedente tuttora presente nel sistema.
15.1.1 Eliminazione automatica dei kernel non utilizzati #
Quando viene eseguito frequentemente il test dei nuovi kernel con supporto multiversione abilitato, nel menu di avvio si genera rapidamente confusione. Poiché nella partizione /boot
generalmente lo spazio disponibile è limitato, potrebbe verificarsi anche un problema di overflow. Sebbene sia possibile eliminare manualmente le versioni del kernel non utilizzate con YaST o Zypper (come descritto di seguito), è anche possibile configurare libzypp
in modo che i kernel non più utilizzati vengano eliminati automaticamente. Per default i kernel non vengono eliminati.
Aprire
/etc/zypp/zypp.conf
con l'editor preferito comeroot
.Cercare la stringa
multiversion.kernels
e attivare questa opzione rimuovendo il commento dalla riga. Per questa opzione è disponibile un elenco dei valori seguenti separati da virgola:4.4.126-48
: conservare il kernel con il numero di versione specificatolatest
: conservare il kernel con il numero di versione più altolatest-N
: conservare il kernel con l'ennesimo numero di versione più altorunning
: conservare il kernel in esecuzioneoldest
: conservare il kernel con il numero di versione più basso (quello originariamente fornito con SUSE Linux Enterprise Server)oldest+N
: conservare il kernel con l'ennesimo numero di versione più bassoDi seguito sono riportati alcuni esempi
multiversion.kernels = latest,running
Conservare il kernel più recente e quello correntemente in esecuzione. Questa situazione è analoga alla disabilitazione del supporto di più versioni, ma in questo caso il kernel precedente viene rimosso dopo il successivo riavvio e non immediatamente dopo l'installazione.
multiversion.kernels = latest,latest-1,running
Conservare gli ultimi due kernel e quello correntemente in esecuzione.
multiversion.kernels = latest,running,4.4.126-48
Conservare il kernel più recente, quello attualmente in esecuzione e 4.4.126-48.
Suggerimento: mantenere in esecuzione il kernelA meno che non si utilizzi un determinato programma di installazione, mantenere sempre il kernel contrassegnato come
in esecuzione
.Se non si mantiene in esecuzione il kernel, questo viene eliminato durante l'aggiornamento. Di conseguenza, ciò significa che vengono eliminati anche tutti i moduli del kernel in esecuzione e non sarà più possibile caricarli.
Se si decide di mantenere in esecuzione il kernel, per evitare problemi con i moduli, riavviare sempre il sistema subito dopo l'upgrade del kernel.
15.1.2 Caso d'uso: eliminazione di un kernel precedente solo dopo il riavvio #
Si supponga di voler essere sicuri che il kernel precedente venga eliminato solo dopo aver riavviato il sistema con il nuovo kernel.
Modificare la riga che segue in /etc/zypp/zypp.conf
:
multiversion.kernels = latest,running
I parametri precedenti indicano al sistema di conservare il kernel più recente e quello in esecuzione solo se sono diversi tra loro.
15.1.3 Caso d'uso: conservazione dei kernel precedenti come fallback #
Si supponga di voler conservare una o più versioni di kernel per avere uno o più kernel «di ricambio».
Questo caso d'uso può risultare utile quando servono kernel per eseguire dei test. In caso di problemi, ad esempio se il computer non si avvia, è comunque possibile utilizzare una o più versioni di kernel notoriamente valide.
Modificare la riga che segue in /etc/zypp/zypp.conf
:
multiversion.kernels = latest,latest-1,latest-2,running
Quando si riavvia il sistema dopo aver installato un nuovo kernel, nel sistema rimangono tre kernel: quello attuale (configurato come latest,running
) e i due immediati predecessori (configurati rispettivamente come latest-1
e latest-2
).
15.1.4 Caso d'uso: mantenimento di una versione specifica del kernel #
L'utente effettua regolarmente aggiornamenti di sistema e installa nuove versioni di kernel. Tuttavia l'utente compila anche una versione personalizzata del kernel e vuole essere sicuro che il sistema la mantenga.
Modificare la riga che segue in /etc/zypp/zypp.conf
:
multiversion.kernels = latest,3.12.28-4.20,running
Quando si riavvia il sistema dopo l'installazione di un nuovo kernel, il sistema conserverà due kernel: quello nuovo in esecuzione (configurato come latest,running
) e quello autocompilato (configurato come 3.12.28-4.20
).
15.2 Installazione/rimozione di più versioni del kernel con YaST #
Avviare YaST e aprire il programma di gestione del software da
› .Elencare tutti i pacchetti in grado di fornire più versioni scegliendo
› › .Figura 15.1: Programma di gestione del software YaST: visualizzazione multiversione #Selezionare un pacchetto e aprire la rispettiva scheda
nel riquadro in basso a sinistra.Per installare un pacchetto, fare clic sulla casella di controllo corrispondente. Un segno di spunta verde indica che il pacchetto è selezionato per l'installazione.
Per rimuovere un pacchetto già installato (contrassegnato da un segno di spunta bianco), fare clic sulla casella di controllo corrispondente fino a visualizzare una
X
rossa che indica che il pacchetto è selezionato per la rimozione.Fare clic su
per avviare l'installazione.
15.3 Installazione/rimozione di più versioni del kernel con Zypper #
Utilizzare il comando
zypper se -s 'kernel*'
per visualizzare un elenco di tutti i pacchetti di kernel disponibili:S | Name | Type | Version | Arch | Repository --+----------------+------------+-----------------+--------+------------------- v | kernel-default | package | 2.6.32.10-0.4.1 | x86_64 | Alternative Kernel i | kernel-default | package | 2.6.32.9-0.5.1 | x86_64 | (System Packages) | kernel-default | srcpackage | 2.6.32.10-0.4.1 | noarch | Alternative Kernel i | kernel-default | package | 2.6.32.9-0.5.1 | x86_64 | (System Packages) ...
Specificare l'esatta versione durante l'installazione:
zypper in kernel-default-2.6.32.10-0.4.1
Quando si disinstalla un kernel, utilizzare i comandi
zypper se -si 'kernel*'
per elencare tutti i kernel installati ezypper rm
PACKAGENAME-VERSION per rimuovere il pacchetto.