systemd
Daemonjournalctl
: Query the systemd
Journaludev
openSUSE Leap supports the parallel installation of multiple kernel versions. When installing a second kernel, a boot entry and an initrd are automatically created, so no further manual configuration is needed. When rebooting the machine, the newly added kernel is available as an additional boot option.
Using this functionality, you can safely test kernel updates while being able to always fall back to the proven former kernel. To do so, do not use the update tools (such as the YaST Online Update or the updater applet), but instead follow the process described in this chapter.
It is recommended to check your boot loader configuration after having installed another kernel to set the default boot entry of your choice. See Section 12.3, “Configuring the Boot Loader with YaST” for more information.
Installing multiple versions of a software package (multiversion support) is enabled by default since openSUSE Leap. To verify this setting, proceed as follows:
Open /etc/zypp/zypp.conf
with the editor of your
choice as root
.
Search for the string multiversion
. If multiversion is
enabled for all kernel packages capable of this feature, the following
line appears uncommented:
multiversion = provides:multiversion(kernel)
To restrict multiversion support to certain kernel flavors, add the
package names as a comma-separated list to the
multiversion
option in
/etc/zypp/zypp.conf
—for example
multiversion = kernel-default,kernel-default-base,kernel-source
Save your changes.
Make sure that required vendor provided kernel modules (Kernel Module Packages) are also installed for the new updated kernel. The kernel update process will not warn about eventually missing kernel modules because package requirements are still fulfilled by the old kernel that is kept on the system.
When frequently testing new kernels with multiversion support enabled, the
boot menu quickly becomes confusing. Since a /boot
partition usually has limited space you also might run into trouble with
/boot
overflowing. While you may delete unused kernel
versions manually with YaST or Zypper (as described below), you can also
configure libzypp
to automatically
delete kernels no longer used. By default no kernels are deleted.
Open /etc/zypp/zypp.conf
with the editor of your
choice as root
.
Search for the string multiversion.kernels
and
activate this option by uncommenting the line. This option takes a
comma-separated list of the following values:
4.4.126-48
:
keep the kernel with the specified version number
latest
:
keep the kernel with the highest version number
latest-N
:
keep the kernel with the Nth highest version number
running
:
keep the running kernel
oldest
:
keep the kernel with the lowest version number (the one that was
originally shipped with openSUSE Leap)
oldest+N
.
keep the kernel with the Nth lowest version number
Here are some examples
multiversion.kernels = latest,running
Keep the latest kernel and the one currently running. This is similar to not enabling the multiversion feature, except that the old kernel is removed after the next reboot and not immediately after the installation.
multiversion.kernels = latest,latest-1,running
Keep the last two kernels and the one currently running.
multiversion.kernels = latest,running,4.4.126-48
Keep the latest kernel, the one currently running, and 4.4.126-48.
Unless you are using a special setup, always keep the
kernel marked running
.
If you do not keep the running kernel, it will be deleted when updating the kernel. In turn, this means that all of the running kernel's modules are also deleted and cannot be loaded anymore.
If you decide not to keep the running kernel, always reboot immediately after a kernel upgrade to avoid issues with modules.
You want to make sure that an old kernel will only be deleted after the system has rebooted successfully with the new kernel.
Change the following line in /etc/zypp/zypp.conf
:
multiversion.kernels = latest,running
The previous parameters tell the system to keep the latest kernel and the running one only if they differ.
You want to keep one or more kernel versions to have one or more “spare” kernels.
This can be useful if you need kernels for testing. In case something goes wrong, for example, your machine does not boot, you still can use one or more kernel versions which are known to be good.
Change the following line in /etc/zypp/zypp.conf
:
multiversion.kernels = latest,latest-1,latest-2,running
When you reboot your system after the installation of a new kernel, the
system will keep three kernels: the current kernel (configured as
latest,running
) and its two immediate predecessors
(configured as latest-1
and latest-2
).
You make regular system updates and install new kernel versions. However, you are also compiling your own kernel version and want to make sure that the system will keep them.
Change the following line in /etc/zypp/zypp.conf
:
multiversion.kernels = latest,3.12.28-4.20,running
When you reboot your system after the installation of a new kernel, the
system will keep two kernels: the new and running kernel (configured as
latest,running
) and your self-compiled kernel
(configured as 3.12.28-4.20
).
Start YaST and open the software manager via
› .List all packages capable of providing multiple versions by choosing
› › .Select a package and open its
tab in the bottom pane on the left.To install a package, click its check box. A green check mark indicates it is selected for installation.
To remove an already installed package (marked with a white check mark),
click its check box until a red X
indicates it is
selected for removal.
Click
to start the installation.
Use the command zypper se -s 'kernel*'
to display a
list of all kernel packages available:
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) ...
Specify the exact version when installing:
zypper in kernel-default-2.6.32.10-0.4.1
When uninstalling a kernel, use the commands zypper se -si
'kernel*'
to list all kernels installed and zypper
rm
PACKAGENAME-VERSION to remove the
package.
Kernel:HEAD
#
Add the Kernel:HEAD
repository with (the repository
is added using the alias kernel-repo
):
tux >
sudo zypper ar \
http://download.opensuse.org/repositories/Kernel:/HEAD/standard/ \
kernel-repo
To refresh repositories, run:
tux >
sudo zypper ref
To upgrade the kernel to the latest version in the
Kernel:HEAD
repository, run:
tux >
sudo zypper dist-upgrade --from kernel-repo
Reboot the machine.
Kernel:HEAD
May Break the System
Installing a kernel from Kernel:HEAD
should never be
necessary, because important fixes are backporten by SUSE and are made
available as official updates. Installing the latest kernel only makes
sense for kernel developers and kernel testers. If installing from
Kernel:HEAD
, be aware that it may break your system.
Make sure to always have the original kernel available for booting as
well.