Using DiskImage & ImageMount

 
Home    Tutorials    Using DiskImage & ImageMount
 

Introduction
This tutorial explains how to use DiskImage and ImageMount for mounting ADF floppy images, ISO CD-ROM images and HDF harddisk images as virtual devices on the Amiga. It is split into three parts, where the first part provides just some generic information, the second part is about Using DiskImage, and the third part explains Using ImageMount.

 


Generic Information


As you probably have realized by now, there are two different solutions for mounting disk image files supported in Amiga911 Maker projects, and here you can read more about what they actually have in common.


How they work.
Like mentioned above, DiskImage and ImageMount allows you to mount ADF, ISO and HDF image files as virtual DOS devices. You can then treat them like any other storage device, where you can for example copy, delete and rename files to/from/in the image files. Basically, almost everything that can be done with real devices can also be done with the virtual devices too, and this may include formatting it. The actual read/write speeds that can be achived will usually be just a little slower than the speed of the drive where the image files are stored. The seeking time in images however, can slow things down quite a bit (especially with large HDF images on slow media).

Both solutions works more or less in the same way, where you must use a requester based script for actually mounting the images, these scripts are called DiskImageGui and ImageMount. When either one of them is run, you must first select an image file. The script will then use the information of this image to create a suitable mount file in T:, which will be used for mounting the image as a virtual device (this will happen automatically).

Have in mind that it's quite possible to use both solutions at the same time, since I have made sure that they don't conflict with each other.


Supported image file formats.
Here are some information about the supported image file formats:

ADF images  -  although it should be possible to mount any ADF image file you like, it really makes sense to only mount DOS images.  Both DD (Double Density) and HD (High Density) ADF image files are supported, and the filesize will be checked in order to find out whether it's a DD or HD image. If the size is 1802240 bytes, a HD image is assumed, otherwise it will be treated as a DD image. This info will then be used for creating a suitable mount file, which in turn will be used for mounting the ADF image. When this is done, you can treat the virtual floppy disk in basically the same way as with a real floppy, the only exception is that you cannot install a bootblock on it.

ISO images  -  mounting ISO CD-ROM images requires either the AmiCDFS or CacheCDFS filesystem to be present on the boot disk or A911Extras pack. To make sure that a CD-ROM filesystem is included, you can enable the "ISO support" option in the "Configure programs" window of Amiga911 Maker.  ISO DVD-ROM images can also be mounted as long as they are max 2GB in size (because of the Amigas filesize limit). Have in mind that AmiCDFS doesn't support the Joliet extension, so ISO images created in Windows will lead to short file & dir names (8.3 format) to show up on the mounted image files.  Just like with real CD and DVD discs, the virtual ones will be read-only as well.

HDF images  -  when it comes to HDF image files, things are a bit more complicated since the mount file used must really match the characteristics of the HDF image to be mounted.  In order to make this easier, I decided to simplify things a little by just assuming that any HDF image to be mounted has been made by using the default settings in WinUAE. This in turn means a block size of 512 bytes and a BlocksPerTrack value of 32. The scripts will then use these values + the file size of the HDF image to calculate the HighCyl value. All this information will be used for generating a proper mount file, which will then be used for mounting the HDF as a virtual drive.  To sum it up: You should be able to mount any HDF image file of almost any size, as long as it was created by using the default settings in WinUAE.

Due to the file size limit of the Amiga, the HDF image to be mounted can be max 2GB in size. But you should really use smaller sizes on a real Amiga though (like 500MB or less). Several HDF images, including various pre-made Workbench packs (like ClassicWB) has been tested with the scripts, without having any problems at all.

  For more info about disk images, you can read the Amiga Disk File and  ISO image pages on Wikipedia.


A few words about file & dir names.
When compared to other systems, the Amiga is a bit more strict about the kind of characters that can safely be used in file and directory names, this is because of the rather sophisticated pattern matching methods supported by the platform. What this basically means, is that using any of the following characters in file/dir names, may lead to problems:  ? # % | ~ * [ ] ' ( )

This is mainly an issue with commands that supports pattern matching, where one example is the List command. Both the DiskImageGui and ImageMount scripts uses List in order to get some information about the selected image file, and if it fails to get this info due to "illegal" characters, it might lead to a couple of problems.  A rather minor problem has to do with the directory path of the image file. Both scripts tries to remember the last used directory for each image type, this is for making it easier to later select more disk images from the same dir. Failing to extract the path by using List, results in this functionality being lost.  A far more serious problem can occur if List has to be used in order to get the file size of the selected disk image, since failing to do so may result in the image file not being properly mounted. This only goes for HDF and High Density ADF image files, and you should at least try to avoid using the above mentioned characters in the file names of these type of disk images.

For more info about pattern matching, take a look at this page.


A quick note about volume names.
Have in mind that an image file may fail at being properly mounted if it uses the same volume name as another currently present device, this mainly applies to HDF images only.  As an example I can take a ClassicWB pack:  If you want to mount the System.hdf image on a real Amiga in order to copy all files from it to your boot partition, you should first make sure that none of the existing partitions is called System. This is because the HDF image already uses this as the volume name. When the HDF file has been mounted, and you are done with copying files, you can finally rename the boot partition to System (which is the recommended name for ClassicWB).


 


Using DiskImage


DiskImage allows the user to mount any disk image file as a DOS device, although on the boot disks and packs it will be limited to ADF floppy images, ISO CD-ROM images and HDF harddisk images only. When a virtual device is mounted and a image file is "inserted", the user will be able to copy files from/to the image, and it may also be possible to delete files from the image as well. Basically, almost everything that can be done with real devices can also be done with the virtual devices too.  One important thing to have in mind regarding HDF image files, is that they must have been made by using the defaults in WinUAE, this means a block size of 512 and a BlocksPerTrack value of 32.

