每个Linux操作系统(即各种发行版ubuntu,centos,redhat)的核心组件是Linux内核。 它管理系统的资源,并充当计算机硬件和软件之间的中介。

Linux内核是具有模块化设计的软件。 内核模块(通常称为驱动程序)是一段扩展内核功能的代码。 模块可以编译为可加载模块或内置在内核中。 可加载模块可以根据需要在正在运行的内核中动态加载和卸载,而无需重新启动系统。

在本文中,我们将讨论如何使用rmmod命令从Linux内核中删除模块。

rmmod命令

rmmod(删除模块)命令的一般语法如下:

rmmod [OPTIONS] MODULE_NAME...

在现代Linux系统上,rmmodkmod的一部分,该二进制文件实现了用于管理Linux内核模块的多个程序。

只有具有管理特权的用户才能删除模块。

您可以使用lsmod命令打印系统中加载的所有模块的列表。 内核模块存储在/lib/modules/<kernel_version>目录中。

使用rmmod命令删除模块非常简单; 只需调用命令,后跟模块名称:

rmmod module_name

该命令仅在出现问题时才打印消息。 例如,如果另一个模块使用该模块,则该命令将打印以下内容:

rmmod: ERROR: Module module_name is in use by: module_name_2

要显示有关命令执行的详细信息,请使用-v--verbose)选项。

如果一定要删除正在使用的模块,请使用-f--verbose)选项调用命令。 使用此选项非常危险,因为它可能导致系统崩溃。

rmmod还接受多个模块作为参数:

rmmod module_name1 module_name2

防止内核模块在引导时加载

使用rmmod命令卸下模块时,模块将保持卸载状态,直到重新引导系统为止。 在下一次系统引导时,将加载卸下的模块。

要在启动时永久禁止加载内核模块,请在/etc/modprobe.d中创建一个名称任意的.conf文件。 语法为:

/etc/modprobe.d/blacklist.conf

blacklist module_name

如果要将其他模块列入黑名单,请在新行上指定模块,或创建新的.conf文件。

结论

rmmod命令用于删除Linux内核模块。 通常,大多数Linux用户使用 modprobe -r 命令而不是rmmod

如有任何疑问,请随时发表评论。