This is a draft document that was built and uploaded automatically. It may document beta software and be incomplete or even incorrect. Use this document at your own risk.

Jump to content
Upgrading SLES 15 to SLES 16.1
SUSE Linux Enterprise Server 16.1

Upgrading SLES 15 to SLES 16.1

Publication Date: 08 Jul 2026

The distribution migration system (DMS) allows for upgrading an existing SUSE Linux Enterprise Server (SLES) system to a later version. No new installation is required and existing data is kept intact. The upgrade leverages a specialized live migration image to completely isolate the upgrade environment, significantly reducing the risk of system inconsistencies or unrecoverable failures during major version upgrades.

Prerequisites:

1 Lifecycle

This section explains the SUSE Linux Enterprise Server lifecycle and when you have to upgrade. Whether it is better to upgrade or perform a fresh installation depends on your specific scenario.

1.1 Product lifecycle

SUSE Linux Enterprise Server 16 uses minor versions like 16.0 and 16.1 to add new features or functionality that remain backward-compatible. Minor releases are scheduled annually and always in November. Each minor version has 24 months of general support, giving you 12 months overlap with the next minor version. The last minor version, 16.6, will have 48 months of general support to complete a 10-year lifecycle in November 2035. Additional Long Term Support (LTS) is available for 3 years for all minor versions.

For more information, refer to the product lifecycle support policies page at https://www.suse.com/support/policy-products/. For exact lifecycle dates, refer to https://www.suse.com/lifecycle.

1.2 Upgrading versus fresh installation

Upgrades between two major versions of SUSE Linux Enterprise Server are supported by SUSE. Whether it is better to upgrade or perform a fresh installation depends on your specific scenario. While upgrades involve less work, fresh installations ensure you benefit from all the new features of a release, such as disk layout changes, specific file system features, and other improvements. To get the most out of your system, SUSE therefore recommends fresh installations in most scenarios.

In both cases—an upgrade and a fresh installation—customers need to check if system settings and default values still fit their requirements.

2 Supported upgrade paths

This section lists the upgrade paths for SUSE Linux Enterprise Server 16.1.

List of supported upgrade paths
  • SLES 15 SP5, SP6, SP7, and 16.0

  • SLE RT 15 SP7

  • SUSE Linux Micro 6.2

  • openSUSE Leap 16.1

Other products and versions are not supported. Refer to the documentation of your product to upgrade it to a supported version first.

3 The Distribution migration system

The distribution migration system provides an upgrade path for an installed SUSE Linux Enterprise Server system from one major version to another, for example, from SLES 15 SP7 to SLES 16.1. No new installation is required. Existing data, such as home and data directories and system configuration, is kept intact.

The distribution migration system leverages a specialized live migration image to completely isolate the upgrade environment. This significantly reduces the risk of system inconsistencies or unrecoverable failures during major version upgrades.

3.1 Concept

While previous versions of SUSE Linux Enterprise Server were upgraded from the Unified Installer, SLES 16 uses the distribution migration system. This upgrade is done via the network using the zypper migration workflow, which sends a request to the repository server, asking for an upgrade path. Supported repository servers are the SUSE Customer Center (SCC) and the repository mirroring tool (RMT). The request response contains the list of repositories required to upgrade the system. This requires the system to be registered before the upgrade.

The repository server providing the updates must have the necessary channels available and those channels must be up to date. This requirement is automatically met when a system is registered to the SUSE Customer Center (SCC) or for "Pay as you go" instances in the public cloud that are automatically registered to the SUSE-operated update infrastructure of the cloud service provider. However, administrative work may be required when the system to be upgraded is connected to an RMT server.

Upgrading to a new major version requires the system to be offline. This downtime is necessary to avoid system inconsistencies that could put the system into a state that does not allow recovery. Therefore, a live migration image is used for the upgrade.

The distribution migration system provides the live image and a start-up utility, run_migration, which reboots the running system into the upgrade live image. Once booted into the upgrade live image, the following chain of services will be executed:

  1. Detect the system to be upgraded

  2. Mount the necessary file systems

  3. Set up the network to match the network configuration of the system to be upgraded

  4. Prepare SSH access to the upgrade live image

  5. Prepare the package manager for the upgrade task

  6. Upgrade the system using zypper

  7. Update the boot loader configuration

  8. Unmount all mounted file systems

  9. Reboot

If an error occurs prior to the start of the upgrade, the system will be reverted to its original state.

3.2 Upgrade Pre-Checks

The suse-migration-pre-checks package contains the script suse-migration-pre-checks that checks for possible incompatibilities for performing a migration. These incompatibilities include:

This script is run during the installation of the SLES16-Migration package on the system to be upgraded. The pre-checks can also be run anytime using

