Такс, следующим этапом после установки proxmox необходимо настроить проброс реальных устройств в виртуальные машины.
ㅤ
Проброс устройств подразумевает — устройства которые подключены к материнской плате на хостовой машине. Например, видюха, модемы и т.п. То есть виртуальные машины смогут их использовать.
Если устройство проброшено в виртуальную машину, то ни хостовая машина ни другие виртуальные машины использовать это устройство не смогут. Короче устройство будет изолировано.
У меня таким боком прокинут рутокен в виндовую виртуалку, чтобы в ЭДО доки подписывать с любого устройства и из любой жопы мира.
Открываем на редактирование файл:
/etc/default/grubИ правим
GRUB_CMDLINE_LINUX_DEFAULT, должно получиться так:Если у тебя Intel:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pt=on"
Если у тебя AMD
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on pt=on"
iommu=on — включает IOMMU (Input-Output Memory Management Unit) для процессоров. Этот механизм позволяет изолировать устройства ввода-вывода, повышая безопасность и управление памятью.
pt=on — включает поддержку PCI passthrough для виртуализации, позволяя передавать устройства (например, видеокарты или другие PCI-устройства) непосредственно в виртуальные машины.
Сохраняем изменения и обновляем загрузчик:
update-grub
reboot
По-хорошему proxmox нужно отправить в перезагрузку, но это не точно. В любом случае для чистоты эксперимента я все же ребучу.
Загружаем модули:
Открываем на редактирование:
/etc/modulesИ прописываем:
vfio
vfio_iommu_type1
vfio_pci
С версии ядра 6.2 модуль vfio_virqfd больше нахуй не нужен.
Сохраняем и запускаем:
update-initramfs -u -k all
reboot
Здесь обязательно нужен ребут, без ребута нихуя НЕ заработает!
Проверяем:
dmesg | grep -e DMAR -e IOMMU or dmesg | grep -e DMAR -e IOMMU
И ищем строчку:
Interrupt remapping enable Если нашел, то поздравляю, у тебя всё получилось! Если же нет, то еще раз внимательно выполни все шаги и не забудь про ребут.
На закуску
Чтобы изолировать GPU карточку от хостовой системы, нужно еще с бубном побегать.
lspci -nn
Узнаём ID карточки, а дальше подставляем этот ID в эту команду:
echo "options vfio-pci ids=10de:____,10de:____ disable_vga=1" > /etc/modprobe.d/vfio.conf
И пиздярим блеклисты:
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia_drm" >> /etc/modprobe.d/blacklist.conf
echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf
Ну и само собой отправляем proxmox в ребут.
Проброс HDD
ls -n /dev/disk/by-id/
Узнаём ID диска и выполняем команду:
/sbin/qm set [VM-ID] -virtio2 /dev/disk/by-id/[DISK-ID]
Вот и вся наука. Всё лично протестировано и работает как часы, включая проброс видюхи.
Если есть чего добавить, велком в комменты.
🛠 #proxmox #devops
—
✅ @bashdays / @linuxfactory / @blog