Proxmox: PCI(e) Passthrough / IOMMU
Проброс устройств напрямую в виртуальную машину.
- Проверяем в BIOS, должны быть включены настройки для VT-d/AMD-d CPU, обычно это что-то вроде «Enable Virtualization Technology» или «Intel Virtualization Technology for Directed I/O (VT-d.)» или «AMD-Vi» или «IOMMU»
- Проверяем что у нас используется для загрузки командой
efibootmgr -v
если получаем что-то вроде «File(\EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI)» - значит это не GRUB а EFI
- Если в Proxmox используется GRUB то в /etc/default/grub добавляем строки ниже, потом запускаем
update-grub2
- Intel: GRUB_CMDLINE_LINUX_DEFAULT=«quiet intel_iommu=on iommu=pt»
- AMD: GRUB_CMDLINE_LINUX_DEFAULT=«quiet amd_iommu=on iommu=pt»
- Если у нас ZFS то в /etc/kernel/cmdline добавляем строки ниже, потом запускаем
pve-efiboot-tool
- Intel: root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet intel_iommu=on iommu=pt
- AMD: root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet amd_iommu=on iommu=pt
- Добавляем модули ядра в /etc/modules строки:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
и потом запускаем
update-initramfs -u -k all
- Перезагружаем Proxmox
- Добавляем устройство в свойствах VM через Hardware → Add → PCI Device, выбираем нужное устройство и перезагружаем виртуальную машину (если она включена)