Linux rmmod 命令详解:卸载内核模块的命令,属于 kmod 工具集的一部分

Linux rmmod 命令详解


一、命令简介

rmmodremove module)是 Linux 系统中用于卸载内核模块的命令,属于 kmod 工具集的一部分。它允许管理员从运行中的内核中移除不再需要的模块,以释放资源或避免冲突。

rmmod 仅能卸载 未被使用的模块,如果模块仍被引用(比如驱动正在使用中),将无法卸载。

相比之下,modprobe -r 提供了更智能的卸载方式(包括依赖处理),而 rmmod 更底层,直接作用于指定模块,适合高级用户。


二、命令语法
rmmod [选项] 模块名
  • 模块名不加 .ko 后缀。

  • 仅限 root 或具有相应权限的用户执行。


三、常用选项
选项说明
-f强制卸载模块(不推荐,可能造成系统不稳定)
-w等待直到模块不再被使用再卸载(很少使用)
--verbose显示详细输出信息
--help显示帮助信息
--version显示当前版本信息

四、选项说明表格
选项全写形式功能说明
-f--force强制卸载模块(需要内核开启支持,容易导致系统崩溃)
-w--wait模块被释放后自动卸载(较少使用)
--verbose显示卸载模块的详细信息
--help显示帮助信息
--version显示 rmmod 工具的版本

五、使用方法详解
1. 卸载一个模块
sudo rmmod e1000e

卸载名为 e1000e 的网络驱动模块(Intel 网卡)。

注意:卸载前必须确保没有任何设备或进程正在使用该模块。

2. 强制卸载模块(危险操作)
sudo rmmod -f snd_hda_intel

强制卸载声音驱动模块。如果模块仍被系统使用,可能导致设备失效或系统崩溃。

强制卸载通常需要内核编译时启用 CONFIG_MODULE_FORCE_UNLOAD=y

3. 卸载时显示详细信息
sudo rmmod --verbose usb_storage

输出卸载过程的详细信息,便于调试或日志记录。


六、相关命令辅助操作
  • 查看已加载模块:

    lsmod
    
  • 检查模块依赖:

    modinfo 模块名
    

    或:

    lsmod | grep 模块名
    
  • 更推荐使用 modprobe -r(支持依赖处理):

    sudo modprobe -r 模块名
    

七、模块卸载机制说明

Linux 内核使用模块化机制来动态加载和卸载驱动程序。模块通常位于:

/lib/modules/$(uname -r)/kernel/

rmmod 会直接调用内核接口 delete_module() 来移除内存中的模块代码。如果模块仍被引用(如其他模块或设备依赖),rmmod 将失败,提示如下错误:

rmmod: ERROR: Module xxx is in use

八、使用场景举例
场景操作
临时禁用驱动以重新加载rmmod 后用 modprobe 重新加载
移除问题模块导致系统异常(调试用途)使用 rmmod 排查冲突模块
精简系统内核,释放内存卸载不必要的模块,如不使用的 USB 存储、声卡模块等

九、常见问题及解决方案
问题描述可能原因或解决方法
Module is in use 错误模块正被使用,先停止相关服务或卸载依赖模块
使用 -f 仍失败内核未开启强制卸载支持 (CONFIG_MODULE_FORCE_UNLOAD=n)
模块名写错不要加 .ko 后缀,模块名需与 lsmod 中显示的一致
无法卸载有进程或硬件仍依赖此模块,可使用 lsoffuser 辅助检查

十、与其他命令对比
命令功能适用说明
rmmod低级卸载模块命令直接作用于模块本体,需无依赖
modprobe -r高级卸载命令,支持自动处理依赖关系更安全、推荐使用
lsmod查看当前已加载模块无卸载功能,辅助查询
modinfo查看模块的详细信息包括依赖模块、作者、参数等

十一、总结
项目内容
命令名称rmmod
功能从内核中卸载模块
权限要求需要 root 权限
适用场景移除驱动、调试冲突、释放资源
推荐替代modprobe -r(自动卸载依赖更安全)
注意事项模块必须未被使用,否则无法卸载

rmmod 是一个直接操作内核模块的工具,虽然简单直接,但风险相对较高,适合需要精确控制模块状态的场合。现代 Linux 系统更推荐使用 modprobe -r 替代,但理解 rmmod 的原理与用法,仍然是 Linux 内核调试与设备管理中必备的知识点之一。

这里是封面: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值