Update Suse from SLES 12 SP2 to SLES 15 SP2 with 100MB /boot

From Notes_Wiki

Home > Suse > Update Suse from SLES 12 SP2 to SLES 15 SP2 with 100MB /boot

The steps can be used to update from SLES 12 SP<n> to SLES 15 SP<n> even if /boot is larger than 100MB. In that case ignore various steps related to /boot space optimization.


It is possible to have a production system with SLES 12 SP2 with 100MB /boot. This space may not be enough to keep multiple kernels side-by-side during SP or OS upgrade. In such cases to upgrade to SLES 15 SP2 use following steps. Note that we cannot update directly from 12SP2 to 15SP2. We should ideally first upgrade to 12SP5, then go to SLES 15 and then upgrade to SLES 15 SP2.


Online migration from SLES 12 SP2 to SLES 12 SP5

First update 12 SP2 to 12 SP5 using:

  1. Before any update or migration it is necessary to register the system with SCC. For that register the system using yast or SUSEConnect
    SUSEConnect -r <reg-code> -e <email-id>
  2. After registration validate using:
    SUSEConnect --status-text
  3. If system is already registered then before reactivating we need to do: Do this only if you want to remove existing registration
    SUSEConnect --cleanup
  4. Once system is registered run the migration tool using
    zypper migration
    This might automatically patch the system, if not done already. Then this should give list of service packs to migrate to. Before choosing a service pack open another terminal and do:
    1. Take a backup of boot such as:
      mkdir /opt/2021-04-08-working-12-sp2-boot
      cd /opt/2021-04-08-working-12-sp2-boot
      rsync -a /boot/ ./
    2. Remove all current running kernel related files from /boot to make space using:
      cd /boot
      rm -i * .vm*
      Note that we are not touching /boot/grub2 or its contents in any way
    3. After this choose the service pack upgrade and go ahead with upgrade. The upgrade should finish without errors. After upgrade the system should reboot properly without any issues.


Offline migration from SLES 12 SP5 to SLES 15 (Note SLES 15 without SP1 or SP2)

Once system is working properly at SLES 12 SP5, we can update it to SLES 15 (without SP1 or SP2) using:

  1. Boot the system with SLES 15 installer DVD and choose upgrade option.
    If the system can get DHCP IP and Internet access via that DHCP IP, then installer will update itself before starting the installation.
  2. Before clicking final "Update" button for starting update (Before "Start update" confirmation), use "Ctrl+Alt+F2" to go to terminal
  3. The /boot of SLES-12-SP5 should be mounted at /mnt/boot and /opt should be mounted as /mnt/opt. Again same as before we will take copy of /boot and then delete all files in /boot without touching /boot/grub2 folder or its contents
    1. Take backup of /boot using:
      mkdir /mnt/opt/2021-04-08-working-12-sp5-boot
      cd /mnt/opt/2021-04-08-working-12-sp5-boot
      cp -r -p /mnt/boot/ ./
    2. Remove all current running kernel related files from /mnt/boot to make space:
      cd /mnt/boot/
      rm -i * .vm*
      cd / #So that /mnt/boot does not appears to be in use by bash
      Note that we are not touching /mnt/boot/grub2 or its contents in any way
  4. Then use "Ctrl+Alt+F7" to return to installer and proceed with system upgrade to SLES 15.
  5. After update system should automatically reboot and boot successfully into SLES 15.


Online migration from SLES 15 to SLES 15 SP2

After successfully getting upgrade / migration till SLES 15 we can proceed with upgrade to SLES 15 SP2 using:

  1. Run migration tool
    zypper migration
    On conflicts related to PackageKit-* packages choose option 1 for deinstallation of these packages.
    Before selecting option same as earlier open another terminal and take backup of /boot. Then delete all files in /boot without touching /boot/grub2 or its contents:
    1. Take backup of /boot using:
      mkdir /opt/2021-04-08-working-15-boot
      cd /opt/2021-04-08-working-15-boot
      rsync -a /boot/ ./
    2. Remove all current running kernel related files from /mnt/boot to make space:
      cd /boot/
      rm -i * .vm*
      Note that we are not touching /mnt/boot/grub2 or its contents in any way
    3. On warning of file conflict between kernel packages such as:
      File /etc/uefi/certs/7F91338D.crt
      from install of
      kernel-default-5.3.18-24.52.1.x86_64 (SLE-Module-Basesystem15-SP2-Updates)
      conflicts with file from package
      kernel-default-4.12.14-122.63.1.x86_64 (@System)
      File conflicts happen when two packages attempt to install files with the same name but different contents. If you continue, conflicting files will be replaced losing the previous content.
      Continue? [yes/no] (no):
      choose yes to continue
  2. The kernel installation may fail with error similar to:
    Installation of kernel-default-5.3.18-24.52.1.x86_64 failed:
    Error: Subprocess failed. Error: RPM failed: installing package kernel-default-5.3.18-24.52.1.x86_64 needs 31MB on the /boot filesystem
    Abort, retry, ignore? [a/r/i] (a):
    Choose a to abort
  3. Then do following to umount /boot and use space from other (/) filesystem for /boot for kernel installation
    1. umount /boot
    2. Edit /etc/fstab and comment entry for /boot
    3. Retry kernel installation using:
      zypper in kernel-default
    4. Take backup of kernel using:
      mkdir /opt/2021-04-08-15-sp2-partial-boot
      cd /opt/2021-04-08-15-sp2-partial-boot
      rsync -a /boot/ ./
  4. After this restore /boot partition and its contents using
    1. Edit /etc/fstab and uncomment entry for /boot
    2. mount -a
    3. cd /opt/2021-04-08-15-sp2-partial-boot/
    4. rsync -a ./ /boot/
  5. Resume the remaining OS update which stopped in between during kernel update using
    zypper update
  6. Fix PV header in VG, install grub and create fresh grub configuration file using:
    1. vgs #See the name of volume group
    2. vgck --updatemetadata rootvg
      Here rootvg is name of volume group from previous vgs command output
    3. cd /boot/grub2
    4. grub2-mkconfig -o grub.cfg
    5. grub2-install /dev/vda #Or /dev/sda in case of physical machine
  7. Disable app-armor for nscd and disable plymouth using:
    1. aa-status
    2. aa-disable /usr/sbin/nscd
    3. aa-status
    4. systemctl status nscd
    5. yast2
      1. Go to System -> Boot loader
      2. Change to "Kernel Parameters" tab
      3. Under "Optional Kernel Command Line Parameter" after showopts append plymouth.enable=0
      4. save and quit (Alt+O for Ok, Alt+Q for quit)
  8. Reboot system and test



Home > Suse > Update Suse from SLES 12 SP2 to SLES 15 SP2 with 100MB /boot