·
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
·
通过移除内核模块可达到禁用该模块的作用
[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
·
通过
lsmod
查看系统已加载的所有内核模块
[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
·
通过
modprobe
添加
/
删除内核模块
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
[root@rhel6 ~]# lsmod | grep vfat
·
通过
ins
mod
/
rmmod
添加
/
删除内核模块
insmod
命令主要用于在
Linux2.4
内核之前加载内核模块
,
系统不仅不会自动解决内核模块之间的依赖关系,而且还要求写出详细的模块路径
rmmod
命令主要用于卸载正在使用的
Linux
内核模块
,
与
modprobe -r
命令相似
·
添加
vfat
内核模块
[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 ~]# lsmod | grep vfat
vfat 46529 0
fat 85873 1 vfat
·
删除
vfat
内核模块
[root@rhel6 ~]# rmmod vfat
[root@rhel6 ~]# rmmod fat
[root@rhel6 ~]# lsmod | grep vfat
·
通过
depmod
重新注册内核模块信息
(
非系统自带的内核模块不能通过
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`
//
只注册当前系统中的内核模块信息
·
通过
modinfo
查看内核模块信息
[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