QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4930|回复: 7

对NTFS文件系统的快速支持

  [复制链接]
发表于 2004-11-3 13:38:08 | 显示全部楼层 |阅读模式
快速支持NTFS文件系统

通过此方法,新手最多5分钟,老手只需要一分钟,就可以使得内核增加对NTFS的支持

当前大多数发行版默认情况下都不支持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

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

这样做的好处是不用重新编译整个内核,省时间,出错的可能性也大大减小.
发表于 2004-11-3 14:17:57 | 显示全部楼层
不错,很详细。不过

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

都选Y了,那就不会有模块,而是编译进内核了吧
回复

使用道具 举报

 楼主| 发表于 2004-11-3 14:24:54 | 显示全部楼层
不好意思,上面不小心写错了,

应该在:
NTFS filesyste support选择 M

以模块方式编译.
感谢cnhnln的提醒.
回复

使用道具 举报

发表于 2004-11-3 15:28:21 | 显示全部楼层
你所举的例子应该是针对redhat版本的内核,因为印象中只有redhat版本的内核源码的Makefile才会有:
EXTRAVERSION = -8custom
这样的custom字眼
回复

使用道具 举报

发表于 2004-11-7 11:30:28 | 显示全部楼层
挂是挂上去了,可只有root用户有读权限,其他用户连读权限都无法设置。
回复

使用道具 举报

发表于 2004-11-13 20:56:33 | 显示全部楼层
我的ntfs是挂上了,可是属于中文的文件都不见了,怎么办???
回复

使用道具 举报

发表于 2005-1-14 00:42:15 | 显示全部楼层
我刚接触linux,想请问下两个问题
一,在file systems 中
NTFS filesyste support选择 Y
将其编译进内核,这样不是已经写到内核中了么?而且后面的模块编译步骤也可以省了吧
这样难道不能解决问题?
二,大大说的第二步,生成一个空的.config文件。这个时候是把原有的.config内核配置文件覆盖还是还是相当于用make mrproper 命令清空源代码树?主要还是不理解make
mrproper 命令的作用
回复

使用道具 举报

发表于 2005-1-25 11:39:45 | 显示全部楼层
著者没空,我来回答吧:
1, 因为没有重新编译内核,所以只能是编译模块了,然后把模块插入已有的内核中.所以不能选编译到内核中.
2,还是上面的原因,所以要建一个干净的配置文件,只编译所要的模块.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-5-15 07:59 , Processed in 0.046582 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表