CentOS has long been popular for its stability, reliability, and long-term support. However, with the unexpected shift in CentOS’s strategy to focus on CentOS Stream, many users have found themselves seeking an alternative solution.
So, have you ever asked yourself, “How do I migrate from CentOS 7 to AlmaLinux?” You don’t need to worry about this anymore because this step-by-step guide will walk you through migrating your CentOS 7 installation to AlmaLinux 8, ensuring a smooth and hassle-free transition.
So far, so good, but how do we do it? For those unaware, the AlmaLinux ELevate project allows users to upgrade or migrate between any RHEL-based distro. So, let’s dive in and do it.
CentOS 7 to AlmaLinux Upgrade Path
However, before we get to the action, there are a few key points we need to clear up, with the most important one being that itโs not possible to migrate from CentOS 7 to Alma 9 directly.
In other words, if you aim to transition to Alma 9, the path involves initially migrating your current CentOS 7 system to Alma 8. Once thatโs done, you can then move on to upgrade from Alma 8 to 9. This two-step process ensures a smooth transition and compatibility across versions.
Here is our CentOS 7 system before starting the migration process to AlmaLinux 8.
Step 1: Take System Backup
Before upgrading, please back up all your essential data and take a snapshot of the complete CentOS 7 system. This way, you will be on the right side if anything goes wrong.
Alternatively, you can always use a command like the one below to archive all the more important directories and their contents in a single tar.gz archive file.
sudo tar czf /centos7.tar.gz \
--exclude=/centos7.tar.gz \
--exclude=/dev \
--exclude=/mnt \
--exclude=/proc \
--exclude=/sys \
--exclude=/run \
--exclude=/tmp \
--exclude=/media \
--exclude=/lost+found \
/
Code language: Bash (bash)
Of course, you can add more “โexclude=” parameters if necessary. Finally, the command creates a backup of all the files and directories by placing them in the “centos7.tar.gz” archive in the root (/) partition.
Then, this file must be transferred to another computer or drive, for example, using the SCP command.
Step 2: Upgrade the Current CentOS 7 System
The next step in the upgrade process is to ensure we have a wholly upgraded system. Update existing software with the following command:
sudo yum update
Code language: Bash (bash)
Once all the packages are updated, reboot your system to apply the changes.
Now, let’s verify the version of our current operating system.
cat /etc/centos-release
Code language: Bash (bash)
CentOS Linux release 7.9.2009 (Core)
Code language: Bash (bash)
The system runs CentOS 7.9, the latest version in the 7.x branch.
Step 3: Migrate CentOS 7 to AlmaLinux 8
3.1 Install ELevate
The first step in the upgrade process is installing the “elevate-release” package on your current CentOS 7 system.
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm
Code language: Bash (bash)
3.2 Install Leapp and Migration Data
The migration process is based on using Red Hat’s Leapp utility. It combines Red Hatโs Leapp framework with a community-created library and service for its required migration metadata set.
So, the next step is to install the required packages for the upgrade from CentOS 7 to AlmaLinux 8.
sudo yum install -y leapp-upgrade leapp-data-almalinux
Code language: Bash (bash)
3.3 Start a Pre-upgrade Check
The next step is to start a pre-upgrade check. The below command verifies server compatibility without any actual changes:
sudo leapp preupgrade
Code language: Bash (bash)
The check will probably fail, but don’t panic! That’s normal because some tweaks are required in advance.
According to the official documentation, those three commands are shown below to solve the problem. Just run them one after the other:
sudo rmmod pata_acpi
echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config
sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
Code language: Bash (bash)
(Optional) If you rerun the check, the pre-upgrade check will succeed.
sudo leapp preupgrade
Code language: Bash (bash)
3.4 Start the Upgrade Process from CentOS 7 to AlmaLinux 8
Now you can run the following command to migrate CentOS 7 to AlmaLinux 8.
sudo leapp upgrade
Code language: Bash (bash)
Be patient since the upgrade process could take some time. Once the migration is completed, you’ll be offered to reboot the system:
sudo reboot
Code language: Bash (bash)
A new entry in GRUB called ELevate-Upgrade-Initramfs
will appear. Hit “Enter” and wait for the upgrade process to finish. The system will be automatically booted into it.
Since the package upgrades involve a lot of background activity, the process might take a while. Please be patient if you cannot access the terminal to track these changes. Depending on your hardwareโs capabilities and the number of packages being updated, it could take anywhere from a few minutes to half an hour.
In the final loop, the system will automatically reboot again, but this time, GRUB will display the entries for your AlmaLinux 8 system.
Congratulation! Youโve successfully transitioned your system from CentOS 7 to AlmaLinux 8.
Step 4: Check the OS Version
To confirm that you have successfully migrated from CentOS 7 to AlmaLinux 8, check the OS version. In addition, you can update the server hostname to match with AlmaLinux.
sudo hostnamectl set-hostname alma8
sudo reboot
Code language: Bash (bash)
cat /etc/redhat-release
Code language: Bash (bash)
Post-Installation Steps
Refresh the package base.
sudo dnf update
Code language: Bash (bash)
Next, remove all CentOS 7-related packages. To find them, run the command below:
sudo rpm -aq | grep el7
Code language: Bash (bash)
Open the โ/etc/yum.confโ file and comment out the โexcludeโ line shown below.
sudo nano /etc/yum.conf
Code language: Bash (bash)
Finally, to remove them, list them individually as arguments to the dnf remove
command. In our case, it looks like this:
For a more in-depth introduction to the DNF command, we highly recommend consulting our article on the subject, โDNF Command-Line Package Manager in Linux: A Complete Guide.โ
Conclusion
AlmaLinuxโs ELevate tool is a great one! It may be a fantastic option if you want to migrate from CentOS 7 to AlmaLinux 8.
Moreover, if you’re looking for a different upgrade path to another enterprise Linux distro, we’re here to help. Check out our detailed guide on migrating from CentOS 7 to Rocky Linux 8 or Oracle Linux 8.
In addition, if you are running CentOS 8.x, all you have to do to switch to AlmaLinux 8 is follow our CentOS 8 to AlmaLinux 8: A Step-by-Step Migration Guide.
I have made this guide as simple as possible. Thanks for using it! Please share your thoughts in the comments box below.