天天看點

Linux核心子產品(二)

·    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,如需轉載請自行聯系原作者

繼續閱讀