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 <n...@nf6x.net>
http://www.nf6x.net/

Reply via email to