让linux支持xfs jfs reiserfs文件系统
使用的实验环境是:CentOS5.5内核版本是:2.6.18-194.el5,安装好开发环境
所需软件包:kernel-2.6.18-194.el5.src.rpm jfsutils-1.1.14.tar.gz reiserfsprogs-3.6.21.tar.bz2
xfsprogs_2.9.8-1.tar.bz2
好了,开始吧!
首先安装kernel-2.6.18-194.el5.src.rpm
# rpm -ivh kernel-2.6.18-194.el5.src.rpm
如果提示warning: group mockbuild does not exist - using root可以忽略
[root@linux fs]# cd /usr/src/redhat/SPECS/
[root@linux SPECS]# ls
kernel-2.6.spec
[root@linux SPECS]# rpmbuild -bp --target=$(uname -m) kernel-2.6.spec
[root@linux SPECS]# cd ../BUILD/kernel-2.6.18/linux-2.6.18.i686/
[root@linux linux-2.6.18.i686]# ls
arch CREDITS fs Kbuild Makefile REPORTING-BUGS sound
block crypto include kernel mm samples usr
configs Documentation init lib net scripts
COPYING drivers ipc MAINTAINERS README security
[root@linux linux-2.6.18.i686]# cp /boot/config-2.6.18-194.el5 ./.config
cp:是否覆盖“./.config”? Y //复制一个配置文件
[root@linux linux-2.6.18.i686]# vim Makefile //编辑Makefile文件,修改一下版本信息
VERSION = 2 //内核版本的主版本号
PATCHLEVEL = 6 //内核版本的次版本号
SUBLEVEL = 18 //内核修订版本号
EXTRAVERSION = 194.el5 //把此项修改为你当前系统内核版本的所使用的平台
RHEL_MAJOR = 5
RHEL_MINOR = 5
NAME=Avast! A bilge rat!
# make oldconfig
# mkdir .tmp_versions //创建一个编译过程中需要的目录
[root@linux linux-2.6.18.i686]# make menuconfig //打开内核编译选项窗口 (图1)
图1
选择要编译的文件系统选项,回车即可进入选项 (图2)
图2
选择xfs文件系统支持选项,直接按空格即可选中(图3)
图3
选择jfs文件系统支持选项,直接按空格即可选中(图4)
图4
选择reiserfs文件系统支持选项,直接按空格即可选中(图5)
图5
保存退出(图6,7,8)
图6
图7
图8
好了,开始编译三个文件系统支持模块:
[root@linux linux-2.6.18.i686]# make fs/reiserfs/reiserfs.ko
[root@linux linux-2.6.18.i686]# make fs/jfs/jfs.ko
[root@linux linux-2.6.18.i686]# make fs/xfs/xfs.ko
当前目录为:
[root@linux linux-2.6.18.i686]# pwd
/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686
编译好后把模块拷贝的内核模块目录下,为发方便管理给三个模块分别建立三个目录
/lib/modules/2.6.18-194.el5/kernel/fs/
[root@linux linux-2.6.18.i686]# mkdir /lib/modules/2.6.18-194.el5/kernel/fs/xfs/
[root@linux linux-2.6.18.i686]# mkdir /lib/modules/2.6.18-194.el5/kernel/fs/jfs/
[root@linux linux-2.6.18.i686]# mkdir /lib/modules/2.6.18-194.el5/kernel/fs/reiserfs
把相应的模块放到刚创建的目录里
[root@linux linux-2.6.18.i686]# cp fs/xfs/xfs.ko /lib/modules/2.6.18-194.el5/kernel/fs/xfs/
[root@linux linux-2.6.18.i686]# cp fs/jfs/jfs.ko /lib/modules/2.6.18-194.el5/kernel/fs/jfs/
[root@linux linux-2.6.18.i686]
# cp fs/reiserfs/reiserfs.ko /lib/modules/2.6.18-194.el5/kernel/fs/reiserfs/
模块编译好后我们就可以添加了:
[root@linux linux-2.6.18.i686]# cd fs/xfs/ //进入到模块所在的目录
[root@linux xfs]# depmod -a //先解决一下模块依赖关系的问题
[root@linux xfs]# modprobe xfs //添加xfs模块,注意:只能学模块名;
[root@linux xfs]# cd ../../fs/jfs/ //切换到jfs模块所在目录
[root@linux jfs]# modprobe jfs //添加jfs模块
[root@linux jfs]# cd ../../fs/reiserfs/ //切换到reiserfs模块所在目录
[root@linux reiserfs]# modprobe reiserfs //添加reiserfs模块
添加完可以使用lsmod来查看模块是否添加成功
# lsmod |grep xfs
xfs 616712 0
# lsmod |grep jfs
jfs 172516 0
# lsmod |grep reiserfs
reiserfs 285700 0
到此模块的编译和添加工作已经完成,接下来需要安装支持软件了
安装xfsprogs
# tar -jxvf fsprogs_2.9.8-1.tar.bz2
# cd xfsprogs-2.9.8/
[root@linux xfsprogs-2.9.8]# ./configure
[root@linux xfsprogs-2.9.8]# make
[root@linux xfsprogs-2.9.8]# make install
安装jfsutils
# tar xvf jfsutils-1.1.14.tar.gz
[root@linux jfsutils-1.1.14]# cd jfsutils-1.1.14
[root@linux jfsutils-1.1.14]# ./configure
[root@linux jfsutils-1.1.14]# make
[root@linux jfsutils-1.1.14]# make install
安装reiserfsprogs
# tar -jxvf reiserfsprogs-3.6.21.tar.bz2
[root@linux reiserfsprogs-3.6.21]# cd reiserfsprogs-3.6.21
[root@linux reiserfsprogs-3.6.21]# ./configure
[root@linux reiserfsprogs-3.6.21]# make
[root@linux reiserfsprogs-3.6.21]# make install
此时当你是用mkfs命令补全时能看到刚添加的xfs jfs文件系统创建命令:
# mkfs.
mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.jfs mkfs.msdos mkfs.vfat mkfs.xfs
可是却看不到make.reiserfs这样的命令,这是因为reiserfs文件系统创建命令是
[root@linux ~]# mkreiserfs
到此你的linux系统已经能支持xfs jfs reiserfs文件系统,赶紧新建个分区测试一下吧!
随梦奔跑
2011年6月21日
QQ群:18731199