Con equipos virtualizados mediante Hyper-V es posible realizar instántaneas / puntos de control / checkpoints de un estado completo de la máquina virtual. Esta posiblidad nos permite jugar en el tiempo con el estado de la máquina, realizar copias de seguridad, diferenciales… todas las ventajas de la virtualización.

En ocaciones es posible que el espacio ocupado por todos estos movimientos empieza a quedar pequeño, pese a eliminar puntos de control obsoletos no siempre se realiza la acción correspondiente en los ficheros de disco duro, creandose archivos diferenciales:

Lo primero que buscamos es el disco que queremos combinar, para ello desde la configuración de la máquina virtual tenemos que apunta a un fichero AVHDX en lugar de un VHDX pese a no tener puntos de control en activo:

 

Este es el último punto de control que utiliza, a partir de aquí debemos navegar pulsando en el botón «Inspeccionar» para conocer el siguiente fichero padre, de esta manera tendremos el árbol correcto de los discos. Es importante NO UTILIZAR la fecha de modificación de los ficheros AVHDX para establecer el orden de combinación, dependerá del uso que hayamos tenido del árbol de puntos de control que coincida o no con el real:

Una vez aclarado el orden, dependiendo de la versión de Hyper-V podremos hacerlos con la máquina encendida o apagada. Buscaremos la opción de «Editar disco…». Seleccionando desde el primer nodo (el que apunta directamente nuestra máquina virtual) y los siguientes EN ORDEN:

La opción de «Combinar» solo nos aparece al seleccionar un archivo diferencial AVHDX, a partir de entonces seguiremos la misma operación de manera secuencial sobre el resto de archivos.

 

Una vez finalizado el proceso, recuerda apuntar al nuevo último punto de combinación que hayas dejado; revisa la configuración de replicación si esta activada con otra máquina antes de proceder con la combinación de discos.

En el caso de no poder eliminar desde la interfaz gráfica algún punto de control, puedes realizarlo desde powershell con el comando remove.

 

Get-VM NombreMaquinaVirtual | Remove-VMSnapshot -Name NombrePunto*