游乐游手机版
首页/系统平台/文章详情

Linux lsmod命令查看已加载内核模块

时间:2026-06-22 11:11
lsmod仅显示加载状态,无法确认是否在用、签名或硬件绑定,需结合dmesg、lspci、ethtool、modinfo等交叉验证。模块名不匹配、黑名单或签名问题可致lsmod遗漏,需其他命令深入排查。
lsmod 仅能展示模块的加载状态,但无法判断模块是否正在被使用、是否经过签名验证或与特定硬件绑定。要全面了解模块的真实状态,必须结合 dmesg、lspci、ethtool、modinfo 等命令进行交叉验证。
Linux怎么查看已加载的内核模块lsmod

lsmod 确实可以列出当前系统已加载的所有内核模块,然而仅凭这一命令,你无法判断模块是否真正处于使用状态、是否拥有有效签名,以及是否与具体硬件绑定。要获取这些深入信息,必须借助其他命令进行逐层排查。

为什么 lsmod 显示模块已加载却无法卸载?

常见场景:执行 rmmod nvidia 报错 Module nvidia is in use,可 lsmod | grep nvidia 的第三列明明显示 0。这到底什么情况?

  • Used by 0 仅表示没有其他模块显式引用该模块,但内核内部可能仍持有引用——例如 GPU 正在执行渲染任务、设备文件处于打开状态,或通过 try_module_get() 函数手动增加了引用计数。
  • 真实的占用信息通常隐藏在 dmesg 输出中。执行 dmesg | tail -20,检查是否出现类似 nvidia: module is in use 的提示。
  • 部分模块具有“常驻”特性,例如 kvm_intel——即使未运行任何虚拟机,它也会保持加载状态,Used by 列长期显示为 0,但尝试 rmmod 卸载时仍会报错。

lsmod | grep xxx 经常遗漏模块?试试这个更高效的匹配方法

直接拿 grep 搜模块名,容易掉坑里。原因不外乎几点:

  • 模块名称并不等同于驱动名称或文件名。例如,nvme_core.ko 文件加载后,在 lsmod 中显示的名称为 nvme_core,而非 nvme
  • 一个驱动程序通常由多个模块组成(例如 nvidianvidia_modesetnvidia_uvm),仅搜索主名称会遗漏其依赖模块。
  • grep 对大小写敏感,且不支持通配符——例如 lsmod | grep nvme* 不会产生任何有效结果。

更靠谱的做法是先提取第一列再过滤:

lsmod | awk '{print $1}' | grep -i -E '^(nvme|nvidia|kvm|kysec)'

如何确认模块真正生效?仅靠 lsmod 远远不够

lsmod 只告诉你“代码进了内存”,并不代表驱动已经绑定到设备,也不代表参数已经生效。

  • 检查硬件绑定:对于 PCI 设备,执行 lspci -k -s $(lspci | grep -i nvidia | cut -d' ' -f1) 查看 Kernel driver in use: 字段——这才是模块与硬件实际绑定的确凿证据。
  • 检查网卡驱动:使用 ethtool -i eth0 确认 driver 字段是否非空,不能仅凭 lsmod | grep e1000 就断定驱动已生效。
  • 验证模块参数是否成功加载:先执行 modinfo -p nvidia | grep NVreg_EnableGpuFirmware,然后对比 cat /sys/module/nvidia/parameters/NVreg_EnableGpuFirmware 的输出,若不一致则表示参数并未生效。
  • 检查安全模块状态:通过 lsmod | grep apparmor 看到模块存在还不够,还需运行 aa-status 确认安全策略已在执行,才能形成完整闭环。

lsmod 未显示预期模块?先排查这三个常见原因

如果预期模块没出现在 lsmod 输出中,别急着重装驱动。先按下面三步排查:

  • 模块是否根本未被加载?手动执行 sudo modprobe nvidia && lsmod | grep nvidia 进行测试,而非仅依赖开机自动加载——有时仅是加载条件未触发。
  • 模块是否被列入黑名单?执行 modprobe --showconfig | grep -A5 'blacklist nvidia',或检查 /etc/modprobe.d/*.conf 文件中是否存在 blacklist nvidia 这一行。
  • 模块签名验证不通过?当内核启用 CONFIG_MODULE_SIG_FORCE=y 时,未签名的模块会被静默拒绝加载。执行 dmesg | grep -i "signature",若出现 module verification failed 的提示,则模块自然不会出现在 lsmod 输出中。

lsmod 只是排查的起点,绝非终点。模块加载仅反映最表层的状态,真正影响系统行为的是:模块是否成功绑定设备、参数是否实际生效、签名是否被接受、依赖关系是否完整——这些深层信息必须借助其他命令逐层深入才能彻底掌握。

来源:https://www.php.cn/faq/2677778.html
上一篇Mac系统鼠标滚动方向怎么设置最顺手 下一篇银河麒麟如何修改用户头像完整步骤图解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送