In-Place Upgrade from RHEL 9 to RHEL 10 Using Leapp #
This guide walks through the process of upgrading from RHEL 9 to RHEL 10 in place, without requiring a complete system reinstallation.
Current System Status #
Here’s what my lab’s test VM looks like:
[user@test ~]$ hostnamectl
Static hostname: test.home.arpa
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: dec9d730df4f4e629ba20d02aed02f03
Boot ID: 67e690ef7fbe45edb112a82dcdf72a97
Virtualization: kvm
Operating System: Red Hat Enterprise Linux 9.6 (Plow)
CPE OS Name: cpe:/o:redhat:enterprise_linux:9::baseos
Kernel: Linux 5.14.0-570.28.1.el9_6.x86_64
Architecture: x86-64
Hardware Vendor: Red Hat
Hardware Model: KVM
Firmware Version: 1.16.3-4.el9
We can see we’re currently running RHEL 9.6 on a KVM virtual machine.
Step 1: Update the System #
Before beginning the upgrade, ensure your RHEL 9 system is fully updated:
# Update all packages to the latest versions
dnf update -y
# Check if the machine needs a reboot
needs-restarting
Step 2: Install the Leapp Utility #
Install the Leapp utility:
dnf install leapp-upgrade -y
Step 3: Pre-Upgrade Assessment #
Before performing the actual upgrade, run a pre-upgrade assessment to identify potential issues:
leapp preupgrade --target 10.0
Pre-Upgrade Assessment Results #
Here’s what the pre-upgrade assessment shows on my test VM:
============================================================
REPORT OVERVIEW
============================================================
HIGH and MEDIUM severity reports:
1. Leapp detected loaded kernel drivers which are no longer maintained in RHEL 10.
2. GRUB2 core will be automatically updated during the upgrade
3. Packages not signed by Red Hat found on the system
4. Berkeley DB (libdb) has been detected on your system
5. System-wide crypto policy is set to non-DEFAULT policy
Reports summary:
Errors: 0
Inhibitors: 0
HIGH severity reports: 3
MEDIUM severity reports: 2
LOW severity reports: 2
INFO severity reports: 2
Before continuing, review the full report below for details about discovered problems and possible remediation instructions:
A report has been generated at /var/log/leapp/leapp-report.txt
A report has been generated at /var/log/leapp/leapp-report.json
============================================================
END OF REPORT OVERVIEW
============================================================
Since there are no inhibitors, we can proceed with the upgrade.
Step 4: Perform the Upgrade #
Once you’ve addressed all pre-upgrade issues, start the actual upgrade process:
# Begin the upgrade to RHEL 10
leapp upgrade --target 10.0
Step 5: Reboot and Complete the Upgrade #
After the leapp upgrade command completes successfully, reboot the system to finish the upgrade:
# Reboot to complete the upgrade process
reboot
In my case the system had about a thousand packages to download and install, so it took a good while.
Step 6: Post-Upgrade Verification #
After the system comes back online, verify the upgrade was successful:
# Verify the RHEL version
cat /etc/redhat-release
Conclusion #
For me, this was just a test run to see how the Leapp upgrade tool works, it was surprisingly simple!