RHEL7内核模块的操作和使Linux系统支持ntfs读写

来源:互联网 发布:淘宝app我的分享在哪里 编辑:程序博客网 时间:2024/05/17 22:27

本节所讲内容:

使用Linux内核模块

实战-编译一个NTFS内核模块,实现linux挂载NTFS文件系统并实现读写功能

 

内核模块操作

内核(模块)管理命令:

模块的作用:把具体功能封装好的程序。 手电筒 照明

 

存放内核模块的目路径:

[root@xuegod60 ~]# cd /lib/modules

[root@xuegod60 modules]# ls

3.10.0-327.el7.x86_64 4.4.0

 

[root@xuegod60 ~]# cd /lib/modules/4.4.0/kernel/fs/

[root@xuegod60 fs]# ls

binfmt_misc.ko ceph dlm fat gfs2 lockd nfs_common ntfs squashfs

btrfs cifs exofs fscache isofs mbcache.ko nfsd overlayfs udf

cachefiles cramfs ext4 fuse jbd2 nfs nls pstore xfs

 

插入模块

insmod

作用:插入模块

[root@xuegod60 fat]# pwd

/lib/modules/4.4.0/kernel/fs/fat

[root@xuegod60 fat]# insmod fat.ko

 

查看当前系统中加载模块

[root@xuegod60 fat]# lsmod | grep fat

fat 69632 0

 

删除模块

[root@xuegod60 fat]# rmmod fat

 

解决有依赖关系的模块插入modprobe

[root@xuegod60 fat]# insmod vfat.ko

insmod: ERROR: could not insert module vfat.ko: Unknown symbol in module

[root@xuegod60 fat]# modprobe vfat

[root@xuegod60 fat]# lsmod |grep fat

vfat 20480 0

fat 69632 1 vfat

 

删除模块

[root@xuegod60 fat]# modprobe -r vfat

[root@xuegod60 fat]# lsmod | grep fat

 

新添加一个模块后,需要让系统知道:

 

[root@xuegod60 4.4.0]# depmod

[root@xuegod60 fat]# cd /lib/modules/4.4.0/

[root@xuegod60 4.4.0]# vim modules.dep

查看模块间依赖关系:如fat。从下图可以看出,vfat和msdos模块都依赖fat.ko模块

文件格式

 

查看模块信息

modinfo

[root@xuegod60 4.4.0]# modinfo kernel/fs/fat/vfat.ko

filename: /lib/modules/4.4.0/kernel/fs/fat/vfat.ko

author: Gordon Chaffee

description: VFAT filesystem support

license: GPL

alias: fs-vfat

srcversion: BEF7BA1F8972367DD650AA0

depends: fat

intree: Y

vermagic: 4.4.0 SMP mod_unload modversions

 

开机自动加载模块

[root@xuegod60 4.4.0]# vim /etc/rc.local

[root@xuegod60 4.4.0]# ll /etc/rc.local

lrwxrwxrwx. 1 root root 13 Jan 16 03:13 /etc/rc.local -> rc.d/rc.local

 

实战-编译一个NTFS内核模块,实现linux挂载NTFS文件系统

 

如何在虚拟机中插入U盘

 

安装fuse ntfs-3g

[root@xuegod60 ~]# rpm -qa | grep fuse

gvfs-fuse-1.22.4-6.el7.x86_64

fuse-libs-2.9.2-6.el7.x86_64

fuse-2.9.2-6.el7.x86_64

 

[root@xuegod60 ~]# rpm -ivhhttp://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

 

[root@xuegod60 ~]# yum clean all

[root@xuegod60 ~]# yum list

 

扩展

配置yum源是yum网络源安装的包能自动保存

[root@xuegod60 ~]# vim /etc/yum.conf

[main]

cachedir=/var/cache/yum/$basearch/$releasever

keepcache=1

debuglevel=2

logfile=/var/log/yum.log

exactarch=1

obsoletes=1

gpgcheck=1

plugins=1

installonly_limit=3

 

 

[root@xuegod60 ~]# yum -y install ntfs-3g

[root@xuegod60 ~]# ls /var/cache/yum/x86_64/7Server/rpmforge/packages/

fuse-ntfs-3g-2013.1.13-2.el7.rf.x86_64.rpm

[root@xuegod60 ~]# umount /dev/sdc1

[root@xuegod60 ~]# mount -t ntfs-3g /dev/sdc1 /opt/

The disk contains an unclean file system (0, 0).

 

[root@xuegod60 ~]# cd /opt/

[root@xuegod60 opt]# echo aaa > a.txt

0 0
原创粉丝点击