> sudo suse-migration-pre-checks

The script must be run as root.

Running the script with the --fix option will automatically remediate the following issues:

  • Set multiversion.kernels to the correct value and remove all old (not currently running) kernels.

4 Preparing the upgrade

Before starting the upgrade procedure, make sure your system is properly prepared. Among other things, preparation involves backing up data and checking the release notes.

Perform the following steps before starting the upgrade:

  1. Make sure the latest system updates are installed by running zypper patch.

  2. Read the release notes. Find the list of all changes, new features and known issues in the release notes.

    Consult the release notes to check whether the following applies:

    • Your hardware needs special considerations

    • Any currently used software packages have changed significantly

    • Your installation requires special precautions

  3. Back up your data by copying the existing configuration files to a separate medium (such as a tape device or removable hard disk). This primarily applies to files stored in /etc and some directories and files in /var and /opt.

  4. Check the available disk space. If you suspect you are running short of disk space, free up disk space or resize partitions.

  5. If your machine serves as a VM Host Server for KVM, properly shut down all running VM Guests prior to the upgrade.

  6. Configure SSH key-based login. During the upgrade, it is not possible to login with a password. It is recommended to that at least one of the users on the system has a private key in ~/.ssh/authorized_keys. To add the key, run:

    > ssh-copy-id INSTANCE_USER@INSTANCE_IP
  7. Root login by SSH will be disabled by default in SLE 16. You might want to enable it back before starting the migration. To do so, create /etc/ssh/sshd_config.d/50-permit-root-login.conf with the following content:

    PermitRootLogin yes

    Once the migration is complete, you can install openssh-server-config-rootlogin package and remove the previously added file.

5 Customizing the upgrade process

The upgrade live image is preconfigured to run without any further setup. This section describes the custom configuration options.

To configure the distribution migration system, create /etc/sle-migration-service.yml on the system to be upgraded:

> sudo ssh USER@HOST 'touch /etc/sle-migration-service.yml'

5.1 Specify the upgrade target

The default upgrade target is SLES 16.0. This default target can be changed through the migration_product setting. The target must be specified with the triplet name/version/arch found in /etc/products.d/baseproduct of the target product, for example:

migration_product: SLES/16.1/x86_64

To change the migration target to 16.1, run:

ssh USER@HOST 'echo "migration_product: SLES/16.1/x86_64" >> /etc/sle-migration-service.yml'

5.2 Optional configuration of the upgrade process

The following configuration options are completely optional. Change only what is necessary and only if you know what you are doing.

Preserve system data

Preserve custom data files, such as udev rules, from the system being migrated and ensure they are applied in the upgraded system.

