Unable to generate Full Host Image after upgrading the operating system of Red Hat Satellite 6.16 to RHEL 9
Environment
- Red Hat Satellite 6.16
- Red Hat Enterprise Linux 9
Issue
-
Full Host Image generation fails on a Red Hat Satellite 6.16 that was upgraded from RHEL 8 to RHEL 9 using leapp.
-
The same problem happens with a new subnet image generation as well.
Resolution
-
The issue was reported to Red Hat Engineering team via This content is not included.JIRA SAT-29987 and This content is not included.JIRA RHEL-50015 and a fix has been released via ERRATA RHBA-2025:0515 in RHEL 9.5.
-
A connected setup of Red Hat Satellite 6.16 would not be affected as long as the operating system is upgraded to RHEL 9.5.
-
In case of a disconnected setup, make sure to avail and use the latest baseos and appstream repository content of RHEL 9.5 release.
-
Existing affected users need to execute the following commands on the concerned
Red Hat Satellite 6.16instance:# alternatives --remove mkisofs /usr/bin/xorrisofs # dnf update xorriso --disableplugin=foreman-protector -
Verify the
genisoimagecommand execution shows something liks this i.e.# genisoimage xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project. usage : genisoimage [commands] More is told by command -help -
Generate a new Full Host Image and continue with the system build process.
-
Reach out to the This content is not included.Red Hat Technical Support in case of any further concerns.
For more KB articles/solutions related to Red Hat Satellite 6.x Provisioning Issues, please refer to the Consolidated Troubleshooting Article for Red Hat Satellite 6.x Provisioning related Issues
Root Cause
-
On RHEL 8, The relevant binary comes from
genisoimagepackage and depends onlibusallibrary as well. Thelibusallibrary is no longer shipped in RHEL 9. -
When using leapp to upgrade the operating system to RHEL 9, The package gets replaced by
xorrisowhich has no dependancy onlibusallibrary as well. -
During the process, The
xorrisopackage is installed first and then thegenisoimagepackage is removed which does not remove the residual binaries due to the way their scriptlets are designed and the system ends up retaining the old/usr/bin/genisoimagebinary that still depends on the non-existentlibusallibrary.Logs from
leapp-upgradeactivity:2024-12-11 15:44:32.723 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Installing : xorriso-1.5.4-4.el9.x86_64 418/867 2024-12-11 15:44:32.773 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Running scriptlet: xorriso-1.5.4-4.el9.x86_64 418/867 .. -- 2024-12-11 15:46:27.612 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Cleanup : libldb-2.8.0-1.el8_10.x86_64 524/867 2024-12-11 15:46:27.621 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Running scriptlet: genisoimage-1.1.11-39.el8.x86_64 525/867 2024-12-11 15:46:27.626 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: failed to link /usr/bin/genisoimage -> /etc/alternatives/mkisofs-genisoimage: /usr/bin/genisoimage exists and it is not a symlink 2024-12-11 15:46:27.631 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: failed to link /usr/share/man/man1/genisoimage.1.gz -> /etc/alternatives/mkisofs-genisoimageman: /usr/share/man/man1/genisoimage.1.gz exists and it is not a symlink 2024-12-11 15:46:27.637 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: 2024-12-11 15:46:27.645 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Erasing : genisoimage-1.1.11-39.el8.x86_64 525/867 -- 2024-12-11 15:48:39.397 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Verifying : libisoburn-1.5.4-4.el9.x86_64 68/867 2024-12-11 15:48:39.402 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Verifying : python3-distro-1.5.0-7.el9.noarch 69/867 2024-12-11 15:48:39.406 DEBUG PID: 981 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Verifying : xorriso-1.5.4-4.el9.x86_64 70/867 -
Due to this, the
genisoimagecommand execution works while generating Full Host Image.
Diagnostic Steps
-
The following errors are captured in
/var/log/foreman/production.logfile when generating the Full Host Image for a system:2024-12-05T05:02:17 [W|app|88a1bd12] ERF42-8093 [Foreman::Exception]: ISO build failed 2024-12-05T05:02:17 [I|app|88a1bd12] Backtrace for 'ERF42-8093 [Foreman::Exception]: ISO build failed' error (Foreman::Exception): ERF42-8093 [Foreman::Exception]: ISO build failed 88a1bd12 | /usr/share/gems/gems/foreman_bootdisk-21.2.3/app/services/foreman_bootdisk/iso_generator.rb:160:in `generate' 88a1bd12 | /usr/share/gems/gems/foreman_bootdisk-21.2.3/app/services/foreman_bootdisk/iso_generator.rb:30:in `generate_full_host' 88a1bd12 | /usr/share/gems/gems/foreman_bootdisk-21.2.3/app/controllers/foreman_bootdisk/disks_controller.rb:58:in `full_host' 88a1bd12 | /usr/share/gems/gems/actionpack-6.1.7.8/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action' -
Around the same time, the following errors related to iso generation were observed in the
/var/log/messagesfile.Dec 5 05:02:16 mysatellite foreman[22249]: mkfs.fat 4.2 (2021-01-31) Dec 5 05:02:17 mysatellite foreman[22255]: genisoimage: error while loading shared libraries: libusal.so.0: cannot open shared object file: No such file or directory -
A manual execution of the
genisoimagecommand fails as well.# touch /tmp/test && genisoimage -o cd.iso /tmp/test genisoimage: error while loading scondition hared libraries: libusal.so.0: cannot open shared object file: No such file or directory -
A bad alternative has been created for
mkisofswhich was supposed to be using the right binaries from thexorissopackage.# /usr/sbin/alternatives --display mkisofs mkisofs - status is auto. link currently points to /usr/bin/xorrisofs /usr/bin/xorrisofs - priority 50 follower mkisofs-genisoimage: /usr/bin/xorrisofs follower mkisofs-mkhybrid: (null) follower mkisofs-genisoimageman: /usr/share/man/man1/xorrisofs.1.gz follower mkisofs-mkhybridman: (null) follower mkisofs-mkisofsman: /usr/share/man/man1/xorrisofs.1.gz Current `best' version is /usr/bin/xorrisofs.-
The null values are due to the presence of
/usr/share/man/man1/genisoimage.1.gzand/usr/bin/genisoimagefiles from the older RHEL 8 installation.# ls -ld /usr/share/man/man1/genisoimage.1.gz /usr/bin/genisoimage -rwxr-xr-x. 1 root root 585376 Aug 12 2018 /usr/bin/genisoimage -rw-r--r--. 1 root root 29363 Aug 12 2018 /usr/share/man/man1/genisoimage.1.gzThey are actually expected to be like this under working conditions:
# ls -ld /usr/share/man/man1/genisoimage.1.gz /usr/bin/genisoimage lrwxrwxrwx. 1 root root 37 Nov 13 19:15 /usr/bin/genisoimage -> /etc/alternatives/mkisofs-genisoimage lrwxrwxrwx. 1 root root 40 Nov 13 19:15 /usr/share/man/man1/genisoimage.1.gz -> /etc/alternatives/mkisofs-genisoimageman
-
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.