With the advent of virtualization in product solutions, physical devices began to divide a single logical-software space into several parts. For example, one network interface can be divided into several separate ones, not connected to each other, but using a single communication channel.
The same thing happened with storage devices, virtual disks appeared, which are files. In this article, we will consider one of these formats, which is used in virtualization!
What is VMDK and how does it work?
VMDK (VMware Disk) is a file format that contains a copy of a disk similar to ISO images, is a standard of VMware. The algorithm for working with it is the following points:
- The virtualization program creates a .vmdk file, which specifies the maximum size and type (fixed or dynamic).
- The virtual machine (or the host itself) mounts this file as a hard drive - the OS "thinks" that it is working with a real disk.
As mentioned earlier, the disk itself is a bitwise copy, which consists of:
- Boot sector;
- Partition table (MBR or GPT);
- File system (NTFS, ext4, etc.);
- User data.
Virtual disk types:
- Fixed - the VHD file immediately occupies the entire specified size (for example, 50 GB).
- Dynamic - the size of the VHD file grows as data is written.
- Differencing — a "child" disk that contains only changes compared to the "parent" (used for snapshots).
How to create and connect a virtual disk?
From time to time, the task of using virtual machine disks on a host system for the purpose of data recovery, cleaning, etc. arises. Let's consider how they are created and connected to work on the host OS. The process is classically simple, we select a new disk from an existing machine or create a new one:

We will select the recommended logical controller that will allow us to manage disks, then we will move on to choosing the drive type:

Let's select the type of disk storage on the machine. It is possible to use one or more files that will either immediately occupy the allocated space or will occupy it as needed:

Using all the declared disk space at once will increase the speed of reading and writing to the disk itself, so if performance is important to you, take this into account when configuring. After that, we will select a storage location for the disk and we can start using it.
Let's imagine that we need to recover information from disks or make a copy of them. To do this, we will use the FTK Imager utility, which will allow you to mount an image.

When connecting a drive, it is important to understand the algorithm of the OS operation with them. When connecting a drive, the driver begins working with the drive only by reading data bit by bit. But for correct operation, it is necessary to manage files on the drive: their access rights, labels, alternative data streams. This is already done by the file system and handlers that can read the format of the stored data and provide an interface for working with them.
Therefore, if we want to work with files on the disk, we use a Logical connection, and if, on the contrary, a bitwise connection is enough, then a Physical one. After which the disk will become available!

If everything is clear with connecting a physical disk with the OS, then how does this work: from a file to a virtual disk? In fact, it is the same, only instead of a disk with kernel space, software and VMDK work. The data is counted bit by bit, will be transferred to the driver, where the file system module will also work and provide files.