The preserve section has three subsections that govern file preservation and system actions:

  • static: Files in this subsection are copied into the DMS directly, with no further processing.

  • rules: If this subsection contains files, they are preserved, and the DMS reloads udev to make these rules effective.

  • sysctl: Preserving these files triggers sysctl --system to apply the configuration changes.

    preserve:
        rules:
          - /etc/udev/rules.d/a.rules
          - /etc/udev/rules.d/b.rules
        static:
          - /etc/sysconfig/proxy
          - /path/to/be/preserved/*.suffix
    Note
    Note

    udev rules that require custom drivers will not have the desired effect as the upgrade life image does not include these drivers and therefore execution of those rules will fail. Rules with such properties should not be listed.

    Note
    Note

    The DMS provides a set of default preservable files that vary based on the target version and architecture. User-defined values will supplement this default list.

Enable debug mode

If enabled, it prevents the upgrade system from rewinding the setup steps and rebooting due to a failed upgrade, allowing the issue to be debugged.

debug: true|false
Configure the reboot method

By default, the migration system uses kexec to boot back into the host system once migration is complete. If this is in any way problematic, a regular reboot can be requested by setting soft_reboot: false.

soft_reboot: true|false
Enable the verbosity of the zypper migration

If enabled, it will run the zypper migration plugin with increased verbosity.

verbose_migration: true|false
Enable the fix option for pre_checks

If enabled (default), the run_pre_checks systemd process will use the --fix option to automatically remediate applicable issues before the migration is started.

pre_checks_fix: true|false
Configure the initramfs creation method

The live system may not contain all the tools required to create an initramfs that meets the needs of the system being upgraded. Building a host-independent initramfs will create an initramfs that includes the tools and modules available on the system being upgraded. If needed, a host-independent initramfs can be created by setting build_host_independent_initrd: True.

build_host_independent_initrd: true|false
Configure the dependency solver test case generation

It is possible that during the migration packages get installed that were not on the system previously and are pulled in because of dependencies. This setting will set up the migration so that a solver test case is generated. The information from the test case can then be used to understand why a given package was installed.

debug_solver: true|false

6 Performing the upgrade

This section describes the actual upgrade procedure with the distribution migration system.

6.1 Requirements

  • The system must be registered with the SUSE Customer Center or an RMT server. "Pay as you go" instances in the public cloud are automatically registered to the SUSE-operated update infrastructure.

  • The upgrade path must be supported. Refer to Section 2, “Supported upgrade paths” for details.

  • The server that provides the migration target must have the appropriate repositories synced, and they must be up to date. This requirement is automatically met by the SUSE Customer Center, and the SUSE-operated update infrastructure in the public cloud. If you are using an RMT server, make sure to mirror all relevant channels.

  • The operating system needs to reside on a single partition. Support for multiple partitions, such as LVM, is limited to configurations where the separated partitions do not contain OS-critical data or processes. For example, a separate /home partition will function whereas a separate /var will not.

6.2 Upgrading SUSE Linux Enterprise Server 15 to 16.1

The distribution migration process can be invoked using two different methods. One method is the run_migration included with the SLES16-Migration package. The second method to invoking the migration process is via reboot after installing the suse-migration-sle16-activation package.

Depending on your architecture, perform the following steps for your architecture to trigger the upgrade:

Use reboot on AMD64/Intel 64, AArch64, ppc64le

After installing the suse-migration-sle16-activation package, start the migration process by rebooting the system:

> sudo  zypper in suse-migration-sle16-activation
> sudo  reboot

The suse-migration-sle16-activation package installs SLES16-Migration as a dependency and modifies the bootloader configuration to boot into the upgrade image.

Use run_migration on s390x:

Modifying the boot loader configuration is not supported on s390x, so you start the migration directly with run_migration.

> sudo  zypper in SLES16-Migration
> sudo  run_migration

The run_migration utility uses Kexec and does not work in Xen-based environments. If Kexec causes a kernel panic, refer to the TID at https://www.suse.com/support/kb/doc/?id=000019733 and set the soft_reboot customization option (see Section 5, “Customizing the upgrade process”).

7 Finishing the upgrade

After the upgrade, you need to perform some additional tasks. The following section guides you through these steps.

  1. Rebuild your rpm database. During or after the upgrade, you may see a warning similar to this one:

    warning: Found NDB Packages.db database while attempting bdb backend: using ndb backend.

    This warning is purely informational and can be ignored. To convert the rpm database, run:

    > sudo rpm --rebuilddb
  2. Use zypper packages to check for orphaned and unneeded packages.

    1. Orphaned packages are no longer available in any of the configured package repositories. They can no longer get updated and become unsupported.

      For a list of orphaned packages, run:

      > zypper packages --orphaned
    2. Unneeded packages are dependencies of packages that have been installed either explicitly by the user or implicitly as part of a pattern or product, and that have been removed in the meantime. They are usually no longer needed and should be removed, too.

      For a list of unneeded packages, run:

      > zypper packages --unneeded
      Tip
      Tip

      To avoid unneeded packages, use zypper rm with the --clean-deps option.

    3. You can combine both lists into one:

      > zypper packages --orphaned --unneeded
    4. Use these lists to determine which packages are still needed and which can be safely removed.

      Warning
      Warning: Do not remove packages you need

      If packages are renamed or removed from a pattern or product, zypper may no longer consider them explicitly installed and mark them as unneeded, even though they are still crucial for your installation.

      Carefully review the list of packages you are removing.

      To remove all orphaned and unneeded packages with a single command, run:

      > sudo zypper rm $(zypper --no-refresh packages --orphaned --unneeded | gawk '{print $5}' | tail -n +5)

      Exclude a single package or pattern from being uninstalled:

      > sudo zypper rm $(zypper --no-refresh packages --orphaned --unneeded | gawk '{print $5}' | tail -n +5 | grep -v PACKAGE_TO_EXCLUDE)

      Exclude multiple packages defined in a text file, separated by a newline:

      > sudo zypper rm $(zypper --no-refresh packages --orphaned --unneeded | gawk '{print $5}' | tail -n +5 | grep -v -f /PACKAGES/TO/KEEP.txt)
  3. Check for any *.rpmnew and *.rpmsave files. When an upgrade includes changes to a default configuration file that has been altered after package installation, instead of overwriting the file, one of these file types is created. While *.rpmnew contains the new default configuration and leaves your altered file untouched, *.rpmsave is a copy of your altered configuration that has been replaced by the new default file.

    If you find any of these files, examine their content and merge desirable changes. You do not need to search the whole file system, only the /etc directory. Use the following command:

    > find /etc/ -name "*.rpmnew" -o -name "*.rpmsave"

8 For more information

For more information about the Distribution Migration System, refer to https://documentation.suse.com/suse-distribution-migration-system/15/html/distribution-migration-system/.