
If you want to upgrade AlmaLinux 9 to AlmaLinux 10, ELevate provides an upgrade path using the Leapp framework. It checks your system for compatibility issues, identifies upgrade blockers, prepares the required AlmaLinux 10 packages, and completes the major version upgrade during reboot.
This guide covers the complete upgrade process, including backups, pre upgrade checks, the upgrade itself and post-upgrade verification.
Important: At the time of writing, the stable ELevate upgrade path is AlmaLinux 9.8 to AlmaLinux 10.2. Always take a complete backup or server snapshot before starting a major operating system upgrade.
Prerequisites
Before starting, make sure you have:
- Root access or a sudo-enabled user
- A fully updated AlmaLinux 9.8 system
- Enough free disk space for downloaded upgrade packages
- Console or recovery access to the server
- A recent backup or snapshot
For production servers, it is a good idea to test the upgrade on a clone or staging system first.
Check Third-Party Repositories
List the enabled repositories:
sudo dnf repolist --enabled
ELevate supports several common third-party repositories, including EPEL, Docker CE, MariaDB, nginx, PostgreSQL, Imunify, KernelCare, and TuxCare.
Other third-party repositories may cause Leapp inhibitors or package conflicts. Review any custom repositories before continuing.
Back Up the Server
Do not perform a major operating system upgrade without a recovery option.
If your hosting platform supports snapshots, create one before proceeding. If you’re using a VPS from Veeble, you can create a snapshot directly from the client area.
For database servers, create proper database backups instead of relying only on filesystem copies.
Also confirm that you can access the server through its VPS or server console. SSH may temporarily become unavailable during the upgrade and reboot.
Check the Current AlmaLinux Version
Check the installed release:
cat /etc/os-release
Before continuing with the current stable upgrade path, the system should be on AlmaLinux 9.8.
Check the architecture:
uname -m
Most VPS and dedicated servers will return:
x86_64
Important Note About x86_64_v2 CPUs
Standard AlmaLinux 10 x86_64 packages require the x86-64-v3 CPU baseline, so if the Leapp pre-upgrade check shows that your processor only supports x86_64_v2, do not ignore the inhibitor or force the upgrade. AlmaLinux currently provides the x86_64_v2 upgrade path through ELevate NG instead of the standard stable ELevate process covered in this guide, and it should not be used on a production system without first checking its current testing status, known limitations, and support considerations.
Update AlmaLinux 9
The source system must be fully updated before running ELevate.
Run:
sudo yum update -y
After the updates finish, reboot the server:
sudo reboot
Reconnect after the server comes back online and confirm the version again:
cat /etc/redhat-release
You should see AlmaLinux 9.8.
It is also useful to check for package problems before continuing:
sudo dnf check
Resolve any reported dependency problems first.
Install the ELevate Repository
Install the official ELevate release package:
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
After installation, confirm that the ELevate repository is available:
sudo dnf repolist | grep -i elevate
Install Leapp and AlmaLinux Upgrade Data
Install the Leapp upgrade packages and the AlmaLinux migration data:
sudo yum install -y leapp-upgrade leapp-data-almalinux
The leapp-data-almalinux package contains the migration rules required when AlmaLinux 10 is the target operating system.
You can confirm the packages are installed with:
rpm -qa | grep -E 'leapp|elevate'
Run the Pre-Upgrade Check
Before making changes to the operating system, Leapp performs an assessment of the server.
Run:
sudo leapp preupgrade
The pre-upgrade stage does not perform the actual operating system upgrade.
Leapp analyzes installed packages, repositories, hardware, configuration files, kernel components, and other settings that may affect the migration.
The report will be written to:
/var/log/leapp/leapp-report.txt
Read it with:
sudo less /var/log/leapp/leapp-report.txt
Do not continue directly to leapp upgrade without reviewing this report.
Fix Leapp Inhibitors
Leapp separates findings by severity. The most important entries are inhibitors.
An inhibitor means Leapp has found a condition that prevents the upgrade from continuing safely.
Search the report for inhibitors:
grep -i inhibitor /var/log/leapp/leapp-report.txt
You can also inspect the complete report:
sudo less /var/log/leapp/leapp-report.txt
Read the recommended remediation for every inhibitor and correct the problem it identifies.
Check the Leapp Answer File
Some systems require explicit answers before the upgrade can continue.
Check whether Leapp created:
/var/log/leapp/answerfile
View it with:
sudo cat /var/log/leapp/answerfile
If the report tells you to provide an answer, use the exact section and field shown by Leapp.
The general format is:
sudo leapp answer --section <section>.<field>=True
Do not copy an answer intended for another server or another AlmaLinux version. Use the values requested by your own Leapp report.
Run the Check Again
After resolving the reported issues, run:
sudo leapp preupgrade
Review the report again.
Repeat this process until no upgrade-blocking inhibitors remain.
Start the AlmaLinux 10 Upgrade
Once the pre-upgrade check is clean enough to continue, start the upgrade:
sudo leapp upgrade
Leapp will download the required AlmaLinux 10 packages and prepare a special upgrade environment.
This process can take some time depending on the number of installed packages and the network speed.
Once it completes successfully, reboot:
sudo reboot
Reboot and Complete the Upgrade
During the next boot, ELevate creates a GRUB entry called:
ELevate-Upgrade-Initramfs
The system normally boots into this entry automatically.
The actual package replacement and operating system migration take place during this boot process. The server may restart or remain unavailable for longer than a normal reboot.
Do not power off the machine while this process is running.
For a remote VPS or dedicated server, use the provider’s VNC console if you want to monitor the upgrade.
After the process finishes, the system should boot into AlmaLinux 10.
Verify AlmaLinux 10
Log in to the server and check the operating system:
cat /etc/os-release
A successful current upgrade should show AlmaLinux 10.2.
Check the running kernel:
uname -r
Check for failed services:
sudo systemctl --failed
Finally, verify package dependencies:
sudo dnf check
For servers running services such as nginx, Apache, MariaDB, PostgreSQL, Docker, or a hosting control panel, verify each important service individually.
For example:
sudo systemctl status nginx
Replace nginx with the service you want to check.
Conclusion
ELevate makes it possible to upgrade from AlmaLinux 9 to AlmaLinux 10 without a full reinstall, but the success of the upgrade mostly depends on preparation. Make sure the system is fully updated, backups are available, Leapp inhibitors are resolved, and you have console access before starting. After the reboot, check the OS version, services, repositories, packages, and Leapp logs before putting the server back into regular use.