Linux kernel 获取特定模块使用的所有内核模块的名称

Linux kernel 获取特定模块使用的所有内核模块的名称,linux-kernel,Linux Kernel,在lsmod命令的输出中,“由列使用”有时没有模块使用的内核模块的名称。例如,考虑下面的部分输出 LSOMD 命令: 所使用的模块大小 xen_blkfront 16512 4 ext3 137007 1 jbd 54383 1 ext3 mbcache 7438 1 ext3 在上面的输出中,ext3模块由1个模块使用,但其名称不在那里。类似地,xen_blkfront模块由4个模块使用,但这些模块没有名称。但是,ext3模块使用jdb和mbcache模块。那么,有没有办法获取这些丢失的模

lsmod命令的输出中,“由列使用”有时没有模块使用的内核模块的名称。例如,考虑下面的部分输出<强> LSOMD 命令:

所使用的模块大小 xen_blkfront 16512 4 ext3 137007 1 jbd 54383 1 ext3 mbcache 7438 1 ext3

在上面的输出中,ext3模块由1个模块使用,但其名称不在那里。类似地,xen_blkfront模块由4个模块使用,但这些模块没有名称。但是,ext3模块使用jdbmbcache模块。那么,有没有办法获取这些丢失的模块名

我之所以需要它,是因为内核不允许我对rmmodext3模块说“错误:模块ext3正在使用”。

Used by列不仅显示引用模块的数量,还显示任何内核代码引用模块的次数

对于文件系统和设备驱动程序,这通常在打开文件/设备时发生


没有跟踪这些引用的来源。

您是否尝试过装载任何使用ext3的文件系统?当然,如果可能的话(如果不是根fs)?好像内核在使用它。谢谢你的回复。在这里,我提到ext3只是作为模块的一个例子来说明我的观点。我想知道是否有一种方法可以知道模块的名称。谢谢你的回复。那么,有没有办法删除这样一个模块,因为到目前为止,当我尝试使用rmmod命令从内核卸载模块时,它给了我一个错误。关闭那些文件/设备。我关闭了使用该模块的设备,并且我能够卸载该模块。谢谢CL的帮助。你知道什么可以使
iptable.*
模块被引用吗?我能够卸载这些模块好几次(表不是空的),但现在不行。这次引用计数是
1
,而不是像以前那样
0
。我的错误,表中的任何规则或用户定义链都会导致1个引用。也就是说,要卸载iptables,必须没有规则和用户定义的链:(在这里,我想我找到了一种重置iptables的简单方法。 Module Size Used by xen_blkfront 16512 4 ext3 137007 1 jbd 54383 1 ext3 mbcache 7438 1 ext3