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 “Configuring the Boot Loader with YaST”, Chapter 12, The Boot Loader GRUB 2, Administration Guide.
L'installazione di più versioni di un pacchetto software (supporto multiversione) è abilitata per default su SUSE Linux Enterprise 12. Per verificare l'impostazione, procedere come segue:
Aprire /etc/zypp/zypp.conf con l'editor preferito come root.
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 esempio
multiversion = 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.
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), si può anche 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 come root.
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:
3.12.24-7.1:
conservare il kernel con il numero di versione specificato
latest:
conservare il kernel con il numero di versione più alto
latest-N:
conservare il kernel con l'ennesimo numero di versione più alto
running:
conservare il kernel in esecuzione
oldest:
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ù basso
Di seguito sono riportati alcuni esempi
multiversion.kernels = latest,running
Conservare il kernel più recente e quello correntemente in esecuzione. Questa opzione è analoga alla situazione in cui la funzione multiversione non viene affatto abilitata, con la differenza che 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,3.12.25.rc7-test
Conservare il kernel più recente, quello attualmente in esecuzione e 3.12.25.rc7-test.
running
A meno che non vengano utilizzate impostazioni specifiche, potrebbe essere preferibile conservare sempre il kernel (in esecuzione. Se non si conserva il kernel in esecuzione, questo verrà eliminato in caso di aggiornamento. Tutto ciò rende necessario il riavvio immediato del sistema dopo l'aggiornamento, poiché non è più possibile caricare i moduli del kernel attualmente in esecuzione in quanto sono stati eliminati.
Avviare YaST e aprire il programma di gestione del software da › .
Elencare tutti i pacchetti in grado di fornire più versioni scegliendo › › .
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.
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 e zypper rm PACKAGENAME-VERSION per rimuovere il pacchetto.