Restauration de VMs HyperV

Aujourd’hui nous allons voir un peu toutes les options que nous avons pour restaurer une VMs sous HyperV.

Rappel :
Effectuer une sauvegarde (low cost) : http://diskshadow.fr/microsoft/sauvegarde-vm-sous-hyperv.html

Maintenant rentrons un peu plus dans le détail :
Plusieurs cas de figures :

1) Il ne s’agit que de la corruption d’un fichier de disque virtuel (.vhd)
-repartir de votre sauvegarde sur bande ou autre, vous n’aurez qu’à écraser le fichier corrompu par le bon.
-ou encore monter la bonne Shadow Copy (si elle est toujours présente) et écraser le fichier corrompu par le bon.
Procédure ici : http://diskshadow.fr/microsoft/volume-shadow-copy-service-vss-details2.html

2) Le système parent (partition HyperV) est corrompue
Avec sauvegarde
-repartir de votre sauvegarde sur bande ou autre (imagex + winpe par exemple), booter sur winpe et restaurer votre image .wim (imagex).

Sans sauvegarde
-ici c’est plus compliqué …
On install l’OS et active HyperV.
On supprime les répertoires de configuration des VMs (\Virtual Machines\ 7A121B74-0604-41DF-A5A0-A306438219D4 par exemple).
On recrée toutes les VMs en utilisant les disques .vhd existant.
On démarre les VMs.
On nettoie les cartes réseaux.

Note : En effet les Guid des interfaces de la partition parentes ont changé et les drivers synthétiques s’appuyant dessus (à travers le VMBus) fera que le Guest OS se dira qu’il a de nouvelles cartes réseaux et recréera ses interfaces !
Procédure :
a) au niveau du gestionnaire de périphériques :
Dans un cmd lancer : set devmgr_show_nonpresent_devices=1
Puis Demarrer> Executer> devmgmt.msc
Dans le menu Affichage> Afficher les périphériques cachés et au niveau des cartes réseaux supprimer ce qui n’existe plus.

b) Pour finir le registre (faire une svg du registre avant les modifications)
Lancer regedit puis aller à la clef HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network
Aller dans chaque clef jusqu’à connexion et vérifier le Name, en fonction de cela supprimer les clefs qui ne servent plus (la local network 0 et 1 par exemple).
{4D36E972-E325-11CE-BFC1-08002BE10318} exemple de clef à supprimer.

Maintenant tout est propre.
Les nouvelles interfaces peuvent être renommées comme souhaitées.

Pour finir la restauration
On vérifie le journal des logs de la partition parente HyperV et des Guest OS (VMs)

-Cas spécial pour les VMs avec des SnapShot !
Tout d’abord cela ne doit pas être des VMs de production (ce n’est pas recommandé d’utiliser les SnapShot sur des VMs de production pour des soucis de performances).
Pour reconstruire la vrai arborescences une début de procédure est disponible ici :
http://diskshadow.fr/microsoft/restauration-des-sauvegardes-de-vm-sous-hyperv.html

Mais le plus simple et de fusionner manuellement les fichiers dans l’ordre.
Il faut utiliser l’outil d’édition/modification de disques natif à HyperV (dans le console mmc HyperV (volet Action à droite)).
Sélectionner le fichier SnapShot .avhd et de le fusionner à son disque parent.

3) La ou les partitions des VMs sont corrompues (crash de disque par exemple)
Avec sauvegarde (qui conserve les sécurités sur les fichiers et répertoires)
-repartir de votre sauvegarde sur bande ou autre, vous n’aurez qu’à restaurer le répertoire de la VM sur la nouvelle partition.
-Attention ici les Shadow Copy ne sont pas disponible car les métadonnées se trouvaient sur le disque que l’on vient de perdre …

Avec sauvegarde (qui ne conserve pas les sécurités sur les fichiers et répertoires)
-utiliser la procédure suivante :
http://diskshadow.fr/microsoft/restauration-des-sauvegardes-de-vm-sous-hyperv.html

4) Restaurer un fichier ou un répertoire d’une VMs à partir de la partition parente (HyperV)
Il s’agit ici de monter le disque virtuel (.vhd) et de récupérer la donnée souhaitée.
-Sous HyperV R2 il suffit de passer par le gestionnaire de disque et de monter le vhd.
(Une fois la manipulation terminée démonter le disque)
-Sous HyperV V1 il faudra utiliser PowerShell

Attention : IMPORTANT
S’il y a manipulation des disques durs dans les répertoires de sauvegarde, il faut bien démonter tous les lecteurs après manipulation ! Si non la prochaine sauvegarde sera perturbée par des locks sur les fichiers (et ne pourra donc pas effectuer la rotation de répertoires).

Sur le serveur HyperV
Lancer la console PowerShell et le gestionnaire de disque de windows

Dans la console PowerShell
Lancer la commande pour monter le disque virtuel souhaité :
$VHDName = “T:\Sauvegarde\SRV-HYPERV\SRVTSE\Virtual Hard Disks\SRVTSE.vhd” (par exemple)

Lancer la commande pour faire appel au gestionnaire de disques virtuels de Windows
$VHDService = get-wmiobject -class “Msvm_ImageManagementService” -namespace “root\virtualization” -computername “.”

Lancer la commande pour Monter le disque dur :
$Result = $VHDService.Mount($VHDName)

S’il n’y a pas d’erreurs, allé dans le gestionnaire de disques, le disque virtuel doit être apparu
S’il est hors ligne, le mettre en ligne.
Une fois en ligne il faut assigner une lettre à la partition désirée.

Ne pas oublier de démonter le disque une fois l’opération terminée !

Anthony Hyper-V, Hyper-V v2, Microsoft, Procedure, Windows 2008, Windows 2008 R2 , , ,