27 Installieren von mehreren Kernel-Versionen #
SUSE Linux Enterprise Server unterstützt die parallele Installation von mehreren Kernel-Versionen. Beim Installieren eines zweiten Kernels werden automatisch ein Boot-Eintrag und ein initrd erstellt; es sind also keine weiteren manuellen Konfigurationsschritte erforderlich. Beim Neustarten des Rechners wird der hinzugefügte Kernel als zusätzlicher Boot-Parameter angeboten.
Mithilfe dieser Funktion können Sie Kernel-Aktualisierungen zunächst auf sichere Weise testen, wobei Sie jederzeit ein Fallback auf den bisherigen (einwandfrei funktionsfähigen) Kernel vornehmen können. Verwenden Sie hierzu nicht die Aktualisierungswerkzeuge (wie YaST-Online-Update oder das Aktualisierungsmodul), sondern befolgen Sie die Anweisungen in diesem Kapitel.
Es ist zu beachten, dass Ihre gesamte Supportberechtigung für den Rechner erlischt, sobald Sie einen selbst kompilierten Kernel oder einen Kernel von Drittanbietern installieren. Es werden nur solche Kernels unterstützt, die zum Lieferumfang von SUSE Linux Enterprise Server gehören oder über die offiziellen Aktualisierungskanäle für SUSE Linux Enterprise Server bezogen werden.
Nach dem Installieren eines weiteren Kernels wird empfohlen, die Bootloader-Konfiguration zu prüfen und den gewünschten Standard-Booteintrag festzulegen. Weitere Informationen hierzu finden Sie im Abschnitt 18.3, „Konfigurieren des Bootloaders mit YaST“.
27.1 Aktivieren und Konfigurieren der Multiversions-Unterstützung #
Die Unterstützung für die Installation mehrerer Versionen eines Softwarepakets (Multiversions-Unterstützung) ist bei SUSE Linux Enterprise Server 12 und neueren Versionen standardmäßig aktiviert. Diese Einstellung können Sie wie folgt überprüfen:
Öffnen Sie
/etc/zypp/zypp.conf
alsroot
in einem Editor Ihrer Wahl.Suchen Sie die Zeichenkette
multiversion
. Wenn „multiversion“ für alle Kernel-Pakete aktiviert ist, die diese Funktion unterstützen, wird folgende Zeile ohne Kommentare angezeigt:multiversion = provides:multiversion(kernel)
Soll die Multiversions-Unterstützung auf bestimmte Kernel-Varianten beschränkt werden, fügen Sie die Paketnamen in einer durch Kommas getrennten Liste an die Option
multiversion
in/etc/zypp/zypp.conf
an, beispielsweisemultiversion = kernel-default,kernel-default-base,kernel-source
Speichern Sie die Änderungen.
Stellen Sie sicher, dass die erforderlichen, vom Hersteller bereitgestellten Kernel-Module (Kernel-Modul-Pakete) auch für den neuen, aktualisierten Kernel installiert werden. Während der Aktualisierung des Kernels erhalten Sie keine Warnung zu fehlenden Kernel-Modulen, da die Paketanforderungen noch vom alten, auf dem System beibehaltenen Kernel erfüllt werden.
27.1.1 Automatisches Löschen nicht verwendeter Kernel #
Wenn Sie häufig neue Kernel mit aktivierter Multiversions-Unterstützung testen, wird das Bootmenü rasch unübersichtlich. Da eine /boot
-Partition normalerweise nur über einen begrenzten Speicherplatz verfügt, kann es zu Problemen kommen, wenn die /boot
-Partition überläuft. Sie können die nicht verwendeten Kernel-Versionen durchaus manuell mit YaST oder Zypper entfernen (Anweisungen siehe unten) oder auch alternativ libzypp
so konfigurieren, dass alle nicht mehr genutzten Kernel automatisch gelöscht werden. Standardmäßig werden keine Kernel gelöscht.
Öffnen Sie
/etc/zypp/zypp.conf
alsroot
in einem Editor Ihrer Wahl.Suchen Sie die Zeichenkette
multiversion.kernels
und aktivieren Sie die Option, indem Sie die Auskommentierung der Zeile aufheben. Diese Option erfordert eine durch Komma getrennte Liste der folgenden Werte:5.3.18-53.3
: Kernel mit angegebener Versionsnummer beibehaltenlatest
: Kernel mit höchster Versionsnummer beibehaltenlatest-N
: Kernel mit n-höchster Versionsnummer beibehaltenrunning
: Derzeit ausgeführten Kernel beibehaltenoldest
: Kernel mit niedrigster Versionsnummer beibehalten (also den Kernel, der aus dem ursprünglichen Lieferumfang von SUSE Linux Enterprise Server stammt)oldest+N
. Kernel mit n-niedrigster Versionsnummer beibehaltenIm Folgenden finden Sie einige Beispiele.
multiversion.kernels = latest,running
Behält den jüngsten Kernel und den derzeit ausgeführten Kernel bei. Dies entspricht nahezu dem Nichtaktivieren der Multiversionsfunktion, mit der Ausnahme, dass der alte Kernel nicht direkt nach der Installation entfernt wird, sondern erst nach dem nächsten Neubooten.
multiversion.kernels = latest,latest-1,running
Behält die beiden jüngsten Kernel und den derzeit ausgeführten Kernel bei.
multiversion.kernels = latest,running,5.3.18-53.3
Behält den jüngsten Kernel, den derzeit ausgeführten Kernel und 5.3.18-53.3 bei.
Tipp: Derzeit ausgeführten Kernel beibehaltenWenn Sie nicht mit einer besonderen Einrichtung arbeiten, behalten Sie den derzeit als
running
markierten Kernel bei.Falls Sie den derzeit ausgeführten Kernel nicht beibehalten, wird dieser Kernel bei einer Kernel-Aktualisierung gelöscht. Dies bedeutet wiederum, dass auch alle Module des derzeit ausgeführten Kernels gelöscht werden und nicht mehr geladen werden können.
Wenn Sie sich entscheiden, den derzeit ausgeführten Kernel tatsächlich nicht beizubehalten, booten Sie nach einer Kernel-Aktualisierung stets unmittelbar neu, damit keine Probleme mit den Modulen auftreten.
27.1.2 Anwendungsfall: Löschen eines alten Kernels erst nach dem Neustart #
Ein alter Kernel soll erst dann gelöscht werden, wenn das System fehlerfrei mit dem neuen Kernel gebootet wurde.
Ändern Sie die folgende Zeile in /etc/zypp/zypp.conf
:
multiversion.kernels = latest,running
Die Parameter weisen das System an, den aktuellen Kernel und den ausgeführten Kernel nur dann beizubehalten, wenn sie nicht identisch sind.
27.1.3 Anwendungsfall: Beibehalten alter Kernels als Fallback #
Mindestens eine Kernel-Version soll als „Ersatz“-Kernel beibehalten werden.
Dies kann von Nutzen sein, wenn Sie mehrere Kernel zu Testzwecken beibehalten möchten. Sollte ein Problem eintreten (beispielsweise weil der Computer nicht bootet), können Sie dennoch auf mindestens eine bekanntermaßen funktionsfähige Kernel-Version zurückgreifen.
Ändern Sie die folgende Zeile in /etc/zypp/zypp.conf
:
multiversion.kernels = latest,latest-1,latest-2,running
Wenn Sie das System nach dem Installieren eines neuen Kernels neu booten, behält das System drei Kernel bei: den aktuellen Kernel (als latest,running
konfiguriert) und die beiden unmittelbaren Vorgänger (als latest-1
und latest-2
konfiguriert).
27.1.4 Anwendungsfall: Beibehalten einer bestimmten Kernel-Version #
Sie nehmen regelmäßige Systemaktualisierungen vor und installieren neue Kernel-Versionen. Daneben kompilieren Sie eine eigene Kernel-Version, die im System beibehalten werden soll.
Ändern Sie die folgende Zeile in /etc/zypp/zypp.conf
:
multiversion.kernels = latest,5.3.18-53.3,running
Wenn Sie das System nach der Installation eines neuen Kernels neu booten, behält das System zwei Kernel bei: den neuen und ausgeführten Kernel (als latest,running
konfiguriert) und den selbst kompilierten Kernel (als 5.3.18-53.3
konfiguriert).
27.2 Installieren/Entfernen von mehreren Kernel-Versionen mit YaST #
Mit YaST können Sie mehrere Kernel installieren oder entfernen:
Starten Sie YaST, und öffnen Sie den Software-Manager mit
› .Wählen Sie
› › . Eine Liste aller Pakete, die mehrere Versionen bieten, wird angezeigt.Abbildung 27.1: Der YaST-Software-Manager: Multiversionsanzeige #Wählen Sie ein Paket aus, und öffnen Sie den Karteireiter
im unteren linken Bereich.Zum Installieren eines Pakets klicken Sie auf das Kontrollkästchen neben dem Paket. Ein grünes Häkchen zeigt, dass das betreffende Paket zur Installation ausgewählt wurde.
Soll ein bereits installiertes Paket (mit einem weißen Häkchen markiert) entfernt werden, klicken Sie auf das zugehörige Kontrollkästchen, bis ein rotes
X
sichtbar ist. Dies bedeutet, dass das Paket zum Entfernen ausgewählt wurde.Klicken Sie auf
, um mit der Installation zu beginnen.
27.3 Installieren/Entfernen von mehreren Kernel-Versionen mit Zypper #
Mit zypper
können Sie mehrere Kernel installieren oder entfernen:
Rufen Sie mit dem Befehl
zypper se -s 'kernel*'
eine Liste aller verfügbaren Kernel-Pakete ab:S | Name | Type | Version | Arch | Repository ---+----------------------+---------+-------------------+--------+------------------------------------------------------ i+ | kernel-default | package | 6.4.0-150600.9.2 | x86_64 | SLE-Module-Basesystem15-SP6-Pool | kernel-default-base | package | 6.4.0-150600.9.2.150600.10.40 | x86_64 | SLE-Module-Basesystem15-SP6-Pool | kernel-default-devel | package | 6.4.0-150600.9.2 | x86_64 | SLE-Module-Basesystem15-SP6-Pool | kernel-devel | package | 6.4.0-150600.9.2 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-all | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-amdgpu | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-ath10k | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-ath11k | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-ath12k | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-atheros | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-bluetooth | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-bnx2 | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-brcm | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-chelsio | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-dpaa2 | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-i915 | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-intel | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-iwlwifi | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-liquidio | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-marvell | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-media | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-mediatek | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-mellanox | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-mwifiex | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-network | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-nfp | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-nvidia | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool | kernel-firmware-nvidia-gsp-G06 | package | 525.116.04-150500.1.1 | x86_64 | SLE-Module-Basesystem15-SP6-Pool | kernel-firmware-nvidia-gspx-G06 | package | 550.54.14-150600.1.1 | x86_64 | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-platform | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-prestera | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-qcom | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-qlogic | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-radeon | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-realtek | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-serial | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-sound | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-ti | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-ueagle | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool i | kernel-firmware-usb-network | package | 20240201-150600.1.1 | noarch | SLE-Module-Basesystem15-SP6-Pool | kernel-macros | package | 6.4.0-150600.9.2 | noarch | SLE-Module-Basesystem15-SP6-Pool
Geben Sie beim Installieren die genaue Version an:
>
sudo
zypper in kernel-default-6.4.0-150600.9.2Wenn Sie einen Kernel deinstallieren, verwenden Sie den Befehl
zypper se -si 'kernel*'
, um alle installierten Kernel aufzulisten, und den Befehlzypper rm
PACKAGENAME-VERSION, um das Paket zu entfernen.