免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 837 | 回复: 0
打印 上一主题 下一主题

对NTFS文件系统的快速支持(转自linuxfans) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-18 20:07 |只看该作者 |倒序浏览

                [color="#ff0000"]通过此方法,新手最多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
注意:千万不能运行命令make modules_install,否则将带来严重的后果,它会删除你系统中的所有模块,只安装刚刚编译的模块(ntfs.o)。
NTFS模块插入内核:
#cd /lib/modues/2.4.20-8/kernel/fs/ntfs
#insmod ntfs.o
也可以运行命令depmod;modprobe ntfs
挂装NTFS文件系统:
#mount /dev/hda1 /mnt/winnt
整个过程就完成了.
看起来比较复杂,但是其实非常简单.整个过程花一分钟左右的时间就可以完成.
这样做的好处是不用重新编译整个内核,省时间,出错的可能性也大大减小.
PS:做了些修改

[color="#ff0000"]附:安装RPM包实现挂载ntfs的方法

本方法对Redhat 7.3 8.0 9.0完全解决方法,最为简单的解决办法。
下载RPM 主站:
[color="#0000ff"]http://linux-ntfs.sourceforge.net/info/redhat.html

这个方法真是太棒了,一个RPM下去,就OK了,要选与你系统相应内核的RPM
#uname -a
会有类似如下的信息出来
Linux LinuxSir01 2.4.18-17.8.0 #1 Tue Oct 8 13:51:08 EDT 2002 i686 i686 i386 GNU/Linux
这就要下载与2.4.18-17.8内核相对应的。。我们要具体问题具体分析。
上面就是INTEL的CPU的。。。。。
如果有AMD的CPU,那就是类似这样的。。
Linux LinuxSir01 2.4.18-14 # 1 Wed Sep 4 12:13:11 EDT 2002 i686 athlon i386 GNU/Linux
看一下这里,红字的地方是不是有个athlon的?那就要下载结尾是athlon.rpm,但还不能是文件名还不要带有smp之类的,上面的例子也是一样的。
然后就把下载下来的RPM安装上
#rpm -ivh ker*rpm --nodeps --force
mount分区的一些具体工作:
#mkdir /mnt/WinC
#mount -t ntfs /dev/hda1 /mnt/WinC
#cd /mnt/WinC
看一下能不能访问了?如果访问不了,说明下载的RPM与内核的版本不相对应。要再好好的想一想应该下载什么样的了。。。。。
zjshen兄弟的所下载的文件名的理解如下,在此致谢!
kernel表示内核,ntfs代表支持ntfs磁盘格式,2.4.18-3代表linux系统内核的版本号,athlon代表支持AMD athlon的cpu,而ix86则代表支持intel的处理器。不知这样解释对否?
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15123/showart_114677.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP