默认安装的机器 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#
nano /etc/default/grub
对于 GRUB: 找到带有 “GRUB_CMDLINE_LINUX_DEFAULT” 的行
** 对于 systemd-boot (UEFI)** 创建用于 systemd-boot 的文件(格式为带有选项的单行)
Intel CPU#
对于 Intel CPU,添加intel_iommu=on iommu=pt
,例如:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
保存更改并更新 grub:
update-grub
或 systemd-boot (UEFI):
pve-efiboot-tool refresh
然后重新启动宿主机,从命令行运行
dmesg | grep -e DMAR -e IOMMU
如果没有输出,则说明有问题。
AMD CPU#
对于 AMD CPU 添加amd_iommu=on iommu=pt
, 例如:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
更改并更新 grub:
update-grub
或 systemd-boot (UEFI):
pve-efiboot-tool refresh
然后是修改 /etc/modules 文件#
nano /etc/modules
添加如下内容
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
然后重新启动宿主机,成功识别 Marvell SATA 控制器硬盘