Don't know the solution, but the problems is, I think, that the check for a valid ISO 9660 fs
assumes that the image is not a bootable (or autorun) image.
If you look at the shell code in
/usr/share/apps/mountiso/mountiso.sh, the check is made like this:
Code:
function check_iso {
TYPE=`head "$1" | od -Ax -s | head -n 1 | cut -f 1 -d " " `
case "$TYPE" in
008008)
# ISO image
CHECK="Standard ISO9660 image"
;;
008028)
# ISO image (by WinISO)
CHECK="Standard ISO9660 image (by WinISO)"
;;
053008)
# NRG image
CHECK="NRG image (by Nero)"
;;
007a69)
# XDVDFS image
CHECK="XBOX DVD image"
;;
*)
# Anything else
CHECK="Unknown format"
;;
esac
}
Looking at a ISO file that can be used to create a valid image, I see this:
Code:
$ cat /var/share/z/iso/AlDenata.ISO | od -Ax -s | less
00007f startUp.htm
000435 ALDENATA
002cd1 E*^
00490c bV)[
004967 !q\
007fd7 1k$
009318 Win32 ALDENATA
00965f 0000000000000000
009683
...
009c98 %/E
009f8f 0000000000000000
009fb3
...
00aebd mkisofs 1.15a12 -o aldenata.iso -J -r -hfs -auto startUp.htm -V ALDENATA
-hide-hfs shellexec.exe /aldenata
(Where the
... indicates several blank lines.)
As you can see, this will fail the test.
Of course, this ISO file is also not mountable on the loopback device either.
So I'd suggest you play with the
od -Ax -s (or
hexdump) and your ISO file to see if you can find an offset that will work for you.
Clearly, though, looking at the first three bytes of the first record is not, in every case (or most cases?) sufficient.
You could try modifying the function to default to
Standard ISO9660 image and see if that would work for you, since your ISO files are, at least, mountable. (I don't really need mine to be mountable in Linux. That
/var/share/z/ directory is a FAT32 drive for sharing files between Windows and Linux.)