Chinaunix首页 | 论坛 | 博客
  • 博客访问: 543299
  • 博文数量: 119
  • 博客积分: 3167
  • 博客等级: 中校
  • 技术积分: 1215
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-20 21:21
文章分类

全部博文(119)

文章存档

2015年(21)

2012年(4)

2011年(1)

2007年(11)

2006年(50)

2005年(32)

分类: LINUX

2005-12-20 21:49:51

当前大多数发行版默认情况下都不支持NTFS文件系统的读写.
如果用户需要访问NTFS文件系统的话,则必需重新编译内核.
或者安装相应的读NTFS文件系统的补丁.(一个RPM包,具体叫什么不太清楚了)

经过总结其他linuxSir的经验并亲自实践,现在总结出一种可以快速
使内核支持NTFS的方案.

该方案主要通过编译单个模块来获得对NTFS文件系统的支持.

1,修改内核原代码 Makefile

把:
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 20
#EXTRAVERSION = -8custom 这一行注释掉,该成下面那一行
EXTRAVERSION = -8

之所以要修改,是因为内核模块编译过程会给每个模块加上版本信息.
而版本就是由makefile的这四行决定的.

默认安装的内核版本是没有custom的,即内核的完整版本号应该是:

2.4.20-8

如果没有把EXTRAVERSION = -8custom该成

EXTRAVERSION = -8 的话,编译出来的NTFS文件系统模块的版本信息是:

2.4.20-8custom

和原有的内核不匹配,系统不允许将该版本不匹配的内核插入.
虽然可以通过给insmod加上--force参数强行插入运行的内核,但是会引起不必要的麻烦.
严重的时候会恶性死机.

当然,如果你以前已经自给编译过一个新内核,内核有其它的EXTRAVERSION的话,
改成相应的就可以了.
可以通过uname -r 明令查看:

[root@gucuiwen linux-2.4]# uname -r
2.4.20-8

2,生成一个空的.config文件:

# >.config

说明一下:
.config文件是由内核配置程序生成了.(make xconfig,make menuconfig,make config)

但是如果已经存在.config文件的话make xonfig后配置程序就直接在这个文件中读取配置信息.

把这个文件设置为空,意思就事让所有的配置选项都为No

然后,我们通过运行make xconfig (或make menuconfig)来配置对NTFS的支持.
这样就使得配置文件里只有对NTFS支持的选项.
make modules的时候只编译一个模块,速度非常快.只要几秒钟.

3,生成对NTFS模块的支持:

#make xconfig

然后在配置程序中只需要选择两个选项:

一是对可加载模块的支持
在Loadable module support中
Enable loadable module support选择Y

二是对NTFS文件系统的支持.
在file systems 中
NTFS filesyste support选择M

然后保存并退出.
可以看一下这时候.config文件中的内容.这里只有编译内核时必需的选项,其他都是注释.

最后运行
#make modules

屏幕上输出编译信息,只需要短短几秒时间就可以编译完成.

4,将编译好的NTFS内核模块插入系统:

先找到编译好的模块

#ls /usr/src/linux-2.4/fs/ntfs/ntfs.o

拷贝到modules目录下:

#mkdir /lib/modules/2.4.20-8/kernel/fs/ntfs
#cp /usr/src/linux-2.4/fs/ntfs/ntfs.o /lib/modules/2.4.20-8/kernel/fs/ntfs

把NTFS模块插入内核:

#cd /lib/modues/2.4.20-8/kernel/fs/ntfs
#insmod ntfs.o

挂装NTFS文件系统:
#mount /dev/hda1 /mnt/winnt

整个过程就完成了.
看起来比较复杂,但是其实非常简单.整个过程花一分钟左右的时间就可以完成.

这样做的好处是不用重新编译整个内核,省时间,出错的可能性也大大减小.

阅读(1003) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~