惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
Y
Y Combinator Blog
博客园 - 【当耐特】
V
Visual Studio Blog
GbyAI
GbyAI
V
V2EX
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
A
About on SuperTechFans
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
量子位
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件

博客园 - Hey,Coder!

微信小程序 web方案实现调音器功能 systemctl slice配置docker最大占用cpu 内存 pipenv环境变量配置 .net8验证码 数据库差异对比工具 docker部署prometheus grafana pgexporter Alertmanager ubuntu24 换源 ssh配置 ubuntu24 Harbor部署 ubuntu24 kvm部署 cockpit web管理界面 .net api代理 uniapp iOS App 上架 vs文件软链接 Docker 网络别名 .net8通用中间件处理公共返回值结构 .net环境下OpenTelemetry Body 读取注意事项 jaeger界面显示异常 .net opentelemetry collector jaeger c# opentelemetry 自定义export c# opentelemetry 自定义export c# 生成对象的初始化代码 Elasticsearch ILM 与 Data Stream 概念及实例说明文档 portainer httphelper封装 Ocelot + Consul + SignalR 粘性会话 正交软件架构 docker postgresql17 主从复制 rabbitmq总结与c#示例 docker rabbitmq quartz dashboard docker consul registrator 服务自动注册consul 微服务动态扩容
Ubuntu 24.04 DMAR IOMMU 报错修复
Hey,Coder! · 2026-08-14 · via 博客园 - Hey,Coder!

📝 问题处理笔记: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 重映射检查。

操作步骤

  1. 编辑 GRUB 配置文件:
    sudo nano /etc/default/grub
    
  2. 找到 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 操作
  3. 保存退出(Ctrl+O → 回车 → Ctrl+X)。
  4. 更新 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️⃣ 参考资料