mardi 16 janvier 2018

Déplacement VHDX Linux Gen2 VM Hyper-V

Tu as une machine virtuelle Hyper-V de Génération 2 avec un OS Linux en boot UEFI.

Tu souhaites copier la VHDX pour utiliser sur une autre VM (templates, clones ..) mais l'OS de démarre pas, aucune partition bootable n'est trouvée.

Utilise l'ISO de ta distribution pour booter en rescue mode, charge la parition root et boot, lance un shell dans cet environnement et :

cd /boot/efi/EFI
cp –r distrib_linuxboot
cd boot
mv grubx64.efi bootx64.efi

Quitte et reboot !



mercredi 10 janvier 2018

Mise à jour services d'intégration Hyper-v avec une VM Exchange

Tu as une VM Hyper-v Exchange 2013 / 2016
Tu mets à jour les services d'intégration HYPER-V de la VM
Tu reboot... et c'est le drame

Le démarrage reste bloqué sur "préparation de la configuration ordinateur"
Après une bonne demi-heure tu peux ouvrir péniblement une session local, il n'y a plus de carte réseau. En accédant au gestionnaire de périphérique tu peux supprimer et réinstaller la carte avec les anciens pilote. Il faudra la reconfigurer.

Pour gagner du temps il est possible de suivre cette procédure:

http://blog.scng.si/exchange-server-vm-becomes-unresponsive-while-updating-hyper-v-integration-services/

Le problème est connu, la mise à jour des services d'intégration est bloqué, notamment le pilote de la carte réseau,  par les services Exchange.

Voici la procédure à suivre avant de faire cette mise à jour :

1- Arrêter les services Exchange et les configurer en manuel
2- Mettre à jour les services d'intégration Hyper-V
3- Redémarrer
4- Redémarrer les services Exchange et les reconfigurer en Automatique

Il semblerait que ce soit le service MSExchangeADTopology qui pose vraiment problème.

Get-Service | Where-Object { $_.DisplayName -like "*Exchange*" } | ft Name,Status
Get-Service | Where-Object { $_.DisplayName –like “*Exchange*” } | Stop-Service
Get-Service | Where-Object { $_.DisplayName –like “*Exchange*” } | Set-Service –StartupType Disable
Get-Service | Where-Object { $_.DisplayName –like “*Exchange* } | Set-Service –StartupType Automatic
Get-Service | Where-Object { $_.DisplayName –like “*Exchange*” } | Start-Service