modprobe和lsmod命令配合使用

时间:2022-07-10 22:30:25
modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。
modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。

语法
modprobe(选项)(参数)
选项
-a或--all:载入全部的模块;
-c或--show-conf:显示所有模块的设置信息;
-d或--debug:使用排错模式;
-l或--list:显示可用的模块;
-r或--remove:模块闲置不用时,即自动卸载模块;
-t或--type:指定模块类型;
-v或--verbose:执行时显示详细的信息;
-V或--version:显示版本信息;
-help:显示帮助。

参数 模块名:要加载或移除的模块名称。
实例
查看modules的配置文件: modprobe -c
这里,可以查看modules的配置文件,比如模块的alias别名是什么等。会打印许多行信息,例如其中的一行会类似如下: alias symbol:ip_conntrack_unregister_notifier ip_conntrack

列出内核中所有已经或者未挂载的所有模块: modprobe -l
这里,我们能查看到我们所需要的模块,然后根据我们的需要来挂载;其实modprobe -l读取的模块列表就位于/lib/modules/`uname -r`目录中;其中uname -r是内核的版本,例如输出结果的其中一行是: /lib/modules/2.6.18-348.6.1.el5/kernel/net/netfilter/xt_statistic.ko
挂载vfat模块: modprobe vfat
这里,使用格式modprobe 模块名来挂载一个模块。
挂载之后,用lsmod可以查看已经挂载的模块。

lsmod lsmod命令内核与模块管理 lsmod命令用于显示已经加载到内核中的模块的状态信息。执行lsmod命令后会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时再分别载入。

模块名是不能带有后缀的,我们通过modprobe -l所看到的模块,都是带有.ko或.o后缀。

移除已经加载的模块: modprobe -r 模块名
这里,移除已加载的模块,和rmmod功能相同。

modprobe -l 查看所有可用模块
modprobe -l |grep '8021q'

[#]modprobe -l |grep '8021q'
kernel/net/8021q/8021q.ko
8021q模块可以用

modprobe 8021q 加载8021q模块

[root@sys172 ~]# lsmod |grep '8021q' 用lsmod查看是否加载成功
8021q 25349 0
garp 7152 1 8021q

modprobe -r 8021q 卸载8021q模块

 还有一个命令也是加载模块insmod
但是与modprobe不同的是 必须要加模块所在的绝对路径