How to Update AlmaLinux 9 to AlmaLinux 10: Complete Guide Using ELevate
Learn how to prepare an AlmaLinux 9 server, run the ELevate pre-upgrade assessment, and perform a supported in-place migration to AlmaLinux 10 using Leapp.
Moving an enterprise Linux server to a new major release is a significant maintenance task. Unlike a routine package update, a major-version upgrade can change system libraries, kernel components, repositories, drivers, and application dependencies. Careful preparation is essential to protect workloads and avoid an extended outage.
AlmaLinux ELevate provides a documented framework for supported in-place migrations across major versions of Enterprise Linux distributions. It uses the Leapp utility to inspect the source server, identify compatibility problems, and orchestrate the migration when the system meets the required conditions.
In this VMoreCloud tutorial, you will prepare an AlmaLinux 9 server, install the appropriate ELevate components, evaluate the system with Leapp, perform the migration, and validate the AlmaLinux 10 installation. Always compare the steps with the live ELevate documentation before running them because supported architectures and package instructions can change.
1. What Is ELevate?
ELevate is an AlmaLinux community project designed to support in-place upgrades between major versions of RHEL-compatible distributions. It combines the Leapp utility with migration metadata and project-specific changes to evaluate the source system and carry out the transition.
The AlmaLinux documentation lists AlmaLinux 9 to AlmaLinux 10 as an available migration path. It also notes that some architecture variants have special requirements: the current documentation identifies x86_64_v2 upgrades to AlmaLinux 10 as requiring ELevate NG. Raspberry Pi images are not supported by ELevate. Check the support matrix for your exact architecture and source/target release before proceeding.
Official reference: About the ELevate project.
2. Prerequisites and Preparation
Prepare the server before making package or repository changes. At minimum, confirm the following:
Pre-upgrade checklist
- Confirm the machine is AlmaLinux 9 and identify its architecture.
- Verify the AlmaLinux 9 to AlmaLinux 10 path is supported by the current ELevate guide.
- Have root or sudo access and working console/out-of-band access.
- Take a full backup or recoverable snapshot and test the restore procedure.
- Check available disk space, especially on
/,/boot, and filesystems used by package and upgrade data. - Inventory databases, applications, services, scheduled tasks, firewall rules, storage mounts, and network configuration.
- Check third-party repositories, vendor agents, external kernel modules, and application compatibility.
- Schedule a maintenance window and notify users.
The ELevate project explicitly recommends backups or snapshots and a trial run in a sandbox before upgrading production systems. Read the current ELevate Quickstart Guide for current requirements and warnings.
3. Back Up and Inspect the Server
Log in to the AlmaLinux 9 server and confirm the installed release, kernel, disk layout, and enabled repositories:
cat /etc/almalinux-release
cat /etc/os-release
uname -r
df -h
lsblk
sudo dnf repolist --enabled
Save a package inventory and loaded kernel-module list for later comparison:
rpm -qa | sort | sudo tee /root/packages-before-upgrade.txt
lsmod | sudo tee /root/modules-before-upgrade.txt
Make sure the backup includes application data and configuration, not only the operating system disk. For databases and other stateful services, use application-consistent backup procedures.
4. Update AlmaLinux 9
The ELevate Quickstart Guide requires the source system to be fully updated before the migration. Refresh package metadata, install available updates, and reboot:
sudo dnf clean all
sudo dnf upgrade -y
sudo reboot
After reconnecting, check the release and package manager state:
cat /etc/almalinux-release
sudo dnf check
sudo dnf repolist --enabled
Resolve repository failures, unfinished transactions, or dependency problems before continuing. Do not assume third-party repositories are automatically compatible with AlmaLinux 10.
5. Install ELevate and Leapp
For the standard documented AlmaLinux 9 to AlmaLinux 10 workflow, the ELevate Quickstart Guide instructs administrators to install the ELevate repository release package and the Leapp upgrade data for AlmaLinux.
sudo dnf install -y https://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
sudo dnf install -y leapp-upgrade leapp-data-almalinux
These are the commands shown in the project’s quickstart-style instructions. If you are using an architecture or scenario that requires ELevate NG, follow the separate NG guide instead; do not mix stable and NG repository packages. The project specifically documents ELevate NG for certain x86_64_v2 AlmaLinux 10 upgrade paths.
Official guide: ELevate Quickstart Guide.
6. Run the Pre-Upgrade Assessment
Start the assessment:
sudo leapp preupgrade
Leapp creates a report containing possible problems and recommended solutions. Review the report and answerfile:
sudo less /var/log/leapp/leapp-report.txt
sudo less /var/log/leapp/answerfile
The assessment can identify inhibitors, unsupported packages or drivers, repository issues, and questions that require an administrator response. The official quickstart warns that the pre-upgrade check may report issues on a default installation; the report must be read and its findings addressed.
Run the assessment again after making changes:
sudo leapp preupgrade
Continue only when the report no longer contains unresolved inhibitors and all required administrator responses have been provided.
7. Start the AlmaLinux 10 Upgrade
Once the pre-upgrade assessment is acceptable, start the migration:
sudo leapp upgrade
Leapp prepares the target environment and downloads the packages required for the migration. Review the command output and logs for errors. Do not interrupt the process or shut down the server while the upgrade is running.
When the command completes and instructs you to reboot, restart the server:
sudo reboot
The system should boot into the upgrade environment and complete the migration. The first boot may take longer than usual. Monitor the process using the server console or out-of-band management interface, especially when upgrading a remote server.
8. Post-Upgrade Verification
After the server boots, verify that the operating system reports AlmaLinux 10:
cat /etc/redhat-release
cat /etc/os-release
uname -r
Check the enabled repositories and package manager health:
sudo dnf repolist --enabled
sudo dnf check
Review failed systemd services:
systemctl --failed
Validate network interfaces and routing:
ip address
ip route
Check the Leapp logs if you need to investigate the migration:
sudo less /var/log/leapp/leapp-report.txt
sudo less /var/log/leapp/leapp-upgrade.log
Application and infrastructure validation
- Confirm SSH and administrative access.
- Verify DNS resolution, routing, firewall rules, and network connectivity.
- Check mounted filesystems, storage devices, and permissions.
- Start and test databases, web servers, application services, and scheduled jobs.
- Validate monitoring, backup agents, security agents, and endpoint integrations.
- Review application logs for compatibility errors.
- Run a test backup and confirm that the backup repository is reachable.
Do not return the server to production simply because the operating-system release file reports AlmaLinux 10. Validate the workloads that depend on the server.
9. Troubleshooting Common Upgrade Issues
Leapp reports inhibitors
Read the report carefully, identify the specific blocking condition, apply the documented correction, and rerun the pre-upgrade assessment.
Repository or dependency errors
Check repository availability, package conflicts, third-party repository configuration, and unfinished DNF transactions before retrying.
Unanswered Leapp questions
Review /var/log/leapp/answerfile and use the exact answer section and value required by the report and current documentation.
Server does not return on the network
Use console access to inspect interface configuration, NetworkManager, routes, DNS, and firewall rules before attempting remote recovery.
Old EL 9 packages remain
Review the Leapp report and package inventory. Determine which packages are valid on AlmaLinux 10 and handle leftovers carefully.
For additional known issues, use the official ELevate documentation and the AlmaLinux Leapp repository.
Conclusion
ELevate provides a documented path for upgrading AlmaLinux 9 to AlmaLinux 10 in place, but success depends on the exact source system, architecture, installed software, and repository configuration. Prepare a verified backup, fully update AlmaLinux 9, install the correct ELevate packages, and treat the Leapp pre-upgrade report as a mandatory gate.
After the upgrade, verify the operating system, repositories, services, storage, networking, applications, and backups before returning the server to production.
Official Documentation and References
- AlmaLinux Wiki — ELevate Quickstart Guide
- AlmaLinux Wiki — About ELevate and Supported Migration Paths
- AlmaLinux Wiki — ELevate NG Testing Guide
- AlmaLinux — Leapp Repository on GitHub
Commands and support details are based on the official AlmaLinux documentation consulted for this article. Recheck the live guides immediately before performing an upgrade.
