【Linux】内核模版加载modprobe | lsmod

news2024/11/14 11:37:08

modprobe   

   modprobe 是一个用于加载和卸载 Linux 内核模块的命令。它不仅能够加载单个模块,还能处理模块之间的依赖关系,确保所有依赖的模块都被正确加载。以下是一些关于 modprobe 命令的基本用法和常见选项的详细介绍。

基本语法

modprobe [options] [module] [module parameters...]

常用选项

  1. 加载模块

    • modprobe module_name:加载指定的模块。
    • modprobe -a module1 module2:加载多个模块。
  2. 卸载模块

    • modprobe -r module_name:卸载指定的模块。
    • modprobe -r -a module1 module2:卸载多个模块。
  3. 显示模块信息

    • modprobe -d module_name:显示模块的详细信息。
    • modprobe --show-depends module_name:显示模块的依赖关系。
  4. 检查模块是否存在

    • modprobe --dump-modversions module_name:显示模块的版本信息。
    • modprobe --show module_name:显示模块的路径。
  5. 处理模块参数

    • modprobe module_name param1=value1 param2=value2:加载模块并传递参数。
  6. 忽略依赖关系

    • modprobe --ignore-install module_name:加载模块时忽略安装脚本。
    • modprobe --ignore-remove module_name:卸载模块时忽略卸载脚本。
  7. 其他选项

    • modprobe --verbose:显示详细信息。
    • modprobe --dry-run:模拟操作,不实际加载或卸载模块。
    • modprobe --first-time:仅在第一次加载时执行。
示例
1. 加载模块

加载 br_netfilter 模块:

sudo modprobe br_netfilter
2. 卸载模块

卸载 br_netfilter 模块:

sudo modprobe -r br_netfilter
3. 加载多个模块

加载 br_netfilterip_tables 模块:

sudo modprobe -a br_netfilter ip_tables
4. 显示模块的依赖关系

显示 br_netfilter 模块的依赖关系:

sudo modprobe --show-depends br_netfilter
5. 传递模块参数

加载 ipv6 模块并禁用 IPv6:

sudo modprobe ipv6 disable=1
6. 模拟操作

模拟加载 br_netfilter 模块:

sudo modprobe --dry-run br_netfilter
7. 显示详细信息

显示 br_netfilter 模块的详细信息:

sudo modprobe -d br_netfilter

常见用途

  1. 网络模块:加载网络相关的模块,如 br_netfilter 用于桥接网络。
  2. 文件系统模块:加载文件系统相关的模块,如 ext4 用于支持 ext4 文件系统。
  3. 硬件驱动模块:加载硬件驱动模块,如 i915 用于支持 Intel 图形卡。
  4. 安全模块:加载安全相关的模块,如 apparmor 用于支持 AppArmor 安全框架。

验证模块是否已加载

使用 lsmod 命令验证模块是否已加载:

lsmod | grep br_netfilter

总结

modprobe 是一个强大的工具,用于管理和操作 Linux 内核模块。通过使用 modprobe,您可以轻松地加载、卸载和管理模块,确保系统在需要时能够正确加载所需的模块

lsmod

      是一个用于列出当前已加载的 Linux 内核模块的命令。它从 /proc/modules 文件中读取信息,并以易读的格式显示出来。lsmod 命令可以帮助您了解系统中当前加载了哪些模块,以及这些模块的依赖关系。

基本语法

lsmod

输出格式

lsmod 命令的输出通常包含以下几列:

  1. Module:模块的名称。
  2. Size:模块的大小(以字节为单位)。
  3. Used by:模块被使用的次数或依赖该模块的其他模块的名称。
示例
1. 列出所有已加载的模块
lsmod

输出示例:

Module                  Size  Used by
br_netfilter           22272  0
bridge                162304  1 br_netfilter
nf_log_ipv6            16384  0
nf_log_ipv4            16384  0
nf_log_common          16384  2 nf_log_ipv6,nf_log_ipv4
ipt_MASQUERADE         16384  1
nf_conntrack           86016  3 nf_log_ipv6,nf_log_ipv4,ipt_MASQUERADE
nf_defrag_ipv6         16384  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
ip6table_filter        16384  1
ip6_tables             28672  1 ip6table_filter
iptable_filter         16384  1
ip_tables              32768  1 iptable_filter
x_tables               45056  7 ip6table_filter,ip6_tables,iptable_filter,ip_tables,ipt_MASQUERADE,nf_log_ipv6,nf_log_ipv4
2. 搜索特定模块

如果您只想查找特定模块的信息,可以使用 grep 命令结合 lsmod

