Ubuntu 24.04 DMAR IOMMU 报错修复
📝 问题处理笔记:Ubuntu 24.04 DMAR IOMMU 报错修复
1️⃣ 现象描述
- 系统:Ubuntu 24.04.3 LTS(内核 6.8)
- 硬件:Dell 服务器,板载 Intel X722 万兆网卡(PCI 地址
3d:00.0,驱动i40e) - 启动/运行时持续输出内核日志报错:
DMAR: DRHD: handling fault status reg DMAR: [DMA Write NO_PASID] fault addr ... Request device [3d:00.0] fault reason 0xff (Unknown) - 系统虽能进入登录界面,但报错频繁,影响观感且可能造成性能损耗。
2️⃣ 根因分析
- IOMMU(VT-d)与 Intel X722 网卡驱动(i40e)存在兼容性问题,导致网卡发起的 DMA 写操作被 IOMMU 拦截并报告未知错误(fault reason 0xff)。
- 该问题常见于较新内核(6.8)搭配旧版固件/驱动,属于软件兼容性冲突,非硬件故障。
3️⃣ 解决方案
通过修改 GRUB 启动参数,将 IOMMU 设置为直通模式(passthrough),避免不必要的 DMA 重映射检查。
操作步骤
- 编辑 GRUB 配置文件:
sudo nano /etc/default/grub - 找到
GRUB_CMDLINE_LINUX_DEFAULT行,修改为:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=off iommu=pt"参数解释:
intel_iommu=off:关闭 Intel IOMMU(保持关闭)iommu=pt:将 IOMMU 设置为直通模式,允许设备绕过 IOMMU 的重映射检查,直接进行 DMA 操作
- 保存退出(
Ctrl+O→ 回车 →Ctrl+X)。 - 更新 GRUB 配置并重启:
sudo update-grub sudo reboot
备选方案(若直通模式仍无效)
- 完全禁用 IOMMU:
intel_iommu=off - 或仅禁用集成显卡 IOMMU:
intel_iommu=igfx_off
4️⃣ 验证结果
- 重启后系统正常运行,DMAR 报错消失(可通过
dmesg | grep DMAR确认)。 - 网络功能正常,网卡工作稳定。
- 无需更换硬件或额外安装驱动。
5️⃣ 注意事项
- 该修改适用于不需要 IOMMU 严格隔离的场景(如普通服务器、NAS、Web 服务等)。如果后续需要使用 PCI 直通(Passthrough)给虚拟机,建议保留
intel_iommu=on并尝试更新网卡固件/驱动来彻底解决兼容性问题。 - 若需回退,只需删除
/etc/default/grub中添加的参数,重新update-grub并重启即可。
6️⃣ 参考资料
- Intel X722 网卡驱动
i40e官方说明 - Ubuntu 社区相关讨论:https://askubuntu.com/questions/tagged/dmariommu(示例,实际请自行搜索)
留待后查,同时方便他人
联系我:ivesbao@163.com
联系我:ivesbao@163.com

浙公网安备 33010602011771号