Hide Forgot
Created attachment 1195620 [details] log.inspect-os.x86_64 Description of problem: Fail to inspect ppc64le ISO file no matter on ppc64le or x86_64 host. Please refer to the detailed log with -v -x in the attachments. log.inspect-os.ppc64le is the log on ppc64le host. log.inspect-os.x86_64 is the log on x86_64 host. Version-Release number of selected component (if applicable): libguestfs-1.32.7-2.el7.x86_64 libguestfs-1.32.7-2.el7.ppc64le How reproducible: Always Steps to Reproduce: 1. Prepare an ppc64le iso file: RHEL-7.2-20151030.0-Server-ppc64le-dvd1.iso 2. Inspect the iso file # guestfish --ro -a RHEL-7.2-20151030.0-Server-ppc64le-dvd1.iso run : inspect-os Actual results: No output. Expected results: Should print the result of inspect-os, like /dev/sda Additional info:
Created attachment 1195621 [details] log.inspect-os.ppc64le
The reason for this is strange. We only bother to check for installers if the disk we are given either is a filesystem on a whole device, or contains only a single partition. The code is: else if ((whole_device || (partnum == 1 && nr_partitions == 1)) && .... some more tests ....) fs->is_root = 1; fs->format = OS_FORMAT_INSTALLER; if (guestfs_int_check_installer_root (g, fs) == -1) return -1; } For this image, guestfs_int_check_installer_root is never called because nr_partitions == 2. The disk appears to contain only a single partition, according to the Linux kernel. However parted seems to think that the disk contains two partitions: $ parted -m -s -- /mnt/media/installers/RHEL-7.1-20150219.1-Server-ppc64/RHEL-7.1-20150219.1-Server-ppc64-dvd1.iso unit b print 2>/dev/null BYT; /mnt/media/installers/RHEL-7.1-20150219.1-Server-ppc64/RHEL-7.1-20150219.1-Server-ppc64-dvd1.iso:3267020800B:file:512:512:mac::; 1:512B:1535B:1024B::Apple:; 2:8192B:3266713599B:3266705408B::RHEL-7.1 Server.ppc64:; There's not a good workaround that I can think of at the moment.
Upstream we've removed the feature of inspecting install media. It didn't work in many cases such as this one, and it's better to use libosinfo (osinfo-detect) for this purpose.