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