I have an ISO that I am trying to use to install software via Wine. I have the ISO mounted as a loopback device. The Windows installer keeps complaining that it cannot locate particular CAB files and it asks me to locate them. The file name that the installer software asks me to locate has mixed case, but when I mount the ISO under Linux all directory listings show the files as being all lowercase. If I set -o check=relaxed when I mount the iso, then I can ask for files in mixed case and Linux will 'find' them. But if I do a directory listing I still get all lowercase.

I guess the Windows installer package is either doing a directory listing or for whatever reason it is getting an all-lower-case version of the filename it is expecting.

I am thinking there are several paths forward:

  1. Get Linux to show the mixed-case filenames as they are encoded in the Joliet extension
  2. Extract the ISO into a native Linux filesystem in a way that preserves the original casing
  3. Find a copy of Windows and use that to copy the files to a Windows native file system that Linux can also read and is case sensitive (NTFS).
  4. Something involving Wine.

Some example commands:

% isoinfo -d -i example.iso
Joliet with UCS level 3 found
NO Rock Ridge present

% # When using isoinfo, filenames are all caps
% isoinfo -f -i example.iso

% # When using ls, filenames are all lowercase
% ls /mnt/iso/dirname/dirname
  • try mounting with -o map=off to avoid the lowercase conversion. – meuh May 11 '16 at 8:11

You can start with isoinfo -J -ls to list the Joliet names instead of the default ISO-9660 names but this gives badly readable output.

A better readable result is achieved with isoinfo -J -find -ls, as this presents the directory tree in a more usual way.

You of course also can extract all files from an ISO image using: isoinfo -J -X and if you like to extract a selected number of files, you may use isoinfo -J -X -find -path <glob-pattern>. See the find man page for more information.

Single files can be extracted to stdout using isoinfo -J -x pathname. But note that you need to correctly match the path name in the filesystem image.

Note that the -find option was added in 2010, so you need a halfway recent version of isoinfo.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.