默认安装的机器Marvell 88SE9230 SATA控制器中会有一个错误
解决方法:
1.BIOS开启iommu支持
2.ProxmoxVE系统中开启硬件直通与iommu
1.BIOS开启iommu支持
BIOS操作方法略过,但开启iommu有以下注意事项
描述
在HP ProLiant Gen10服务器(基于AMD)上并且使用启用了IOMMU的Intelligent Provisioning并安装任何版本的Microsoft Windows Server时,如果没有Microsoft的即时修复程序,操作系统将无法运行。
由于Windows的安装方式,通过F10功能安装的所有Windows Server OS版本都将失败。
范围
使用启用了IOMMU的Intelligent Provisioning并运行任何版本的Microsoft Windows Server的任何HP ProLiant Gen10服务器(基于AMD)。
解决方法
这是Microsoft和HPE的已知问题。
解决方法是,禁用IOMMU,照常安装Windows Server OS,然后从Microsoft应用所有必需的修补程序,然后在BIOS配置或Intelligent Provisioning BIOS设置(如果需要)中重新激活IOMMU
2.ProxmoxVE系统中开启硬件直通与iommu
1 | nano /etc/default/grub |
对于GRUB: 找到带有“ GRUB_CMDLINE_LINUX_DEFAULT”的行
对于systemd-boot(UEFI)创建用于systemd-boot的文件(格式为带有选项的单行)
Intel CPU
对于Intel CPU,添加intel_iommu=on iommu=pt
,例如:1
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
保存更改并更新grub:1
update-grub
或systemd-boot(UEFI):1
pve-efiboot-tool refresh
然后重新启动宿主机,从命令行运行1
dmesg | grep -e DMAR -e IOMMU
如果没有输出,则说明有问题。
AMD CPU
对于AMD CPU 添加amd_iommu=on iommu=pt
, 例如:1
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
更改并更新grub:1
update-grub
或systemd-boot(UEFI):1
2pve-efiboot-tool refresh
然后是修改/etc/modules文件
1 | nano /etc/modules |
添加如下内容1
2
3
4vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
然后重新启动宿主机,成功识别Marvell SATA控制器硬盘