An Azure service that is used to provision Windows and Linux virtual machines.
After an in-place upgrade from RHEL 7.9 to 8.10 on an Azure VM, loss of SSH connectivity is typically due to OS-level issues (network, fstab, cgroups, packages) that occurred during the Leapp upgrade. Use the following approach:
- Access the VM for recovery
Since SSH is unavailable, use Azure-side access methods:- Use Azure Serial Console for Linux to log in with a local account and troubleshoot from inside the VM.
- If the VM is completely unbootable or stuck, restore from the snapshot/backup taken before the upgrade (recommended prerequisite for Leapp upgrades).
- Check for Leapp upgrade issues that break boot or mounts
If the VM boots but networking/SSH is broken, first verify whether the Leapp upgrade hit a known issue:- Review the Leapp logs and report:
sudo less /var/log/leapp/leapp-report.txt sudo less /var/log/leapp/leapp-upgrade.log - If the upgrade failed to mount a device during the process (common cause of boot/network issues), follow the documented fix:
- Restore the VM from the snapshot or backup taken before the upgrade.
- On the restored VM, check whether the UUID from the error exists and is referenced in
/etc/fstab:sudo blkid sudo cat /etc/fstab - Comment out or remove the problematic UUID entry in
/etc/fstab. - Run the Leapp upgrade again.
- If the logs show
Failed to mount n/a on /sys/fs/cgrouporcgroup2: Unknown parameter 'mode', remove thesystemd.unified_cgroup_hierarchy=1kernel parameter before re-running the upgrade:- Restore the VM from snapshot/backup.
- Check for the parameter:
cat /proc/cmdline sudo cat /etc/default/grub - Remove
systemd.unified_cgroup_hierarchy=1from/etc/default/grub, regenerate grub config as appropriate for the distro, and reboot. - Run the Leapp upgrade again.
- Review the Leapp logs and report:
- Fix conflicts that can break services after upgrade
Some packages and custom libraries can cause Leapp to misconfigure the system, which may indirectly affect networking or SSH:- If Ansible packages were installed on RHEL 7.9, the in-place upgrade is unsupported. Before re-running the upgrade, remove Ansible:
sudo yum remove ansible ansible-test - If there is a custom OpenSSL library path (for example
/etc/ld.so.conf.d/openssl-1.1.1d.conf), it can cause library mismatches:
If present, move it away and refresh the linker cache:sudo cat /etc/ld.so.conf.d/openssl-1.1.1d.conf
Then retry the upgrade.sudo mv /etc/ld.so.conf.d/openssl-1.1.1d.conf /tmp sudo ldconfig
- If Ansible packages were installed on RHEL 7.9, the in-place upgrade is unsupported. Before re-running the upgrade, remove Ansible:
- Verify network and SSH configuration from Serial Console
Once the VM boots cleanly after a corrected upgrade:- Confirm that network interfaces are up and have IP addresses (commands depend on RHEL 8 networking setup).
- Ensure
sshdis installed and enabled, and that firewall rules allow SSH (port 22). - Confirm Azure-side NSG rules and public IP configuration are correct (inbound rule for TCP 22, no higher-priority deny).
- If upgrade still fails
If the Leapp upgrade from 7.9 to 8.10 repeatedly fails and leaves the VM in a bad state, use an intermediate target version:- Restore from snapshot/backup of RHEL 7.9.
- Run:
Resolve all inhibitors insudo leapp preupgrade --target 8.8 --no-rhsm/var/log/leapp/leapp-report.txt. - Then run the actual upgrade to 8.8. After a successful intermediate upgrade, attempt an upgrade from 8.8 to 8.10 if needed.
- Future prevention
Before repeating the upgrade on this or other VMs:- Follow the documented prepare steps for RHEL 7.9 → 8.x on Azure: enable the correct RHUI repos, install
leapp-rhui-azureorleapp-rhui-azure-sapas applicable, installleapp-upgrade, update all packages, reboot, disable antivirus and configuration management tools, and then runleapp preupgradeand fix all reported issues beforeleapp upgrade.
- Follow the documented prepare steps for RHEL 7.9 → 8.x on Azure: enable the correct RHUI repos, install
If the VM cannot be recovered even via Serial Console and no usable backup exists, the remaining option is to build a new RHEL 8.x VM and migrate workloads/data to it.
References: