HPE Gen10 Plus Marvell SATA控制器 PVE不识别硬盘解决方法

默认安装的机器 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

Copy
nano /etc/default/grub

对于 GRUB: 找到带有 “GRUB_CMDLINE_LINUX_DEFAULT” 的行
** 对于 systemd-boot (UEFI)** 创建用于 systemd-boot 的文件（格式为带有选项的单行）

Intel CPU

对于 Intel CPU，添加intel_iommu=on iommu=pt，例如：

Copy
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

保存更改并更新 grub：

Copy
update-grub

或 systemd-boot (UEFI)：

Copy
pve-efiboot-tool refresh

然后重新启动宿主机，从命令行运行

Copy
dmesg | grep -e DMAR -e IOMMU

如果没有输出，则说明有问题。

AMD CPU

对于 AMD CPU 添加amd_iommu=on iommu=pt, 例如:

Copy
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

更改并更新 grub:

Copy
update-grub

或 systemd-boot (UEFI)：

Copy
pve-efiboot-tool refresh

然后是修改 /etc/modules 文件

Copy
nano /etc/modules

添加如下内容

Copy
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

然后重新启动宿主机，成功识别 Marvell SATA 控制器硬盘