Mounttools gibts viele für Windows. Viele sind kostenpflichtig, andere nerven mit Werbung, und die meisten davon sind absolute Bloatware. Mehr als eine Handvoll CD-Images einzubinden können aber die Allerwenigsten. Stellt man fest, dass es praktisch wäre, jetzt gerne den Inhalt eines CD-Images zu betrachten, führt der Gang ins Web, um ein geeignetes Tool runterzuladen. Spätestens nach der bunten Installation, zigmaligem Klicken auf „weiter“ und der – unter Windows meist obligatorischen Aufforderung, das System neuzustarten – merkt man, dass das Programm ohne eben diesen nervigen Neustart gar nicht funktioniert, weil der Treiber für das virtuelle Laufwerk nicht modular in den Kernel geladen werden kann. Nervig! Alles speichern, neustarten und sich wieder erinnern, warum man das Ding gerade installiert hat…

ImDisk: Überblick

ImDisk: Überblick

Doch es geht auch anders: schnell, schlank, mächtig und kostenlos – mit der Software ImDisk.

Die Installation ist in 3 Schritten schnell erledigt – es wird lediglich der Treiber, ein Kommandozeilenwerkzeug und ein Applet in der Systemsteuerung (inkl. Kontextmenüeintrag im Explorer) von Windows installiert. Ohne Aufforderung zum Neustart. Der virtuelle Diskdriver ist für 32 und 64 bit Windowssysteme verfügbar und verfügt über eine gültige Signatur.

ImDisk: Grafischer Mount Dialog

ImDisk: Grafischer Mount Dialog

Die spärlich ausgestattete GUI ermöglicht alle Aktionen, die auch die Konkurrenz kann – und sollte für 95% der user ausreichend sein. Es dürfte sogar in den meisten Fällen ein Rechtsklick auf die Imagedatei -> Mount as IMDisk Virtual Disk -> OK genügen, wobei automatisch der nächste freie Laufwerksbuchstabe vorselektiert wird, die änderbaren Standardwerte funktionieren auch fast immer.

ImDisk: Kontextmenü

ImDisk: Kontextmenü

In der Programmbeschreibung wird das reine Mounten von (CD) Images gar nicht explizit erwähnt, einen so geringen Teil des Funktionsumfangs macht das bei diesem Programm aus, startet man ImDisk einmal auf der Kommandozeile (aka Eingabeaufforderung / Windows PowerShell), offenbart sich erst das wahre Potenzial dieser Software.

ImDisk kann virtuelle Festplatten, Disketten- oder CD/DVD Laufwerke aus Imagedateien oder dem Arbeitsspeicher (RAMDisk) erstellen. Ausserdem bringt er den awealloc Treiber mit, was die 4GB Grenze für RAMDisks in 32bit Systemen aushebelt, indem er PAE (Physical Address Extension) nutzt. Ausserdem kann IMDisk Devices und Images auf entfernten Rechnern über Netzwerk mounten und nutzen. Dabei wird remote der devio Treiber benutzt, der für alle Betriebssystem verfügbar ist – neben Linux auch FreeBSD und … sogar Windows. Auf das letzte Feature einzugehen, würde den Rahmen dieser Vorstellung sprengen, Claus Valca hat sich auf seinem Blog aber ausführlich damit beschäftigt.

Beispiele

Images

einfaches Disk Image auf Y: mounten:

PS C:\> imdisk -a -f D:\sda1_backup.img -m Y:

RAMDisks

eine 512MB große RamDisk auf Laufwerk R: erstellen:

PS C:\> imdisk -a -s 512M -m R: -p "/fs:ntfs /q /y"

eine RAMDisk erstellen und ein Image reinladen:

PS C:\> imdisk -a -t vm -f D:\grml96-full_2012.05.iso -m R:

nachträglich 128MB Speicher zur gerade erstellten RAMDisk hinzufügen:

PS C:\> imdisk -e -s 128M -m R:

Das Sichern einer RAMDisk zurück in eine Imagedatei ist so vom ImDisk nicht vorgesehen, aber dafür kann rawcopy des gleichen Herstellers verwendet werden (32-bit Version / 64-bit Version):

PS C:\> rawcopy -mld \\.\R: D:\ramdisk.img

ImDisk ohne Parameter aufgerufen, gibt die Hilfe mit den umfangreichen Optionen aus:

Control program for the ImDisk Virtual Disk Driver. For copyrights and credits, type imdisk --version
Syntax:
imdisk -a -t type -m mountpoint [-n] [-o opt1[,opt2 ...]] [-f|-F file]
 [-s size] [-b offset] [-v partition] [-S sectorsize] [-u unit]
 [-x sectors/track] [-y tracks/cylinder] [-p "format-parameters"]
imdisk -d|-D [-u unit | -m mountpoint]
imdisk -R -u unit
imdisk -l [-u unit | -m mountpoint]
imdisk -e [-s size] [-o opt1[,opt2 ...]] [-u unit | -m mountpoint]
-a Attach a virtual disk. This will configure and attach a virtual disk
 with the parameters specified and attach it to the system.
-d Detach a virtual disk from the system and release all resources.
 Use -D to force removal even if the device is in use.
-R Emergency removal of hung virtual disks. Should only be used as a last
 resort when a virtual disk has some kind of problem that makes it
 impossible to detach it in a safe way. This could happen for example
 for proxy-type virtual disks sometimes when proxy communication fails.
 Note that this does not attempt to dismount filesystem or lock the
 volume in any way so there is a potential risk of data loss. Use with
 caution!
-e Edit an existing virtual disk.
Along with the -s parameter extends the size of an existing virtual
 disk. Note that even if the disk can be extended successfully, the
 existing filesystem on it can only be extended to fill the new size
 without re-formatting if you are running Windows 2000 or later and the
 current filesystem is NTFS.
Along with the -o parameter changes media characteristics for an
 existing virtual disk. Options that can be changed on existing virtual
 disks are those specifying wether or not the media of the virtual disk
 should be writable and/or removable.
-t type
 Select the backingstore for the virtual disk.
vm Storage for this type of virtual disk is allocated from virtual memory
 in the system process. If a file is specified with -f that file is
 is loaded into the memory allocated for the disk image.
file A file specified with -f file becomes the backingstore for this
 virtual disk.
proxy The actual backingstore for this type of virtual disk is controlled by
 an ImDisk storage server accessed by the driver on this machine by
 sending storage I/O request through a named pipe specified with -f.
-f file or -F file
 Filename to use as backingstore for the file type virtual disk, to
 initialize a vm type virtual disk or name of a named pipe for I/O
 client/server communication for proxy type virtual disks. For proxy
 type virtual disks "file" may be a COM port or a remote server
 address if the -o options includes "ip" or "comm".
Instead of using -f to specify 'DOS-style' paths, such as
 C:\dir\image.bin or \\server\share\image.bin, you can use -F to
 specify 'NT-style' native paths, such as
 \Device\Harddisk0\Partition1\image.bin. This makes it possible to
 specify files on disks or communication devices that currently have no
 drive letters assigned.
-l List configured devices. If given with -u or -m, display details about
 that particular device.
-n When printing ImDisk device names, print only the unit number without
 the \Device\ImDisk prefix.
-s size
 Size of the virtual disk. Size is number of bytes unless suffixed with
 a b, k, m, g, t, K, M, G or T which denotes number of 512-byte blocks,
 thousand bytes, million bytes, billion bytes, trillion bytes,
 kilobytes, megabytes, gigabytes and terabytes respectively. The suffix
 can also be % to indicate percentage of free physical memory which
 could be useful when creating vm type virtual disks. It is optional to
 specify a size unless the file to use for a file type virtual disk does
 not already exist or when a vm type virtual disk is created without
 specifying an initialization image file using the -f or -F. If size is
 specified when creating a file type virtual disk, the size of the file
 used as backingstore for the virtual disk is adjusted to the new size
 specified with this size option.
The size can be a negative value to indicate the size of free physical
 memory minus this size. If you e.g. type -400M the size of the virtual
 disk will be the amount of free physical memory minus 400 MB.
-b offset
 Specifies an offset in an image file where the virtual disk begins. All
 offsets of I/O operations on the virtual disk will be relative to this
 offset. This parameter is particularily useful when mounting a specific
 partition in an image file that contains an image of a complete hard
 disk, not just one partition. This parameter has no effect when
 creating a blank vm type virtual disk. When creating a vm type virtual
 disk with a pre-load image file specified with -f or -F paramters, the
 -b parameter specifies an offset in the image file where the image to
 be loaded into the vm type virtual disk begins.
