要看内核里此刻到底加载了哪些模块,最直接、也最可靠的就是lsmod。它会读取/proc/modules,并输出模块名、大小(字节)以及Used by(引用计数和依赖模块)这些关键信息。不过要特别注意,Used by显示为0,并不等于这个模块就是空闲的;另外,模块名本身不带.ko后缀,而且大小写是严格区分的。真要做过滤,最好配合awk+grep正则来处理,这样更不容易漏掉目标。

Linux怎么查看具体的内核模块列表

直接用 lsmod 查当前已加载的模块

lsmod 是唯一能告诉你“此刻哪些模块真正在内核里跑着”的命令。它读的是 /proc/modules,不是磁盘上的文件列表,所以结果反映的是真实运行状态。

lsmod | grep 过滤时总找不到?注意模块名变体和大小写

直接 lsmod | grep nvme 可能漏掉 nvme_corenvme_pci,因为驱动常拆成多个关联模块。

确认模块是否“可用”而非“已加载”,用 modprobe -l

lsmod 只管内存里的,而 modprobe -l 列的是磁盘上所有预编译好的 .ko 文件路径,适合查“系统有这个模块但没加载”的情况。

模块加载失败?别只盯 lsmod,要配合 dmesg | tailmodinfo

lsmod 空了不代表没试过加载——失败的模块根本不会出现在里面。这时候得看内核日志和模块元数据。

真正难的不是列出模块,而是判断某个模块为什么没出现在 lsmod 输出里——它可能根本没被调用,可能加载失败被内核拒之门外,也可能被配置规则静默拦截。盯着 lsmod 本身,永远只能看到冰山浮出水面的那一角。
本文转载于:https://www.php.cn/faq/2979005.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。