Миграция виртуальной машины с Hyper-V на Proxmox

Задача у меня сложилась историческая. На работе был сервак с hyper-v со всем вытекающими. Обновили его, но я настоял чтобы было что-то нормальное, более гибкое и быстрое. Выбрали Proxmox по тысяче причин. Теперь надо перетаскивать, чем и займёмся.

  1. Для начала надо помнить, что винда ничего не знает про Virtio устройства. А значит на каждой виртуалке надо поставить драйвера. Заходим, качаем, устанавливаем Windows VirtIO Drivers — Proxmox VE
  2. Выключаем ВМ и сливаем все контрольные точки. Проверяем в параметрах машины, чтобы пусть к файлу диска вёл к конечному vhd(x) файлу.
  3. Монтируем папку с файлом диска на хосте с proxmox: mount -t cifs -o username=<username>,password=<password> //<hostname-or-ip>/<folder> /mnt/vm
  4. создаём новую виртуальную машину, с параметрами:
    • OS: Do not use any media; Windows guest OS
    • System: OVMF (UEFI) bios; EFI disk; device q35
    • Disks: оставляем без изменений, но размер ставим 1GB
    • Проц, память и сеть — по выбору
  5. Из консоли Хоста импортируем vhd(x) в машину: qm disk import <VM ID> /<путь до файла vhdx> <хранилище>(например, local-lvm)
  6. В интерфейсе Proxmox в параметрах ВМ, в разделе Hardware, дважды кликаем на Unused disk 0 и выбираем ide/sata -> add
  7. В разделе Options выбираем пункт Boot options, включаем галкой наш IDE/SATA диск и двигаем его в самый верх.
  8. Запускаем VM. Windows установит нужные драйверы для Virtio (у нас подключен 1 SCSI диск на 1 Гб)
  9. Затем выключаем ВМ. В Hardware отключаем диск на 1 ГБ, а наш диск переделываем на SCSI и подключаем вновь.
  10. Также необходимо отредактировать раздел Option->Boot order чтобы машина загружалась с нужного диска.
  11. Перезагружаемся и убеждаемся, что всё работает.