lsmod | grep br_netfilter

输出示例:

br_netfilter           22272  0
3. 详细信息

虽然 lsmod 本身不提供详细信息,但您可以结合其他命令来获取更多信息。例如,使用 modinfo 命令查看模块的详细信息:

modinfo br_netfilter

输出示例:

filename:       /lib/modules/5.10.0-8-amd64/kernel/net/bridge/netfilter/br_netfilter.ko
license:        GPL
description:    Bridge netfilter support
author:         Stephen Hemminger <shemminger@linux-foundation.org>
srcversion:     7A3D7B7D7D7D7D7D7D7D7D7D7
depends:        bridge
retpoline:      Y
intree:         Y
name:           br_netfilter
vermagic:       5.10.0-8-amd64 SMP mod_unload modversions

常见用途

  1. 网络模块:检查网络相关的模块是否已加载,如 br_netfilter 用于桥接网络。
  2. 文件系统模块:检查文件系统相关的模块是否已加载,如 ext4 用于支持 ext4 文件系统。
  3. 硬件驱动模块:检查硬件驱动模块是否已加载,如 i915 用于支持 Intel 图形卡。
  4. 安全模块:检查安全相关的模块是否已加载,如 apparmor 用于支持 AppArmor 安全框架。

结合其他命令

  1. 查看模块路径

    modinfo -F filename br_netfilter
  2. 查看模块参数

    modinfo -p br_netfilter
  3. 查看模块依赖关系

    modprobe --show-depends br_netfilter

总结

lsmod 命令是一个简单但强大的工具,用于列出当前已加载的 Linux 内核模块。通过使用 lsmod,您可以快速了解系统中加载了哪些模块,以及这些模块的依赖关系

模块加载的相关文件

/etc/sysconfig/modules//etc/modules-load.d/ 目录都用于配置内核模块的自动加载,但它们的工作方式和应用场景有所不同。下面详细解释这两个目录的区别和各自的使用场景。

1. /etc/modules-load.d/ 目录

作用
  • 系统启动时加载模块/etc/modules-load.d/ 目录中的文件用于指定在系统启动时需要自动加载的内核模块。
  • 由 systemd 管理:这些文件由 systemd 的 systemd-modules-load.service 服务读取并加载指定的模块。
文件格式
  • 每个文件通常以 .conf 为扩展名。
  • 文件内容是一行或多行,每行指定一个内核模块的名称。
示例

假设您需要在系统启动时自动加载 br_netfilterip_tables 模块,可以在 /etc/modules-load.d/ 目录中创建一个配置文件,例如 network-modules.conf

sudo nano /etc/modules-load.d/network-modules.conf

编辑文件内容:

br_netfilter
ip_tables

保存并退出编辑器。

加载模块
  • 系统启动时,systemd-modules-load.service 会自动读取并加载这些模块。
  • 您也可以手动加载这些模块:
sudo systemctl start systemd-modules-load.service

2. /etc/sysconfig/modules/ 目录

作用
  • 自定义模块加载脚本/etc/sysconfig/modules/ 目录中的文件是可执行的 Shell 脚本,用于在系统启动时加载内核模块。 

       如实例:

cat > /etc/sysconfig/modules/ipvs.sh <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

  • 灵活性更高:这些脚本可以包含更复杂的逻辑,例如条件加载模块、设置模块参数等。
文件格式
  • 每个文件通常以 .sh 为扩展名。
  • 文件内容是 Shell 脚本,使用 modprobe 命令加载模块。
示例

假设您需要在系统启动时自动加载 br_netfilter 模块,并设置其参数,可以在 /etc/sysconfig/modules/ 目录中创建一个脚本文件,例如 br_netfilter.sh

sudo nano /etc/sysconfig/modules/br_netfilter.sh

编辑文件内容:

#!/bin/sh
modprobe br_netfilter

保存并退出编辑器。

使脚本可执行

确保脚本文件具有可执行权限:

sudo chmod +x /etc/sysconfig/modules/br_netfilter.sh
加载模块
  • 系统启动时,这些脚本会自动执行,加载指定的模块。
  • 您也可以手动执行这些脚本:
sudo /etc/sysconfig/modules/br_netfilter.sh

主要区别

  1. 管理方式

    • /etc/modules-load.d/ 由 systemd 管理,更加现代化和标准化。
    • /etc/sysconfig/modules/ 由传统的初始化系统(如 init 或 systemd 的兼容层)管理,更加灵活但复杂度更高。
  2. 文件格式

    • /etc/modules-load.d/ 文件是简单的文本文件,每行指定一个模块名称。
    • /etc/sysconfig/modules/ 文件是可执行的 Shell 脚本,可以包含复杂的逻辑。
  3. 应用场景

    • /etc/modules-load.d/ 适合简单的模块加载需求,易于管理和维护。
    • /etc/sysconfig/modules/ 适合需要更复杂逻辑的模块加载,例如条件加载模块或设置模块参数。