A program called DiskImageCtrl is used for inserting and ejecting image files to/from the virtual drives, and even though it has the possibility to open a MUI front-end for making this easier, it will be of no use on the boot disks since MUI can't be included there (due to disk space limitations).  Instead you can use DiskImageGui, which is a script that controls DiskImageCtrl for easily inserting and ejecting image files. DiskImageGui also handles the mount files as well, so if the virtual device has not yet been mounted, the script will first generate a temporary mount file on the fly, and then it will use this file for actually mounting the device.  Please note that by default, none of the virtual devices are mounted at startup.

As you probably can see on the image above, you can have three virtual floppy drives (IDF0:, IDF1: & IDF2:), two virtual CD-ROM drives (ICD0: & ICD1:) and two virtual harddisk drives (IDH0: & IDH1:).  Have in mind that if any of the floppy drives have been mounted as a HD (High Density) drive, only HD ADF images can be inserted into it. Another thing is that inserting a different HDF image into an already mounted virtual drive, will only work if the other HDF file shares the same characteristics as the first one. In other words, the image file size, block size, and BlocksPerTrack value must be the same on both HDF image files.


Here is an example of the usage: Say you want to mount IDF0: and insert an ADF image to it, then all you have to do is click the "IDF0:" button and the small requester to the right should appear. Then click "Insert Image" and a file requester which allows you to select an ADF file will pop up.
When this is done, the script will check if IDF0: exists, and if it doesn't, the script will first generate a proper mount file in T:, and then it will try to use this for mounting the virtual device.  Finally the script will use DiskImageCtrl for inserting the selected ADF image file into IDF0:.  If you later want to eject the ADF image, just click "IDF0:" again, and then click the "Eject" button.


As previously mentioned, DiskImageCtrl has the possibility to open a MUI based front-end. So when you are using a system where MUI is installed, you can use this instead of the DiskImageGui script if you find it to be easier. But you must still use the script for mounting the virtual devices though.  In order to use DiskImageCtrl in GUI mode, just enter the following in Shell:  DiskImageCtrl GUI


Please note the following:
1. There are two different versions of diskimage.device available, but only Thore Böckelmann's version is supported. Fredrik Wikstrom's OS3.x port from OS4 is NOT supported!
2. The DiskImageGui script use units 0 - 6 for mounting the virtual drives, it may lead to unpredictable results if any of the units already are in use with diskimage.device.
3. Mounting ISO CD-ROM images requires either AmiCDFS or CacheCDFS to be present on the boot disk or A911Extras pack. To make sure that a CD-ROM filesystem is included, you can enable the "ISO support" option in the "Configure programs" window of Amiga911 Maker.



Author: Thore Böckelmann,  Roger Håseth (script),    Requires: AmigaOS 2.x or higher & 68020+ cpu,    Download: http://aminet.net/package/disk/misc/diskimage + http://aminet.net/package/disk/misc/DiskImageGui


 


Using ImageMount
 

ImageMount is a requester driven script which allows you to mount ADF, ISO and HDF image files in a really easy way with only a few mouse clicks, and you can then treat the virtual devices like any other storage device (copy, delete, rename files etc.). It works on any Amiga with KS 2.04 or higher, but requires minimum version 38.21 of the Mount command (included in WB2.1). ImageMount uses filedisk.device for mounting virtual devices.

Unlike with DiskImage, there are no sort of "change disk" or "eject disk" type of functionality involved, the mounted virtual drives will remain mounted until the Amiga is rebooted. When it comes to the amount of image files that can be mounted at any given time, there really are no limitations other than the currently free RAM available. As for the ImageMount script, it more or less works at the same principles as DiskImageGui, where the required mount files are automatically generated by the script. Also, the same limitations regarding HDF files applies to ImageMount as well. When compared to DiskImage, the ImageMount solution is a much more simpler and less advanced alternative, but the advantages is that it works on 68000 CPU Amigas, and that the required files are much more smaller in size.

As previously mentioned, ImageMount is really easy to use. All that's required is to first choose the type of image file to mount (ADF, ISO or HDF), then select the actual image file, and after a couple of seconds, it should be mounted. That's it, nothing more to do.
ImageMount can also be started from Shell, and with version 1.2 of the script, a single image file can be given as argument. This does however require that the file in question have the correct extension (.adf, .iso or .hdf).  Here is an example of how it can be done:
 
 Execute ImageMount CF0:WBDisks/Workbench3.1.ADF
 
Just have in mind that using Execute may not be required if the script has the S bit set. Another new feature in ImageMount 1.2 is that it now creates a log file on the Ram disk, where the log contains info about the mounted virtual devices, and what image files they use.


The way things work with the mount files is rather unique. Instead of specifying the Unit as a number, the actual name of the image file (including full path) is used. This is also the reason why version 38.21 or higher of the Mount command is required, since older versions of Mount doesn't allow anything other than numbers to be specified as Unit.

The mounted image files will use the following device names:
 
ADF images:  FDF0:  FDF1:  FDF2:  FDF3:  etc...
ISO images:  FCD0:  FCD1:  FCD2:  FCD3:  etc...
HDF images:  FDH0:  FDH1:  FDH2:  FDH3:  etc...


Please note!  Mounting ISO CD-ROM images requires either AmiCDFS or CacheCDFS to be present on the boot disk or A911Extras pack. To make sure that a CD-ROM filesystem is included, you can enable the "ISO support" option in the "Configure programs" window of Amiga911 Maker.


Author: Unknown,  Roger Håseth (script),    Requires: AmigaOS 2.x  & Mount 38.21 or higher,    Download: http://aminet.net/package/disk/misc/ImageMount




    Followed a link? Please go to the Main Site                   © Roger E. Håseth 2014 - 2016