If you want raw data from an IMD file in some order other than the physical ordering on
the original media, my Python package that I linked to previously may be helpful. It may
also require some coding, but the supplied classes make it pretty easy for somebody with
Python familiarity to access the contents of arbitrary sectors in a .IMD file.
Even without Python programming experience, the command-line utility that comes with the
package makes it easy to take a .IMD file, remove sector interleave so that the physical
and logical sector ordering are the same, and then write out a new .IMD file to be
processed by any other .IMD-aware programs. For example, to convert "foo.imd" to
a new file "bar.imd" with no sector interleave:
imdutil.py --load foo.imd --interleave 0 --save bar.imd
It doesn't understand any filesystems - yet - but it may still be helpful.
Documentation is admittedly lacking... the command-line utility has built-in help which
can be accessed by the typical -h or --help arguments, and the classes have embedded
docstrings which (savvy Python folks) can access with pydoc. And it has a unit test suite
which I think tests it all out with reasonable thoroughness.
Here's the --help output from the included utility script, to give y'all an idea
of what it does:
~% imdutil.py -h
usage: imdutil.py [-h] [-l FILENAME] [-s FILENAME] [-S] [-D] [-i SKIP]
[-k SECTOR_NUM] [-u C.H.S] [-U]
ImageDisk (.IMD) utility version 1.0.0a1
Copyright (C) 2016 Mark J. Blair, released under GPLv3
https://github.com/NF6X/pyImageDisk
https://github.com/NF6X/pyImageDisk
Arguments are processed in the order encountered, with cumulative effects
upon the disk image buffer. The disk image buffer is discarded at program
exit. Arguments may be abbreviated.
optional arguments:
-h, --help show this help message and exit
-l FILENAME, --load FILENAME
Load disk image buffer from file, replacing previous
buffer contents.
-s FILENAME, --save FILENAME
Save disk image buffer to file.
-S, --summary Print summary of image contents.
-D, --details Print detailed description of image contents.
-i SKIP, --interleave SKIP
Interleave sectors with specified skip factor.
-k SECTOR_NUM, --skew SECTOR_NUM
Rotate sector order to place sectors with specified
sector number after index pulse.
-u C.H.S, --dumpsector C.H.S
Print hexadecimal dump of sector. Specify the sector
in cylinder.head.sector format. Use physical cylinder
and head numbers, and logical sector number.
-U, --dumpall Print hexadecimal dump of all sectors, in physical
order.
Example:
imdutil.py --load mydisk.imd --summary
--
Mark J. Blair, NF6X <nf6x at nf6x.net>
http://www.nf6x.net/