Migrate from CentOS 8 to Rocky Linux 8

Ezra UNIX/Linux

Rocky Linux is a stable distribution that is 100% bug-for-bug compatible with Red Hat Enterprise Linux 8. This makes it a perfect alternative for CentOS users who would wish to continue using stable RPM-based Linux systems.

Step 1 – Backup CentOS 8

I started the migration process with backup. I do have nightly backups, but before upgrading, I made a snapshot to revert back when something goes wrong. In other words, keep verified backups.

Step 2 – Installing all updates on CentOS 8

Then I log in using the ssh command:

ssh user@ixcraft-php8-app1

Now, all we have to do is use the dnf command to apply all pending updates:

sudo dnf update

Finally, reboot the Linux box using the shutdown command or reboot command:

sudo reboot

Let us verify CentOS Linux 8 version using the cat command or more command/less command:

more /etc/centos-release

Step 3 – Installing git client on CentOS 8

We need git to install the migration script. Is git installed on the server? Let us find out. Execute the type command:

type -a git

Let us search for the git package, Execute:

dnf list git
dnf search git
dnf info git

Now, install git on your server with the help of the dnf utility, Execute:

sudo dnf install git
type -a git

Clone the repo to install migration tool called rocky-tool

Finally, we need to clone the rocky-tools repo with the help of the git command:

cd /tmp/
git clone https://github.com/rocky-linux/rocky-tools.git

Step 4 – Migrating from CentOS 8 to Rocky Linux

Change the directory using cd command where rocky-tools cloned:

cd /tmp/rocky-tools/migrate2rocky

Set up executable permissions using the chmod command:

chmod -v +x migrate2rocky.sh

Start the migration from CentOS 8 to Rocky Linux by typing the migrate2rocky.sh command:

./migrate2rocky.sh -r

Follow on-screen instructions and wait for some time to finish the migration job. At the end you should see:

Done, please reboot your system.

A log of this installation can be found at /var/log/migrate2rocky.log

And we are done. Let us reboot the box:

sudo systemctl reboot

Step 5 – Verification

First, verify the version to make sure we are now switched to Rocky Linux using the cat command

cat /etc/rockylinux-release
cat /etc/centos-release
hostnamectl

Let us verify that processes are running using the ss command and ps command:

ss -tulpn | grep :80
ss -tulpn | grep :3306
# use the egrep command to filter out PHP, MySQL and Nginx process #
ps aux | grep -E 'php|nginx|mysql'
ps aux | grep php-fpm

Make sure no errors were reported by the system:

dmesg
dmesg | grep -Ei 'warn|error|notice|fail'
tail -f /var/log/my_app_1/log_file
tail -f /var/log/nginx/php_log

Summing up

And that is all. It was easy to migrate from CentOS 8 Linux or Red Hat Enterprise Linux 8 to Rocky Linux 8.