· ko:kernel object
· so:shared object
[root@rhel6 ~]# ls /lib/modules/$(uname -r)/kernel/arch/x86/kvm
kvm-amd.ko kvm-intel.ko kvm.ko
· <b>通过移除内核模块可达到禁用该模块的作用</b>
[root@rhel6 ~]# ls /lib/modules/$(uname -r)/kernel/drivers/usb/storage //移除usb-storage.ko即可禁用U盘
ums-alauda.ko ums-datafab.ko ums-isd200.ko ums-karma.ko ums-sddr09.ko ums-usbat.ko
ums-cypress.ko ums-freecom.ko ums-jumpshot.ko ums-onetouch.ko ums-sddr55.ko usb-storage.ko
· <b>通过</b><b>lsmod</b><b>查看系统已加载的所有内核模块</b>
[root@rhel6 ~]# lsmod
模块名称 模块大小 依赖关系
Module Size Used by
ipt_MASQUERADE 2466 0
ipt_REJECT 2383 0
autofs4 26888 3
scsi_transport_fc 52241 3 bnx2fc,fcoe,libfc
scsi_tgt 12173 1 scsi_transport_fc
8021q 23575 0
iptable_mangle 3349 1
iptable_filter 2793 0
iptable_nat 6158 1
nouveau 708444 0
ext4 364410 2
mmc_core 72991 1 sdhci
video 21032 2 nouveau,i915
· <b>通过</b><b>modprobe</b><b>添加</b><b>/</b><b>删除内核模块</b>
modprobe命令主要用于在Linux2.6内核中加载和删除Linux内核模块,通过此命令可轻松加载和删除Linux内核模块,同时会自动解决内核模块之间的依赖关系,并加载相互依赖的模块。
· 添加vfat内核模块
[root@rhel6 ~]# lsmod | grep vfat //列出当前内存当中是否已加载vfat的内核模块
[root@rhel6 ~]# modprobe vfat //不需加 .ko"
[root@rhel6 ~]# lsmod | grep vfat
vfat 46529 0
fat 85873 1 vfat
· 删除vfat内核模块
[root@rhel6 ~]# modprobe -r vfat
· <b>通过</b><b>ins</b><b>mod</b><b>/</b><b>rmmod </b><b>添加</b><b>/</b><b>删除内核模块</b>
insmod命令主要用于在Linux2.4内核之前加载内核模块,系统不仅不会自动解决内核模块之间的依赖关系,而且还要求写出详细的模块路径
rmmod命令主要用于卸载正在使用的Linux内核模块,与modprobe -r命令相似
[root@rhel6 ~]# insmod /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/fat/fat.ko
[root@rhel6 ~]# insmod /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/vfat/vfat.ko
[root@rhel6 ~]# rmmod vfat
[root@rhel6 ~]# rmmod fat
· <b>通过</b><b> </b><b>depmod </b><b>重新注册内核模块信息</b>
(非系统自带的内核模块不能通过modprobe直接加载,可通过insmod手工加载或者将该内核模块的*.ko文件拷贝到相应的目录下通过depmod重新注册内核模块信息)
[root@rhel6 ~]# depmod [-ane]
-a :不加任何参数时, depmod 会主动的去分析目前核心的模块,并且重新写入/lib/modules/$(uname -r)/modules.dep 当中。
若加入 -a 参数时,则 depmod会去搜寻比 modules.dep 内还要新的模块,如果找到新模块,才会升级。
-n :不写入 modules.dep ,而是将结果输出到屏幕上(standard out);
-e :显示出目前已加载的不可运行的模块名称
[root@rhel6 ~]# file /lib/modules/2.6.32-220.el6.x86_64/modules.dep
/lib/modules/2.6.32-220.el6.x86_64/modules.dep: ASCII text, with very long lines
[root@rhel6 ~]# rm -f /lib/modules/2.6.32-220.el6.x86_64/modules.dep
[root@rhel6 ~]# depmod //重新注册当前系统的内核模块信息并生成modules.dep文件
[root@rhel6 ~]# ls /lib/modules/2.6.32-220.el6.x86_64| grep modules.dep
modules.dep
modules.dep.bak
[root@rhel6 ~]# ls /lib/modules/2.6.32-220.el6.x86_64/modules.dep
/lib/modules/2.6.32-220.el6.x86_64/modules.dep
[root@rhel6 ~]# depmod -a //注册/lib/modules/下所有内核的内核模块信息
[root@rhel6 ~]# depmod `uname -r` //只注册当前系统中的内核模块信息
· <b>通过</b><b> </b><b>modinfo </b><b>查看内核模块信息</b>
[root@rhel6 ~]# modinfo vfat
filename: /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/fat/vfat.ko
author: Gordon Chaffee
description: VFAT filesystem support
license: GPL
srcversion: ACCC2F7E9526F402F526976
depends: fat
vermagic: 2.6.32-220.el6.x86_64 SMP mod_unload modversions
本文转自Vnimos51CTO博客,原文链接:http://blog.51cto.com/vnimos/1102390,如需转载请自行联系原作者