Jak przenieść maszyny wirtualne z Hyper-V do Proxmox – prosty przewodnik krok po kroku

Jak przenieść maszyny wirtualne z Hyper-V do Proxmox – prosty przewodnik krok po kroku

Migracja maszyn wirtualnych pomiędzy różnymi środowiskami wirtualizacji może wydawać się skomplikowana. Na szczęście dzięki przygotowanemu skryptowi hv2pve cały proces przenoszenia maszyn z Hyper-V do Proxmoxa staje się dużo prostszy. W tym wpisie pokażę Ci, jak przygotować środowisko i krok po kroku przeprowadzić migrację.

1. Wymagania wstępne – zanim rozpoczniesz

Na początek ściągnij pliki z naszego repozytorium https://github.com/blackrack/hv2pve. Musisz dostosować plik konfiguracyjny env.json, w którym definiujesz wszystkie potrzebne parametry. Oto przykładowe ustawienia, które musisz zmienić:

"HYPERV_IP": "192.168.100.129",
"HYPERV_USER": "administrator",
"HYPERV_PASS": "TwojeHaslo",
"HYPER_VM_LIST": [
  "UUID_maszyny_1",
  "UUID_maszyny_2"
],
"HYPERV_AUTO_SHAREDISK": true,
"HYPERV_SHAREDISK_MAPPING": [
  {
    "C:/VMDisks": "VMDisks",
    "PROXMOX_STORAGE": "data"
  },
  {
    "E:/VMDisksSSD": "VMDisksSSD",
    "PROXMOX_STORAGE": "space"
  }
],
"PROXMOX_IP": "192.168.100.252",
"PROXMOX_USER": "root",
"PROXMOX_PASS": "TwojeHaslo",
"PROXMOX_MOUNTPATH": "/root/tmp",
"PROXMOX_IMPORTPATH": "/root/import",
"PROXMOX_STORAGE": "data",
"PROXMOX_SWITCH_DEFAULT": "vmbr0",
"PROXMOX_SWITCH_MAPPING": {
  "UUID_switcha": "vmbr1"
},
"PROXMOX_NETWORK_TYPE": "e1000",
"PROXMOX_START_AFTER": true,
"PROXMOX_IMPORT_ONCE": false

💡 Uwaga: UUID maszyn i switchy z Hyper-V możesz podejrzeć w menedżerze Hyper-V lub skryptem.

2. Przygotowanie systemów do migracji

W katalogu prep_script znajdziesz trzy pomocnicze skrypty, które należy wykonać:

  • prep_hyper-v.ps – uruchamiasz na maszynie z Hyper-V, przygotowuje środowisko.
  • debian.sh – uruchamiasz na maszynach wirtualnych z systemem Debian lub pochodnym.
  • rocky.sh – uruchamiasz na maszynach z rodziny RHEL (np. Rocky Linux).

Dodatkowo:
➡️ W maszynach z systemem Windows, w Hyper-V Manager, dodaj w zakładce „Notes” wpis os:windows.

Hyper-V Manager

3. Przygotowanie środowiska na maszynie z Proxmox

  1. Utwórz wirtualne środowisko Pythona:
    python3 -m venv ./venv
    
  2. Aktywuj środowisko:
    source ./venv/bin/activate
    
  3. Zainstaluj wymagane biblioteki:
    pip install -r req.txt
    
  4. Uzupełnij plik env.json zgodnie z wcześniejszym opisem.
  5. Wykonaj weryfikację przed migracją:
    make dryrun
    

4. Uruchomienie migracji

Jeśli wszystko gotowe, wystarczy uruchomić migrację:

  • Migracja standardowa:
    make run
    
  • Tryb debugowania (gdy chcesz prześledzić cały proces krok po kroku):
    make debug
    

Skąd wziąć potrzebne dane do env.json?

1. UUID maszyn wirtualnych (HYPER_VM_LIST)

UUID każdej maszyny znajdziesz w PowerShellu na hoście Hyper-V. Wpisz:

Get-VM | Select-Object Name, Id

Zobaczysz listę maszyn i ich identyfikatorów. Przykład:

Name Id
winSerwer 8de199b6-d858-45d6-81ef-55eb7a3dbf6f
debianHost 62ac9e25-800c-4546-a97e-7f6141bf9ea4

Skopiuj te identyfikatory do sekcji HYPER_VM_LIST.

ID maszyn wirtualnych Hyper-V w Powershell

 2. UUID przełączników Hyper-V (PROXMOX_SWITCH_MAPPING)

Aby sprawdzić identyfikatory switchy, użyj:

Get-VMSwitch | Select-Object Name, Id

Przykład:

Name Id
ExternalNIC f3f8527d-2d64-4636-a1b4-bf84d2816fbd

W PROXMOX_SWITCH_MAPPING możesz przypisać te switche do odpowiednich bridge’ów w Proxmoxie, np. vmbr1, vmbr2.

Mapowanie przełączników Hyper-V w PowerShell

3. Jak sprawdzić dostępne bridge w Proxmoxie?

Zaloguj się do Proxmoxa i w konsoli sprawdź dostępne mostki sieciowe:

cat /etc/network/interfaces

Szukaj wpisów typu:

auto vmbr0
iface vmbr0 inet static
    ...

To właśnie te nazwy (vmbr0, vmbr1 itd.) wykorzystujesz w konfiguracji.

4. Jak działa mapowanie dysków (HYPERV_SHAREDISK_MAPPING)?

Jeśli masz kilka fizycznych lub logicznych lokalizacji dysków na Hyper-V (np. C:\VMDisks i E:\VMDisksSSD), możesz przypisać każdy do konkretnego storage w Proxmoxie (np. data, space).

To pozwala np. migrować dyski SSD na szybki storage w Proxmoxie.

Przykład:

{
  "C:/VMDisks": "VMDisks",
  "PROXMOX_STORAGE": "data"
}

Znaczy to: dyski z C:\VMDisks mają trafić do storage data w Proxmoxie.

5. Co to jest PROXMOX_IMPORTPATH i PROXMOX_MOUNTPATH?

  • PROXMOX_MOUNTPATH: lokalizacja tymczasowa, gdzie Proxmox zamontuje udział sieciowy z Hyper-V.
  • PROXMOX_IMPORTPATH: katalog, gdzie trafiają przekonwertowane obrazy .qcow2 przed finalnym zaimportowaniem.

Przydatne wskazówki

  • Przed właściwym uruchomieniem zawsze zrób make dryrun. Dzięki temu sprawdzisz, czy wszystko dobrze skonfigurowane.
  • Jeśli coś pójdzie nie tak, użyj make debug — zobaczysz szczegółowe logi.
  • Maszyny Windows wymagają specjalnego oznaczenia: dodaj w polu „Notes” wartość os:windows, aby skrypt poprawnie rozpoznał typ systemu.

Podsumowanie

Migracja maszyn z Hyper-V do Proxmoxa nie musi być trudna. Dzięki automatyzacji i dobrze przygotowanemu skryptowi hv2pve możesz przeprowadzić cały proces sprawnie i bez zbędnego stresu. Jeśli zadbasz o poprawną konfigurację i przygotowanie środowisk, wszystko powinno pójść gładko!

Masz pytania lub chcesz podzielić się swoimi doświadczeniami z migracją? Skontaktuj się z nami!