Specify auto as offset to automatically select offset for a few known
 non-raw disk image file formats. Currently auto-selection is supported
 for Nero .nrg and Microsoft .sdi image files.
-v partition
 Specifies which partition to mount when mounting a raw hard disk image
 file containing a master boot record and partitions.
Specify number 1-4 to mount a partition from the primary partition
 table and 5-8 to mount a partition from an extended partition table.
-S sectorsize
 Sectorsize to use for the virtual disk device. Default value is 512
 bytes except for CD-ROM/DVD-ROM style devices where 2048 bytes is used
 by default.
-x sectors/track
 See the description of the -y option below.
-y tracks/cylinder
 The -x and -y options can be used to specify a synthetic geometry.
 This is useful for constructing bootable images for later download to
 physical devices. Default values depends on the device-type specified
 with the -o option. If the 'fd' option is specified the default values
 are based on the virtual disk size, e.g. a 1440K image gets 2
 tracks/cylinder and 18 sectors/track.
-p "format-parameters"
 If -p is specified the 'format' command is invoked to create a
 filesystem when the new virtual disk has been created.
 "format-parameters" must be a parameter string enclosed within
 double-quotes. The string is added to the command line that starts
 'format'. You usually specify something like "/fs:ntfs /q /y", that
 is, create an NTFS filesystem with quick formatting and without user
 interaction.
-o option
 Set or reset options.
ro Creates a read-only virtual disk. For vm type virtual disks, this
 option can only be used if the -f option is also specified.
rw Specifies that the virtual disk should be read/writable. This is the
 default setting. It can be used with the -e parameter to set an
 existing read-only virtual disk writable.
rem Specifies that the device should be created with removable media
 characteristics. This changes the device properties returned by the
 driver to the system. For example, this changes how some filesystems
 cache write operations.
fix Specifies that the media characteristics of the virtual disk should be
 fixed media, as opposed to removable media specified with the rem
 option. Fixed media is the default setting. The fix option can be used
 with the -e parameter to set an existing removable virtual disk as
 fixed.
saved Clears the 'image modified' flag from an existing virtual disk. This
 flag is set by the driver when an image is modified and is displayed
 in the -l output for a virtual disk. The 'saved' option is only valid
 with the -e parameter.
Note that virtual floppy or CD/DVD-ROM drives are always read-only and
 removable devices and that cannot be changed.
cd Creates a virtual CD-ROM/DVD-ROM. This is the default if the file
 name specified with the -f option ends with either .iso, .nrg or .bin
 extensions.
fd Creates a virtual floppy disk. This is the default if the size of the
 virtual disk is any of 160K, 180K, 320K, 360K, 640K, 720K, 820K, 1200K,
 1440K, 1680K, 1722K, 2880K, 123264K or 234752K.
hd Creates a virtual fixed disk partition. This is the default unless
 file extension or size match the criterias for defaulting to the cd or
 fd options.
ip Can only be used with proxy-type virtual disks. With this option, the
 user-mode service component is initialized to connect to an ImDisk
 storage server using TCP/IP. With this option, the -f switch specifies
 the remote host optionally followed by a colon and a port number to
 connect to.
comm Can only be used with proxy-type virtual disks. With this option, the
 user-mode service component is initialized to connect to an ImDisk
 storage server through a COM port. With this option, the -f switch
 specifies the COM port to connect to, optionally followed by a colon,
 a space, and then a device settings string with the same syntax as the
 MODE command.
shm Can only be used with proxy-type virtual disks. With this option, the
 driver communicates with a storage server on the same computer using
 shared memory block to transfer I/O data.
-u unit
 Along with -a, request a specific unit number for the ImDisk device
 instead of automatic allocation. Along with -d or -l specifies the
 unit number of the virtual disk to remove or query.
-m mountpoint
 Specifies a drive letter or mount point for the new virtual disk, the
 virtual disk to query or the virtual disk to remove. When creating a
 new virtual disk you can specify #: as mountpoint in which case the
 first unused drive letter is automatically used.