Kopia VM na HyperV
Tworzenie kopii zapasowych maszyn wirtualnych to jeden z fundamentów bezpieczeństwa środowiska IT. Ja to robić aby się nie narobić ?

Kopia w Hyper-V

Tworzenie kopii zapasowych maszyn wirtualnych to jeden z fundamentów bezpieczeństwa środowiska IT. Jeśli korzystasz z wbudowanego w Windows Hyper-V, masz prostą i skuteczną metodę na ręczne wykonanie backupu — eksport maszyny wirtualnej.

Czym jest eksport maszyny wirtualnej w Hyper-V?

Eksport w Hyper-V to proces, który tworzy pełną kopię maszyny wirtualnej — jej konfiguracji, dysków wirtualnych (VHD/VHDX) oraz bieżącego stanu (jeśli VM jest wyłączona lub działa w trybie zapisów kontrolnych). Dzięki temu można później łatwo przywrócić maszynę na tym samym lub innym hoście Hyper-V.

To nie jest pełnoprawne rozwiązanie do backupu ciągłego, ale doskonale sprawdza się w wielu przypadkach:

  • przed aktualizacją systemu lub oprogramowania VM,
  • przed migracją maszyny na inny serwer,
  • jako doraźna kopia bezpieczeństwa.

Wymagania wstępne

Zanim przystąpisz do eksportu, upewnij się, że:

  • Na dysku docelowym masz wystarczająco dużo wolnego miejsca.
  • Maszyna nie wykonuje w tym czasie intensywnych operacji I/O (najlepiej ją wyłączyć lub użyć snapshotu).

1. Uruchom Menedżera Hyper-V

Otwórz „Menedżera Hyper-V” z menu Start lub virtmgmt.msc.

2. Wybierz maszynę do eksportu

Z listy maszyn wirtualnych kliknij prawym przyciskiem myszy tę, którą chcesz wyeksportować, i wybierz Eksportuj…

3. Wybierz lokalizację docelową

Wybierz folder, do którego mają zostać zapisane dane eksportowanej maszyny. Hyper-V utworzy w nim strukturę katalogów zawierającą:

  • plik konfiguracyjny maszyny,
  • pliki dysków wirtualnych,
  • dane stanu zapisanych (jeśli są w użyciu).

4. Rozpocznij eksport

Kliknij Eksportuj i poczekaj na zakończenie procesu. Czas operacji zależy od rozmiaru dysków VM i wydajności hosta.

Rozwiązanie to nadaje się idelanie na okresową kopię całość maszyny.

Jest tylko jeden problem – duzo maszyn – duzo klikania.

Całość można uprościć skryptem Powershell , który ładnie zapyta które maszyny chcemy zgrać i gdzie.


function Check-7Zip {
    return (Get-Command "7z.exe" -ErrorAction SilentlyContinue) -ne $null
}

$has7zip = Check-7Zip

if (-not $has7zip) {
    Write-Host "  7-Zip (7z.exe) nie jest dostepny w PATH. Kompresja zostanie pominieta." -ForegroundColor Yellow
}

# Pobierz wszystkie maszyny wirtualne
$allVMs = Get-VM
$selectedVMs = $allVMs | Out-GridView -Title "Wybierz maszyny do eksportu" -PassThru

if (-not $selectedVMs) {
    Write-Host "Nie wybrano zadnych maszyn. Zakonczono." -ForegroundColor Yellow
    exit
}

$destinationPath = Read-Host "Podaj sciezka docelowa dla eksportu (np. D:\VMExport)"
if (-not (Test-Path $destinationPath)) {
    Write-Host "Tworze katalog $destinationPath" -ForegroundColor Cyan
    New-Item -ItemType Directory -Path $destinationPath -Force | Out-Null
}

# Eksport i kompresja
foreach ($vm in $selectedVMs) {
    $vmExportPath = Join-Path -Path $destinationPath -ChildPath $vm.Name
    Write-Host "Eksportuję: $($vm.Name) -> $vmExportPath" -ForegroundColor Green
    Export-VM -Name $vm.Name -Path $vmExportPath

    if ($has7zip) {
        $zipPath = "$vmExportPath.7z"
        Write-Host "Kompresuje do: $zipPath" -ForegroundColor Cyan
        & 7z a -t7z -mx=9 $zipPath "$vmExportPath\*" | Out-Null
        Write-Host "Skompresowano do $zipPath" -ForegroundColor Green

        # (Opcjonalnie) usun oryginalny folder po kompresji
        # Remove-Item -Path $vmExportPath -Recurse -Force
    }
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *