rmmod 是Linux系统中用于卸载(移除)内核模块的命令。它与insmod、modprobe等命令一起构成了Linux内核模块管理系统。rmmod命令直接从运行中的内核中移除指定的模块,前提是该模块没有被其他模块或进程使用。
rmmod [选项] 模块名 [模块参数]
| 选项 | 说明 |
|---|---|
-f, --force |
强制卸载模块,即使模块正在被使用(危险操作) |
-s, --syslog |
将错误信息输出到系统日志而不是标准错误输出 |
-v, --verbose |
显示详细操作信息 |
-V, --version |
显示命令版本信息 |
-h, --help |
显示帮助信息 |
卸载一个未使用的内核模块:
sudo rmmod usb_storage
卸载USB存储驱动模块,前提是该模块没有被任何设备使用。
sudo rmmod -v usb_storage
显示详细的模块卸载过程信息。
强制卸载正在使用的模块(危险操作):
sudo rmmod -f usb_storage
sudo rmmod -s usb_storage
错误信息将记录到系统日志(如/var/log/syslog)而不是终端。
依次卸载多个模块:
sudo rmmod module1 module2 module3
按顺序卸载module1、module2、module3。
内核模块管理常用操作序列:
lsmodmodinfo 模块名insmod 模块路径 或 modprobe 模块名rmmod 模块名modprobe --show-depends 模块名dmesg | tail -20| 特性 | rmmod | modprobe -r |
|---|---|---|
| 依赖处理 | 仅卸载指定模块,不处理依赖 | 自动卸载依赖模块(如果不再需要) |
| 模块路径 | 需要内核中已加载的模块名 | 使用模块名称,自动查找 |
| 配置文件 | 不使用配置文件 | 读取/etc/modprobe.d/配置文件 |
| 黑名单 | 不受黑名单影响 | 尊重黑名单设置 |
| 推荐程度 | 基础操作,手动管理 | 高级操作,推荐使用 |
| 模块名称 | 功能描述 | 典型卸载场景 |
|---|---|---|
usb_storage |
USB存储设备支持 | USB设备全部移除后 |
uvcvideo |
USB视频类设备驱动 | 所有USB摄像头移除后 |
nvidia |
NVIDIA显卡驱动 | 更换显卡或驱动前 |
btusb |
蓝牙USB设备驱动 | 蓝牙设备全部移除后 |
joydev |
游戏手柄设备驱动 | 游戏手柄移除后 |
lp |
并口打印机驱动 | 并口打印机移除后 |
rmmod命令的工作流程:
/proc/modules)delete_module系统调用module_exit函数(如果存在)内核模块状态:
-f选项可能导致系统不稳定或数据丢失lsmod | grep 模块名(第二列显示使用计数)lsof | grep 模块名sudo modprobe -r 模块名dmesg | tail -10if sudo rmmod module; then echo "成功"; else echo "失败"; filsmod > lsmod_backup.txtsudo modprobe -r --dry-run $(lsmod | awk 'NR>1 && $3==0 {print $1}')sudo lsof | grep 模块名lsmod | grep 模块名modinfo 模块名 和 lsmod | grep 模块名modprobe --show-depends 模块名sudo modprobe -r 模块名sudo lsof | grep 模块名rmmod:sudo rmmod 模块名lsmod | grep 模块名 和 dmesg | tail -5| 相关命令 | 说明 |
|---|---|
lsmod |
列出当前加载的内核模块 |
insmod |
加载内核模块到运行中的内核 |
modprobe |
智能加载/卸载内核模块,处理依赖关系 |
modinfo |
显示内核模块信息 |
depmod |
生成模块依赖关系文件 |
dmesg |
显示内核环形缓冲区消息 |