Skip to content

ConfigDrive iso generation not working #11622

@returntrip

Description

@returntrip

problem

On RHEL 9.6 we are having the same issues described here: #10864

According to this, the host needs to have one of the following /usr/bin/genisoimage, /usr/bin/mkisofs, /usr/local/bin/mkisofs the first two are present in RHEL 9.6 but ultimately, as symlinks to xorriso, See:

genisoimage:

# ls -lat /usr/bin/genisoimage
lrwxrwxrwx. 1 root root 37 Sep 12 09:26 /usr/bin/genisoimage -> /etc/alternatives/mkisofs-genisoimage
# ls -lat  /etc/alternatives/mkisofs-genisoimage
lrwxrwxrwx. 1 root root 18 Aug  7 14:55 /etc/alternatives/mkisofs-genisoimage -> /usr/bin/xorrisofs
# ls -lat  /usr/bin/xorrisofs
lrwxrwxrwx. 1 root root 7 Jan 15  2025 /usr/bin/xorrisofs -> xorriso

mkisofs:

# ls -lat /usr/bin/mkisofs
lrwxrwxrwx. 1 root root 25 Aug  7 14:55 /usr/bin/mkisofs -> /etc/alternatives/mkisofs
# ls -lat /etc/alternatives/mkisofs
lrwxrwxrwx. 1 root root 18 Aug  7 14:55 /etc/alternatives/mkisofs -> /usr/bin/xorrisofs
# ls -lat  /usr/bin/xorrisofs
lrwxrwxrwx. 1 root root 7 Jan 15  2025 /usr/bin/xorrisofs -> xorriso
#update-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-genisoimageman: /usr/share/man/man1/xorrisofs.1.gz
 follower mkisofs-mkisofsman: /usr/share/man/man1/xorrisofs.1.gz
Current `best' version is /usr/bin/xorrisofs.

if I rename those two binaries I get the error: "Cannot create iso for config drive using any know tool. Known paths [/usr/bin/genisoimage, /usr/bin/mkisofs, /usr/local/bin/mkisofs]" (as per code above). Meaning the check is done correctly.

I also tested manually to create an iso with genisoimage using the flags CloudStack wants to use and that works (to prove that genisoimage actually works)

/usr/bin/genisoimage -o /tmp/configdrive-test.iso -ldots -allow-lowercase -allow-multidot -cache-inodes -l -quiet -J -r -V config-2 /tmp/configdrive-test

I am not a programmer, but it seems that the this is returning /usr/bin/xorriso which does not support directly the mkisofs style flags, one needs to pass the mkisofs flags like so: xorriso -as mkisofs.

versions

CloudStack 4.20.1 on KVM

The steps to reproduce the bug

See above

What to do about it?

Perhaps improve the code how the iso generation tool is detected (should not follow symlinks)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions