Skip to Content
Bash Script GuidesAlmaLinux 8 to Rocky Linux from CIQ

AlmaLinux 8 to Rocky Linux from CIQ

Overview

migrate2rlc.sh converts AlmaLinux 8 systems to Rocky Linux from CIQ (RLC) using the CIQ Depot. AlmaLinux 8 is the most straightforward EL8 migration path. It uses a standard kernel (no proprietary kernels to remove), and the package swap from almalinux-release to rocky-release is clean with minimal conflicts.

The script auto-detects AlmaLinux 8 and handles the migration without any special flags.

Prerequisites

  • AlmaLinux 8.x (any minor version) with internet access
  • Root or sudo privileges
  • CIQ Depot credentials (username and token)
  • At least 2 GB free disk space
  • A maintenance window (reboot required)
  • Backups of any critical data

Migration Command

./migrate2rlc.sh -r -t rlc-pro -u <depot-username> -p <depot-token>

Supported tiers: rlc-pro, rlc-plus, rlc-96-lts

The -r flag triggers an automatic reboot. Omit it to reboot manually.

What Happens During Migration

  1. Pre-flight checks: validates system, checks disk space, detects third-party repos
  2. Third-party repo handling: disables non-base repos temporarily
  3. Package swap: replaces almalinux-release and related packages with Rocky equivalents
  4. Depot enrollment: installs depot CLI, authenticates, enables tier product
  5. distro-sync: synchronizes all packages to RLC repository versions
  6. Post-migration update: installs CIQ kernel, verifies services, generates summary
  7. Reboot: boots into Rocky kernel with CIQ packages

No special kernel handling or GRUB repair is needed for AlmaLinux 8. The standard RHEL-compatible kernel carries over cleanly, and the CIQ kernel replaces it during distro-sync.

AlmaLinux 8 Specific Notes

Standard Package Swap

The migration replaces these AlmaLinux packages with their Rocky counterparts:

  • almalinux-release -> rocky-release
  • almalinux-repos -> Rocky repo configuration
  • almalinux-gpg-keys -> ciq-rocky-gpg-keys

This swap is handled atomically via rpm -e --nodeps followed by installation of the Rocky packages, the same approach used for all EL migrations.

AlmaLinux Vault URLs

If the system is running an older minor version (e.g., 8.6 or 8.7) and the AlmaLinux mirrors have vaulted those releases, the script handles this transparently. The distro-sync step pulls from the CIQ Depot repositories, which carry the current packages regardless of the source OS minor version.

If pre-migration dnf operations fail due to stale AlmaLinux mirror URLs, the script's repo-rewrite logic corrects the baseurl before proceeding.

No Kernel-Specific Handling

Unlike Oracle Linux (which requires UEK force-removal), AlmaLinux 8 uses the standard RHEL-compatible kernel. No special kernel removal, GRUB repair, or boot entry fixup is required. The CIQ kernel replaces the AlmaLinux kernel cleanly during distro-sync.

Third-Party Repo Detection

The script uses dynamic pattern-based detection to identify third-party repositories (EPEL, Docker CE, Elasticsearch, etc.). These are disabled during the package swap and distro-sync, then re-enabled afterward. No hardcoded repo names are used, so custom or uncommon third-party repos are handled correctly.

Post-Migration Verification

After reboot, confirm the migration:

cat /etc/os-release rpm -q rocky-release ciq-rocky-gpg-keys depot list uname -r

The kernel should show a CIQ build suffix. All depot products for your tier should appear as enabled.

Run the verification script for a comprehensive check:

./verify_migration.sh

Tier Changes

To switch tiers after initial migration:

./migrate2rlc.sh -r -t rlc-plus -u <depot-username> -p <depot-token>

The script detects the existing RLC installation and performs a tier change. All six tier permutations are supported. Note: EL8 does not have tier-specific release packages (no rlc-pro-release on EL8), so tier identity is tracked through depot product enrollment only.

Troubleshooting

dnf errors referencing AlmaLinux mirrors

If dnf operations fail with 404 errors for AlmaLinux URLs, the old minor version repos may be vaulted. The script normally handles this, but if running manually, you can temporarily point repos to https://repo.almalinux.org/vault/8/ before starting migration.

AlmaLinux packages remain after migration

Run rpm -qa | grep -i almalinux to check for residual packages. If any remain, remove them with dnf remove <package> and run dnf distro-sync to resynchronize.

Third-party repos still disabled

Check /etc/yum.repos.d/ for files with .disabled suffixes or repos with enabled=0. The script should restore them post-migration, but manual re-enabling may be needed if the migration was interrupted.

Services not starting after reboot

The post-reboot recovery service checks and restarts monitored services. If a service fails, check its logs with journalctl -u <service>. Common causes include config file path differences between AlmaLinux and Rocky (rare but possible with community-maintained packages).


DISCLAIMER

The migrate2rlc script and playbook are provided "as is" without warranty of any kind, express or implied. Use of these tools is entirely at your own risk. CIQ, Inc. assumes no responsibility or liability for any data loss, system downtime, service disruption, or other damage resulting from the use or misuse of these tools. It is the user's responsibility to ensure adequate backups and testing in a non-production environment before performing any migration on production systems.