Update on Isolyzer: UDF, HFS+ and more!

Update on Isolyzer: UDF, HFS+ and more!

Earlier this year I blogged about Isolyzer, a tool designed to help the detection of broken ISO images. Today I released a shiny new beta version that adds a significant amount of new functionality. Below is an overview of the main changes, followed by some warnings and caveats.

Support of more file systems

Where previous versions only supported disc images with an ISO 9660 file system (with limited support for hybrid ISO 9660/Apple HFS file systems), the new release can deal with a much broader range of file systems. In particular, it adds support for the Universal Disk Format (UDF) and Apple’s HFS+ file system. Unlike previous versions, Isolyzer can now also deal with Apple disc layouts that don’t contain a partition map (see also here for more details on Apple disc layouts). Crucially, all of the above are supported both as stand-alone file systems (e.g. a CD image with exclusively a HFS+ file system) as well as in various hybrid configurations (e.g. UDF Bridge format).

Details on how Isolyzer performs the calculations for estimating the expected image size in each of these situations can be found here. As it turns out, for UDF this calculation is not as straightforward as one would expect. The result is that Isolyzer typically under-estimates the true image size by several sectors. In most cases this is unlikely to be a problem; nevertheless, it may be possible to improve this in future versions.

Changes to the output format

The addition of multiple file system support required some changes to Isolyzer’s output format. The main change is the addition of a fileSystems element, which in turn holds one or more fileSystem elements that each contain information about a detected file system. The updated output format is documented here, and some examples are available here. Note that these changes may break existing workflows that use Isolyzer. This is also the main reason for making this a major (1.x) release. It is still possible that the format will change somewhat in the final (stable) release; this will largely depend on any feedback we may get from users of the tool.

Documentation and test images

Finally Isolyzer’s documentation has been given a major overhaul, as you can see from the main Github page. The repo now includes a new set of small test images that cover all of the currently supported file systems (with the exception of HFS/HFS+ file systems with a partition map, for which I’ve been unable to create or find a sufficiently small sample).


Because of the inclusion of breaking changes, and also the fact that so far we’ve only been able to test it on a limited number of UDF, HFS and HFS+ images, the software is currently released as a pre-release that has not been merged into Isolyzer’s main branch yet. You can install it with pip, but if you do make sure to add the --pre option, e.g.:

pip install isolyzer --user --pre

If you omit --pre, the command will install the most recent ‘stable’ version instead!

Update September 2017: I just published Isolyzer as a regular (non-beta) release, which can be installed without the --pre option. So you can simply use this:

pip install isolyzer --user

For Windows users 32-bit Windows binaries are available here.

For Windows users 64- and 32-bit binaries are available here. These binaries are completely stand-alone and don’t require Python on your machine.

Feedback appreciated

As always feedback on Isolyzer is highly appreciated, if only because any problem its users come across we’ll probably run into ourselves at some point! (Please note though that because of upcoming holidays I may be a little slow in following up any queries.)

Postscript (4 September 2017)

As I just moved published this version of Isolyzer as a regular (non-beta) release, I updated all links to the isolyzer repo to point to the master branch.

Leave a Reply

Join the conversation