Bare Metal Boot to VHD

Boot from a Windows 7/8 Boot Disc or Windows PE Partition the internal disk

:::bat
lis dis
sel dis 0
cle
cre par pri
act
for fs=ntfs quick label="VHD Host Disk"
ass letter=C
exi

Make a VHDs folder on C and copy your VHD files to it.

Mount the VHD with diskpart

:::bat
sel vdisk file=C:\VHDs\Win7EntBase.vhd
attach vdisk
sel vol 1
ass letter=V
exi

Copy boot files to the C drive

:::bat
cd v:windowssystem32
bootsect /nt60 c: /force /mbr
bcdboot v:windows /s c:
bcdedit /store c:bootbcd /copy {default} /d "Windows7 VHD boot (locate)"
bcdedit /store c:bootbcd /set {new_guid} device vhd=[locate]Win7Ent.vhd
bcdedit /store c:bootbcd /set {new_guid} osdevice vhd=[locate]Win7Ent.vhd
bcdedit /store c:bootbcd /default {new_guid}
bcdedit /store c:bootbcd /set {new_guid} detecthal on

Unmount the VHD in diskpart

    :::bat
    select vdisk file=C:VHDwindows7.vhd
    detach vdisk
    exit

Restart, install drivers, get it set up. You can then reboot to PE, make a new VHD using the original as a base, make the original read only, remove the base from the boot list, add the differencing disk to the list.

:::bat
diskpart
create vdisk file=C:\MyVHDs\Win7Ent-1.VHD parent=C:\VHDs\Win7EntBase.VHD
attach vdisk    
list volume
select volume <volume_number_of_attached_VHD>
assign letter=W
exit
label W: "Win7 Diff1 VHD"
cd w:\windows\system32
bcdedit /v
bcdedit /set {current_guid} description "Windows Server 2008R2 Base VHD"
bcdedit /copy {current_guid} /d "Windows Server 2008R2 Diff1 VHD"
bcdedit /delete {current_guid} /cleanup

source