středa 4. ledna 2012

Manuální obnova HYPER-V virtuálních počítačů

Zcela na úvod se musím zmínit, že následující rady nejsou firmou Microsoft oficiálně doporučovány a podporovány a že vše bylo odzkoušeno v prostředí MS Windows 2008 SP2.

Oficiálně podporovaná záloha HYPER-V virtuálních počítačů je provedení EXPORTu a následného IMPORTu.
Takže pokud se Vám stane, že Vám kolega bez přemýšlení odinstaluje HYPER-V a virtuální počítače následně překopíruje (s tvrzením, dyť jsem vše za-zálohoval), tak jste postaveni při obnově před problém, co s tím ?

Pokud nemáte u virtuálního počítače udělán SNÍMEK (SNAPSHOT) a pamatuje si konfiguraci virtuálního počítače, tak nejsnadnější cesta je virtuální počítač překopírovat a vytvořit znovu konfiguraci virtuálního počítač (virtuální disk nevytvářet, ale přimapovat).

A pak ho už zbývá jen spustit.

Ale problém nastane, když součástí virtuálního počítače byl jeden nebo více snímků (SNAPSHOT).
Co s tím ?
No a k tomu slouží následující okomentovaný script:




@echo off
cls
rem ******************************************************************************
rem *
rem * Manualne prida HYPER-V Virtualni pocitac za zalohy, kdyz nebyl roveden EXPORT
rem *
rem ******************************************************************************
rem podle http://eniackb.blogspot.com/2009/05/how-to-recover-hyper-v-virtual-machine.html
rem http://blogs.msdn.com/robertvi/archive/2008/12/19/howto-manually-add-a-vm-configuration-to-hyper-v.aspx
rem autor Petr Jelinek, ze dne 3.5.2010
rem
rem Struktura adresare virtualniho pocitace
rem ***********************************************************
rem e:\Virtual_Machines\jmeno-virt-pocitace\
rem pro konfiguraci ... e:\Virtual_Machines\jmeno-virt-pocitace\Virtual MAchines
rem pro virtual disk ... e:\Virtual_Machines\jmeno-virt-pocitace\Virtual Hard Disks
rem pro snapshot ... e:\Virtual_Machines\jmeno-virt-pocitace\Snapshots
SETLOCAL
rem ==================== > zacatek vyplnovani <====================
rem ZDE SE DEFINUJI PROMENE PRO OBNOVU VIRTUALNIHO POCITACE
rem definuje GUID virtualniho pocitace
set VMGUID=E9C46044-A4AA-4B43-83AF-2518049A9EA5

rem definuje cestu na adresar virtualniho pocitace - prideleni prav
set VMConfigPath=e:\Virtual_Machines\104.WIN2008R2\

rem definuje GUID pro snapshot 1
set VMSNP1GUID=F9D57155-B5BB-5B54-94BA-3619150A0FB6
rem definuje GUID pro snapshot 2
set VMSNP2GUID=
rem definuje GUID pro snapshot 3
set VMSNP3GUID=
rem ==================== > konec vyplnovani <====================
rem automaticky doplnene promene
set VMConfigPathVM=%VMConfigPath%Virtual Machines\
set VMSNP1path=%VMConfigPath%Snapshots\
set VMSNP2path=%VMConfigPath%Snapshots\
set VMSNP3path=%VMConfigPath%Snapshots\

echo OPRAVDU NASTAVIT MANUALNE Hyper-V VIRTUALNI POCITACE ?
echo ----------------------------------------------------------
echo .
echo .
echo GUID virtualniho pocitace je: %VMGUID%
echo cesta na virtualni pocitac je: %VMConfigPath%
echo cesta konfig. virt. pocitace: %VMConfigPathVM%
echo .
echo cesta na SNAPSHOT 1 je: %VMSNP1path%
echo ID pro SNAPSHOT 1 je: %VMSNP1GUID%
echo .
echo cesta na SNAPSHOT 2 je: %VMSNP2path%
echo ID pro SNAPSHOT 2 je: %VMSNP2GUID%
echo .
echo cesta na SNAPSHOT 3 je: %VMSNP3path%
echo ID pro SNAPSHOT 3 je: %VMSNP3GUID%
echo .
echo .
echo .
echo . Pred 1. spustenim nutno nastavit sitovou kartu v konfiguraci HYPER-V VIRTUALNIHO POCITACE
echo .
echo .
pause
CLS
rem Vytvori SYMBOLIC LINK na "C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines"
rem ------------------------------------------------------------------------------------------
rem priklad: mklink <GUID>.XML <VMConfigPath.XML>
Mklink "%systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\%VMGUID%.xml" "%VMConfigPathVM%%VMGUID%.xml"
echo .
rem Prida pristupove prava servisni SID na SYMBOLIC LINK
rem Now give access permissions to the service SID to this Symbolic link
rem --------------------------------------------------------------------
icacls "%systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\%VMGUID%.xml" /grant "NT VIRTUAL MACHINE\%VMGUID%":(F) /L

echo .
rem Prida prava pristupova prava servisni SID na vsechny soubory v adresari
rem -----------------------------------------------------------------------
icacls %VMConfigPath% /T /grant "NT VIRTUAL MACHINE\%VMGUID%":(F)
echo .
rem SNAPSHOT 1 - Vytvori SYMBOLIC LINK a prida prava souborum
rem ---------------------------------------------------------
echo .
IF "%VMSNP2GUID%" == "" GOTO :PRESKOCSNAP3
Mklink "%systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%VMSNP1GUID%.xml" "%VMSNP1path%%VMSNP1GUID%.xml"
Icacls %systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%VMSNP1GUID%.xml /grant "NT VIRTUAL MACHINE\%VMGUID%":(F) /L

echo .
rem SNAPSHOT 2 - Vytvori SYMBOLIC LINK a prida prava souborum
rem ---------------------------------------------------------
IF "%VMSNP2GUID%" == "" GOTO :PRESKOCSNAP3

Mklink "%systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%VMSNP2GUID%.xml" "%VMSNP2path%%VMSNP2GUID%.xml"

Icacls %systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%VMSNP2GUID%.xml /grant "NT VIRTUAL MACHINE\%VMGUID%":(F) /L

:PRESKOCSNAP2
echo .
rem SNAPSHOT 3 - Vytvori SYMBOLIC LINK a prida prava souborum
rem ---------------------------------------------------------
IF "%VMSNP3GUID%" == "" GOTO :PRESKOCSNAP3
Mklink "%systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%VMSNP3GUID%.xml" "%VMSNP3path%%VMSNP3GUID%.xml"

Icacls %systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%VMSNP3GUID%.xml /grant "NT VIRTUAL MACHINE\%VMGUID%":(F) /L

:PRESKOCSNAP3
echo .
rem RESTART HYPER-V MANAGER
rem -----------------------
NET STOP vmms
NET START vmms
rem SMAZE PROMENE
rem -------------
SET GUID=
SET VMConfigPath=
SET VMConfigPathVM=
SET VMSNP1path=
SET VMSNP1GUID=
SET VMSNP2path=
SET VMSNP2GUID=
SET VMSNP3path=
SET VMSNP3GUID=
ENDLOCAL

Žádné komentáře:

Okomentovat