Эта ссылка также может помочь вам:
Implementing a Differencing Hard Disk
A differencing hard disk stores the file locator of the parent hard disk inside the differencing hard disk itself. When a virtual machine tries to open a differencing hard disk, both the differencing hard disk and the parent hard disk are opened. The parent hard disk can also be a differencing hard disk, in which case there could be a chain of differencing hard disks which finally end in a non-differencing hard disk.
To have the ability to move hard disks across platforms, the hard disk format is designed in such a way that it can store parent hard disk file locators for different platforms at the same time.
The parent locator table is used only by the differencing hard disks, as described in “Dynamic Disk Header Format” earlier in this paper. The parent locator table stores a platform code for every parent file locator stored in the file. The virtual machine reads the appropriate parent file locator for the current platform and opens the hard disk image.
In Windows, there are two types of platform locators: W2ku and W2ru. The former is the absolute pathname of the parent hard disk, and the latter is a pathname to the parent hard disk relative to the differencing hard disk.
For example, a parent hard disk image located in the root drive on a typical Windows-based machine would be stored as follows:
Type Example
W2ku c:\directory\parent.vhd
W2ru .\directory\parent.vhd
As an example on a typical Apple Macintosh-based machine, the parent hard disk image would be stored as follows:
Type Example
Mac (Mac OS alias stored as a blob)
MacX file://localhost/directory/parent.vhd
The advantage of the relative pathname is that it allows portability of the differencing and parent hard disk to different locations. With the absolute pathname, whenever the parent hard disk is moved, the parent and child hard disks must be explicitly re-linked.
При создании разностного диска имена путей для обоих типов локаторов платформ на соответствующих платформах должны быть инициализированы, если это возможно.
Примечание. Версии, предшествующие Microsoft Virtual PC 2004, сохраняли только абсолютные имена путей.
Операция записи для разностного жесткого диска Для операции записи все данные записываются в разностный образ жесткого диска. Растровое изображение блока помечается как грязное для всех секторов, записанных в конкретный блок.
Операция чтения разностного жесткого диска Когда виртуальная машина считывает сектора образа жесткого диска, подсистема разностного жесткого диска проверяет битовую карту блока на разностном жестком диске. Подсистема разностного жесткого диска считывает сектора, помеченные как грязные, с разностного жесткого диска, а сектора, помеченные как чистые, с родительского жесткого диска.
Например, рассмотрим блок, который содержит сектора с 4096 по 8191 как в образе родительского, так и дочернего жесткого диска. Первый сектор блока содержит растровое изображение для блока. Отдельная ячейка представляет бит в битовой карте, а черная точка представляет конкретный сектор в блоке, в который была записана виртуальная машина.