总结

  • /etc/modules-load.d/:现代、标准化,适合简单的模块加载需求。
  • /etc/sysconfig/modules/:传统、灵活,适合需要复杂逻辑的模块加载需求。

选择哪个目录取决于您的具体需求和系统配置。如果您只需要简单的模块加载,推荐使用 /etc/modules-load.d/。如果您需要更复杂的逻辑,可以使用 /etc/sysconfig/modules/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2240151.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PTE-中间件安全

DOCKER环境&#xff0c;一般是80 8080 8081端口 1 apache位置扩展名解析漏洞 cd vulhub-master/httpd/apache_parsing_vulnerability/ docker-compose up -d 修改一句话的后缀 直接上传 蚁剑 2 CVE-2017-15715 docker-compose stop cd .. cd CVE-2017-15715/ dock…

Python用CEEMDAN-LSTM-VMD金融股价数据预测及SVR、AR、HAR对比可视化

全文链接&#xff1a;https://tecdat.cn/?p38224 分析师&#xff1a;Duqiao Han 股票市场是一个复杂的非线性系统&#xff0c;股价受到许多经济和社会因素的影响。因此&#xff0c;传统的线性或近线性预测模型很难有效、准确地预测股票指数的价格趋势。众所周知&#xff0c;深…

【Revit二次开发】创建Ribbon选项卡与带图标的按钮

效果图 创建一个叫做“开发的插件”的选项卡&#xff0c; 选项卡内有一个叫做“Hello”的图标按钮&#xff0c; 点击按钮后运行一个命令&#xff0c; 该命令弹出提示框“Hello Revit!”。 在此示例基础上&#xff0c;可以根据需要替换图标、文字、命令功能。 步骤 安装Revit…

Java面试要点18 - Java运行时多态与编译时多态

本文目录 一、引言二、运行时多态的实现三、编译时多态的实现四、多态与接口五、多态的实际应用六、总结 一、引言 多态是面向对象编程的三大特性之一&#xff0c;它允许我们以统一的方式处理不同类型的对象。Java中的多态分为两种&#xff1a;编译时多态&#xff08;重载&…

使用@react-three/fiber,@mkkellogg/gaussian-splats-3d加载.splat,.ply,.ksplat文件

前言 假设您正在现有项目中集成这些包&#xff0c;而该项目的构建工具为 Webpack 或 Vite。同时&#xff0c;您对 Three.js 和 React 有一定的了解。如果您发现有任何错误或有更好的方法&#xff0c;请随时留言。 安装 npm install three types/three react-three/fiber rea…

HBase理论_背景特点及数据单元及与Hive对比

本文结合了个人的笔记以及工作中实践经验以及参考HBase官网&#xff0c;我尽可能把自己的知识点呈现出来&#xff0c;如果有误&#xff0c;还请指正。 1. HBase背景 HBase作为面向列的数据库运行在HDFS之上&#xff0c;HDFS缺乏随机读写操作&#xff0c;HBase正是为此而出现。…

(Go基础)Go的运行流程步骤与包的概念

1. 快速入门 所有的go开发&#xff0c;都必须存在并包含在某一个包内 .go 是go语言程序的后缀名 1.1 编译 通过使用 go build 命令对该go文件进行编译&#xff0c;生成.exe文件 1.2 运行 运行刚刚生成出来的test.exe文件既可&#xff0c;不过并不不是双击&#xff0c;而是在…

蓝桥杯每日真题 - 第11天

题目&#xff1a;&#xff08;合并数列&#xff09; 题目描述&#xff08;14届 C&C B组D题&#xff09; 解题思路&#xff1a; 题意理解&#xff1a;给定两个数组&#xff0c;目标是通过若干次合并操作使两个数组相同。每次合并操作可以将数组中相邻的两个数相加&#xff…

手撸 chatgpt 大模型:简述 LLM 的架构,算法和训练流程

本节我们自顶向下看看大模型的相关概念&#xff0c;了解其基本架构以及从零手撸大模型的基本流程。自从 openai 释放了 chatgpt 后&#xff0c;人工智能就立马进入了大模型时代&#xff0c;我还记得在此之前 NLP 的处理主要依赖于深度学习的 LSTM&#xff0c;GRU 等模型架构。这…

FPGA实现PCIE3.0视频采集转千兆UDP网络输出,基于XDMA+RTL8211E架构,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的PCIE方案我这里已有的以太网方案本博客方案的PCIE2.0版本 3、PCIE基础知识扫描4、工程详细设计方案工程设计原理框图电脑端视频QT上位机XDMA配置及使用XDMA中断模块FDMA图像缓存UDP视频组包发送UDP协议栈MAC数据缓冲FIFO组…

2024年第四届“网鼎杯”网络安全比赛---朱雀组Crypto- WriteUp

2024年第四届“网鼎杯”网络安全比赛---朱雀组Crypto-WriteUp Crypto&#xff1a;Crypto-2&#xff1a;Crypto-3&#xff1a; 前言&#xff1a;本次比赛已经结束&#xff0c;用于赛后复现&#xff0c;欢迎大家交流学习&#xff01; Crypto&#xff1a; Crypto-2&#xff1a; …

PostgreSQL数据库笔记

PostgreSQL 是什么 PostgreSQL&#xff08;简称Postgres或PG&#xff09;是一个功能强大、可靠性高、可扩展性好的开源对象-关系数据库服务器&#xff08;ORDBMS&#xff09;&#xff0c;它以加州大学伯克利分校计算机系开发的POSTGRES版本4.2为基础。 发展历程 起源与发展&a…

el-table合并单元格之后,再进行隔行换色的且覆盖表格行鼠标移入的背景色的实现

el-table 中有现成的隔行换色功能&#xff0c;只要增加 stripe 属性即可。但是如果有单元格合并的话&#xff0c;这个属性就不可用了。这时候我们就需要动点小心思了。 基于相同字段进行合并 单元格合并&#xff1a;基于表头中的某一列&#xff0c;具有相同值的个数相加进行合…

光伏电站容量计算方法科普

光伏电站的容量计算是设计和评估光伏系统性能的关键步骤。通过了解光伏电站的容量&#xff0c;我们可以预估其发电量&#xff0c;优化系统设计&#xff0c;并确保系统能满足电力需求。本文将详细介绍几种常见的光伏电站容量计算方法&#xff0c;并特别介绍小程序“光伏一点通”…

mysql数据库(五)多表查询

多表查询 文章目录 多表查询一、链表查询1.1交叉连接1.2 内连接1.3 左连接1.4 右连接1.5 全连接1.6 例子 二、子查询2.1 in与not in2.2 any/some2.3 all2.4 比较运算符2.5 exists 三、例子 查询中使用的表如下所示 ------------ | id | name | ------------ | 1 | IT | …

06.VSCODE:备战大项目,CMake专项配置

娇小灵活的简捷配置不过是年轻人谈情说爱的玩具&#xff0c;帝国大厦的构建&#xff0c;终归要交给CMake去母仪天下。一个没有使用 CMake 的 C 项目&#xff0c;就像未来世界里的一台相声表演&#xff0c;有了德纲却无谦&#xff0c;观众笑着遗憾。—— 语出《双城记》作者&…

jmeter常用配置元件介绍总结之后置处理器

系列文章目录 安装jmeter jmeter常用配置元件介绍总结之后置处理器 8.后置处理器8.1.CSS/JQuery提取器8.2.JSON JMESPath Extractor8.3.JSON提取器8.4.正则表达式提取器8.5.边界提取器8.5.Debug PostProcessor8.6.XPath2 Extractor8.7.XPath提取器8.8.结果状态处理器 8.后置处理…

淘宝/天猫按图搜索商品:taobao.item_search_img API的奇幻之旅

在这个看脸的时代&#xff0c;我们不仅对人要看颜值&#xff0c;连买东西都要“看脸”了。没错&#xff0c;我说的就是淘宝/天猫的按图搜索商品功能——taobao.item_search_img API。这个功能就像是电商平台的“人脸识别”&#xff0c;只不过它认的是商品的颜值。下面&#xff…

豆包MarsCode算法题:数组元素之和最小化

数组元素之和最小化 问题描述思路分析分析思路解决方案 参考代码&#xff08;Python&#xff09;代码分析1. solution 函数2. 计算 1 2 3 ... n 的和3. 乘以 k 得到最终的数组元素之和4. 主程序&#xff08;if __name__ __main__:&#xff09;代码的时间复杂度分析&#x…

已有账号,重装系统激活office后发现没有ppt,word,excel等

有时候重装系统后&#xff0c;登录windows结果右键没有word,excel等 点击进入office 进入右边的账户 找到设备和订阅 直接下载office 安装后就会出现了