默认安装的机器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控制器硬盘

最后修改:2024 年 01 月 20 日
如果觉得我的文章对你有用,请随意赞赏