Ventajas del soporte nativo de VHDs en Windows en el día a día

Hola!

Como muchos de vosotros sabréis, desde la aparición de Windows 7 / 2008R2, el sistema operativo ofrece soporte nativo de discos virtuales VHD y este hecho supone algunas ventajas de las cuales yo saco mi particular provecho.

A la forma tradicional de crear estos discos desde la consola de administración de discos (diskmgmt.msc) podemos usar diskpart (entre otras utilidades) para crear discos VHD.

DISKPART> help create vdisk

Creates a virtual disk file. Currently only VHD format files are supported.

Syntax:  CREATE VDISK FILE=<"filename"> MAXIMUM=<N> [TYPE={FIXED|EXPANDABLE}]

             [SD=<SDDL string>] [PARENT=<"filename">] [SOURCE=<"filename">]

             [NOERR]

 Así como algunos ejemplos directos de la ayuda de diskpart:

    CREATE VDISK FILE="c:\test\test.vhd" MAXIMUM=1000

    CREATE VDISK FILE="c:\test\child.vhd" PARENT="c:\test\test.vhd"

    CREATE VDISK FILE="c:\test\test.vhd" MAXIMUM=1000 SD="D:P(A;;GA;;;WD)"

    CREATE VDISK FILE="c:\test\new.vhd" SOURCE="c:\test\test.vhd"

    CREATE VDISK FILE=c:\test\test.vhd MAXIMUM=5120 TYPE=FIXED

    CREATE VDISK FILE=c:\test\test.vhd MAXIMUM=5120 TYPE=EXPANDABLE

 Algunas de las funcionalidades que más uso habitualmente debido al soporte de discos VHD en las ultimas versiones de Windows son:

1. Poder crear discos en mis sistemas para pruebas aunque no tenga discos disponibles, o lo que es lo mismo poder presentar discos al sistema y trabajar con ellos. Y para qué puede ser util?

Pongamos el ejemplo que queréis hacer pruebas de formateo, ver las diferencias entre discos MBR versus GPT, aliniar particiones,etc. nada mejor como un disco VHD :-)

2. Múltiples OS en el mismo volumen/partición sin tener que crear una nueva partición.

Una de las características que más a gustado a los usuarios es la capacidad de montar un VHD en el arranque (Windows Boot Loader tiene esa capacidad) por lo tanto podemos crear un disco VHD en la instalación de un nuevo SO Win7/2k8R2 o por ejemplo para probar la Windows 8 Preview Developer :-) .

Así mismo, podéis crear discos diferenciales para pruebas, pongamos un ejemplo, tenéis un Windows 7 instalado y configurado en un VHD. En un momento decidís realizar cambios en ese punto en el tiempo que luego vas a descartar. Tal y como se ve en los ejemplos anteriores, podemos usar un comando como el siguiente:

 CREATE VDISK FILE="c:\test\child.vhd" PARENT="c:\test\test.vhd", dónde child.vhd será nuestro nuevo disco diferencial y todas las operaciones de escritura se realizarán sobre él.

Configuraremos una nueva entrada en BCD (Boot Configuration Database) para que arranque del nuevo disco "hijo"

Para añadir un disco virtual a nuestro arranque usaremos bcdedit.exe (desde una consola de comandos elevada en caso de usar UAC): https://technet.microsoft.com/en-us/library/dd799299(WS.10).aspx 

Os dejo también información general de BCD: https://www.microsoft.com/whdc/system/platform/firmware/bcd.mspx , https://technet.microsoft.com/en-us/library/cc721886(WS.10).aspx 

Sólo recordaros que no es posible arrancar desde VHD si el disco donde reside tiene Bitlocker activado.

 3: Y hablando de bitlocker, también me resulta muy util usar VHD y Bitlocker en conjunto para mi Pendrive USB personal. Como muchos sabéris, Bitlocker sólo permite encriptar a nivel de disco, por lo que no puedo encriptar sólo una carpeta con este sistema.

Normalmente suelo almacenar en mi USB ejecutables, utilidades o alguna instalación de windows 7 / 2k8R2. Como necesito poder realizar instalaciones con él, o arrancar WInPE, MDart, no puedo usar Bitlocker para encriptarlo ya que perdería la capacidad de arrancar de él.

Lo que hago para poder transportar eventualmente información personal que deseo proteger con Bitlocker es crear un disco VHD en mi USB y proceder a presentar el VHD como un volumen en mi equipo. Ahora sí puedo encryptar mi disco (virtual) sin miedo a perder la lista de la compra  de la semana la cual estará encriptada.  Este procedimiento no usa Bitlocker to Go, por lo que sólo podré acceder a la información desde sistemas compatibles con VHD y Bitlocker.

Veamos como hacemos esto:

- Creamos un disco VHD de 100MB desde DISKPART: CREATE VDISK FILE="h:\test\test.vhd" MAXIMUM=1024  (suponiendo que H: es mi USB )

Montamos el el VHD, creamos una partición y damos formato NTFS:

Por último asignamos una unidad de letra:

Ahora ya tenemos presentado un disco virtual (R:) al sistema, por lo que sólo nos queda encriptarlo con bitlocker desde el panel de control:

Control Panel\System and Security\BitLocker Drive Encryption

Recordad que Bitlocker sólo está disponible en versiones Windows Server 2008 / R2 y Windows Vista / 7 Enterprise y Ultimate

Carlos Mayol
PFE Spain