Esta referência também pode ajudá-lo:
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.
Quando um disco diferencial está sendo criado, os nomes de caminho para os dois tipos de localizadores de plataforma nas respectivas plataformas devem ser inicializados, se possível.
Nota: Versões anteriores ao Microsoft Virtual PC 2004 apenas armazenaram os nomes de caminhos absolutos.
Operação de gravação para um disco rígido diferenciado
Para uma operação de gravação, todos os dados são gravados na imagem de disco rígido diferencial. O bitmap de bloco é marcado como sujo para todos os setores gravados no bloco específico.
Operação de leitura para um disco rígido diferenciado
Quando uma máquina virtual lê setores de uma imagem de disco rígido, o subsistema de disco rígido de diferenciação verifica o bitmap de bloco no disco rígido diferencial. O subsistema de disco rígido de diferenciação lê os setores marcados como sujos do disco rígido diferenciado e os setores marcados como limpos do disco rígido pai.
Por exemplo, considere um bloco que contém os setores 4096 a 8191 na imagem do disco rígido pai e filho. O primeiro setor do bloco contém o bitmap do bloco. Uma única célula representa um bit no bitmap e um ponto preto representa o setor específico no bloco que foi gravado pela máquina virtual.