Virtual Disk Driver Version 3

[UPDATED: 6, Apr. 2005] The current latest version is 3.2 (See details).


This is a Virtual Disk Driver (VDK) Version 3 for Windows NT / 2000 / XP.
I've got some reports that it also works on Windows 2003 Server.
Note !!! works only on 32 bit systems !!!

With VDK you can mount a VMware virtual disk to your Windows hosts and use them as another disk drive attached to your system.

VDK can open the following disk types for both read-only and read-write access:

  • VMware 2.x Plain Disks (*.pln).
  • VMware 2.x / 3.x Virtual Disks (*.dsk, *.vmdk).
  • VMware 2.x / 3.x REDO log files based on both Plain Disks and Virtual Disks.
  • VMware 2.x / 3.x differential / nested Virtual Disks (which actually are renamed REDO logs), based on both Plain Disks and Virtual Disks. There is no limitation on the nesting level.
  • VMware 4.x Flat virtual disks (both split and monolithic).
  • VMware 4.x Sparse virtual disks (both split and monolithic).
  • VMware 4.x REDO log files (which actually are the same thing as split-sparse virtual disks) and differential / nested virtual disks (ditto).
VDK allows you to use these types of virtual disks with minor errors, such as timestamp mismatch, sequence number mismatch, etc. (VDK simply ignores those errors, it does not fix them.)

VDK can also open the following types of virtual disks:

  • Raw sector image which you can create with regular disk dump tools such as Linux dd command.
  • Non-partitioned disk image, such as floppy image, removable disk image, and dd image of a single partition. (This is not actually a type of virtual disk, but rather how the virtual disk is formatted.)
    In this case, the whole image is treated as a single partition.

VDK is also capable of creating REDO log files which VMware can use. This means that VDK can open virtual disks in undoable mode, then you can commit the changes using VMware, or discard the changes by simply deleting created REDO log files.

VDK cannot use the following virtual disks for the time being, but I'm planning to implement them:

  • Any disk types with serious errors.

VDK cannot use the following disk types, and I have no intention of implementing them:

  • Raw Disks for any version of VMware.
  • REDO log files for Raw Disks.


Version 3.2 is a minor command line interface update:

  • VDK.EXE now accepts virtual disks created with VMware Workstation 5 without complaining.

  • VDK.EXE now accepts virtual disks with the "lsilogic" virtual controller without complaining.

  • VDK.EXE now accepts plain dd image files without complaining.
    VDK.EXE still shows a message that the file is treated as a raw sector image, but it doesn't wait for the user input (in fact this prompting was rather infamous).

  • Added /SEARCH option to VIEW and OPEN commands, which specifies a path to search virtual disk files and related image files.
    See README.TXT or VDK.EXE HELP for more information.

  • Added /UNDO:path option to OPEN command, which specifies a directory to create the REDO log file.
    See README.TXT or VDK.EXE HELP for more information.


VDK owes a great deal to Bo Brantén's 'ntifs' project and 'filedisk' program ( This program simply could not happen without his great works.


Some users have reported gradual system slowdown and eventual lockup when transferring large amount of data from/to virtual drives. Cser Laszlo has investigated the issue further and reported that this happens only when an image is opened in Read-Write or Write-Blocked mode, and does not happen in Read-Only mode. I suspect it has something to do with Windows' cache management, but I haven't experienced the problem myself and I have no solution for the problem at the moment.

The VMware virtual disk format and structure on which VDK was developed is entirely the result of my personal investigation. Absolutely no official information is provided by VMware, Inc. or any other resources. Please be aware that there is ABSOLUTELY NO WARRANTY and be sure to use it AT YOUR OWN RISK.

You must have administrative privileges to use the VDK. This is becuase Windows does not allow non-administrative users to manipulate hard disk volumes.

VDK is a disk driver, not a file system driver, therefore you can only access partitions which your Windows host can recognize. For example, you cannot access ext2 partitions on virtual drives unless you have a 3rd party ext2 file system driver installed on your Windows system.

VDK does not communicate with Windows 2000/XP Mount Manager.

  • Disk Management Console (partition manipulation and mount point configuration) does not recognize the VDK virtual drives.
    Many third party utilities, such as PartitionMagic, work fine.
  • Disk Defragment utility does not recognize the VDK virtual drives.
    Many third party defrag utilities, such as Diskeeper, work fine.
  • Graphical mode of Check Disk may not work.
    (command line chkdsk.exe works fine).

VDK does not handle GPT partitioned disk (I don't really know what it is. All I know is that it's a new type of partition table.)

Also, I suspect that you cannot use Windows NT Fault Tolerant Volumes (mirror, stripe, volume set, etc) or Windows 2000/XP Dynamic Volumes on virtual drives. I simply don't know because I've never used them.


Will appear in the next major release:

  • Allow non-administrative users to use the program.
  • Virtual disk manipulation such as REDO log merging, defragment, type conversion, creation, etc.

May appear someday...

  • Better compatibility with Win2K/XP (PnP support, Mount Manager support, etc).
  • GUI front end program.
  • Virtual disk error correction.


The latest version (version 3.2):
Binary: (99,636 bytes) Apr. 6, 2005
Source: (181,897 bytes) Apr. 6, 2005

The binary package includes the following files:

  • vdk.sys ... Virtual Disk kernel-mode Driver (the driver is not updated from version 3.1).
  • vdk.exe ... Virtual Disk Driver control program (console).
  • README.TXT ... Explanation (English).
  • READMEJ.TXT ... Explanation (Japanese).

Please carefully read README.TXT in the package for more information.

Previous version (version 3.1):

Binary: (98,619 bytes) Nov. 10, 2003
Source: (188,321 bytes) Nov. 10, 2003


06-04-2005 Version 3.2 (VDK.SYS 3.1, VDK.EXE 3.2)
Minor command line interface updates.
10-11-2003 Version 3.1 (VDK.SYS 3.1, VDK.EXE 3.1)
  • Fixed a bug that the driver could cause the system to stall during the system shutdown.
  • Fixed a bug that vdk.exe could not read extended partition tables stored beyond 4GB from the beginning of the disk.
  • Added /Q (quiet) and /F (force) options to CLOSE command.
  • Corrected description of required privileges in the help and the doc.
04-11-2003 Version 3.0 Release (VDK.SYS 3.0, VDK.EXE 3.0)
Added support for multiple virtual drives, write-block mode, sector image file set, view image information command.
30-07-2003 Version 2.0 Release (VDK.SYS 2.0, VDK.EXE 2.0)
Added support for VMware 4.0 virtual disks, simple sector image files, non-partitioned disk image files.
27-05-2003 VDK.SYS 1.01
Fixed a major bug where it couldn't handle virtual disks larger than 4GB properly.
20-05-2003 Initial Release (VDK.SYS 1.0, VDK.EXE 1.0)