彻底删除内核模块

Maj*_*lik 11 linux kernel kernel-module

请问如何彻底删除某个内核模块?我的意思是真正删除,而不是卸载或阻止加载。我尝试使用rmmod,但它只是卸载模块,与modprobe -r. 所以我得到了所有使用的模块的列表modprobe -n -v并手动删除了它们。

rmmod cramfs:
ERROR: Module cramfs does not exist in /proc/modules
Run Code Online (Sandbox Code Playgroud)

所以当我尝试加载模块时,我得到:

modprobe -v -n cramfs:
FATAL: Could not open '/lib/modules/2.6.32-573.12.1.el6.x86_64/kerne/fs/cramfs/cramfs.ko': No such file or directory
Run Code Online (Sandbox Code Playgroud)

但这意味着,系统仍然可以获得有关已删除模块的一些信息,因为它知道cramfs.ko文件的路径。未加载但可加载模块的示例:

modprobe -v -n jffs2
insmod /lib/modules/2.6.32-573.12.1.el6.x86_64/kernel/lib/zlib_deflat/zlib_deflate.ko 
insmod /lib/modules/2.6.32-573.12.1.el6.x86_64/kernel/fs/jffs2/jffs2.ko

rmmod jffs2
ERROR: Module jffs2 does not exist in /proc/modules
Run Code Online (Sandbox Code Playgroud)

有什么办法可以正确删除模块吗?

von*_*and 1

当需要时,模块会在运行时加载到 RAM(并链接到正在运行的内核)。在此之前,它们(仅)使用磁盘空间(或等效空间)。

您可以通过构建自己的配置了模块的内核来节省一些磁盘空间。如果您构建的内核包含(不是作为模块,内置)您需要的任何内容,则使用相关功能的内核会快一点。但这对灵活性和麻烦来说是一个巨大的打击。