命令速查linux-kernel
modprobe:管理内核模块
按模块依赖关系加载或卸载内核模块,并在变更前预演与核对影响。
依据模块依赖数据库加载或卸载可加载内核模块。与直接插入模块文件相比,modprobe 会处理依赖和配置规则。
modprobe [选项] 模块名modprobe -r [选项] 模块名| 选项 | 作用 |
|---|---|
-n, --dry-run |
预演操作,不实际变更内核。 |
-v, --verbose |
显示将执行的步骤。 |
-r, --remove |
卸载模块及不再使用的依赖。 |
--show-depends |
显示模块依赖处理结果。 |
MODULE=module_nameif [[ -z "$MODULE" || "$MODULE" == module_name ]]; then printf '%s\n' '请先填写并核对模块名' >&2else modinfo -- "$MODULE" && sudo modprobe --dry-run --verbose -- "$MODULE" && sudo modprobe -- "$MODULE"fi实际加载成功通常没有输出。可用 lsmod 核对模块;有些驱动编译进内核,不会作为可卸载模块出现。
风险与注意事项
Section titled “风险与注意事项”加载模块会在内核态运行代码;只使用与当前内核匹配且来源可信的模块。卸载存储、网络、控制台或正在使用的驱动可能立即中断系统,不要把模块名占位符直接执行,也不要使用 --force 绕过版本或使用状态检查。
确认模块不承载当前存储、网络、控制台且没有使用者后再卸载:
sudo modprobe -r -- "$MODULE"若卸载返回“in use”,停止并查明依赖,不要强制移除。关键设备驱动应通过重启恢复到已知启动配置,而不是冒险在线卸载。
可用模块由内核配置、架构、签名策略及 /lib/modules/$(uname -r) 内容决定;只含内建驱动的精简嵌入式系统可能不提供模块加载能力。
- 命令:dmesg、uname
- 概念:内核日志与可加载模块
- 实战:内核与硬件故障排查