想着研究一下PVE硬件直通,想着今天用不到说不定哪天就用到了,到时候现翻资料麻烦,本以为打开PCI直接添加硬件就行呗,谁知添加完虚拟机无法启动,显示:TASK ERROR: cannot prepare PCI pass-through, IOMMU not present
错误。
我在一开始添加时就看到了IOMMU警告:No IOMMU detected, please activate it.See Documentation for further information
,反正不懂英文,一看是个还是黄色,以为顶多就是个不痛不痒的警告也没在意,所以就直接添加核显了,谁知这个警告还真管事,添加了但启动不了虚拟机。
硬件支持
首先机翻一下那个警告:未开启IOMMU,请设置开启激活,更多有关更多信息,请参阅文档。也就是说没开启IOMMU,无法添加直通。然后就开始着手查找学习。
首先要确定你的CPU与主板是否支持VT-D,并且你要在BIOS里开启VT-D等相关功能。具体CPU前往英特尔或AMD官网查询是否支持即可。比如我的N100,查询到支持VT-D。主板嘛,我这是小主机,都是商家定制的,也没有个品牌,也就没法查,就直接操作开启IOMMU,就想着如果成功,就说明硬件都支持,没成功就是主板不支持。我想只要不是老古董大都应该支持。
开启IOMMU
SSH下编辑grub。
vi /etc/default/grub
找到以下内容。
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
在quiet
后面增加intel_iommu=on
,即:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
如果是AMD的CPU,则将intel
替换成amd
。
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
修改完执行以下命令更新grub。
update-grub
更新完毕后重启PVE。
reboot
添加硬件直通
重启后再次添加直通即可看到IOMMU警告消失,可以正常添加硬件直通。