关于ntfs和内核问题

分类: 内核技术   出处:iocblog整理  更新时间:2008-05-24   添加到收藏  

  作者:刘军民
  
  传统编译内核模块的方法繁琐而费时,本文将告诉我们一种快速编译所需要内核模块的新方法。
  当你安装完linux系统,并且已经启动,恭喜你!如果你的硬盘上还安装了winnt/2000系统,你试图去访问另一个ntfs分区时却遇到了麻烦。因为你所用的linux系统没有已编译的支持ntfs文件系统的模块。怎么办?也许你会运行make menuconfig,重新定制你需要的所有模块,接着运行make modeules;make modeules_install来安装。这样不仅繁琐、费时,还可能会出现问题。或者因为编译内核对你有些棘手,太多的选择让你手足无措,你根本没有太好的方法。本文给你提供一个简单的方法,你可以轻松地去编译你所需要的支持ntfs系统的模块(ntfs.o)。以此为例,但愿对你编译其他模块有所帮助。
  
  写此文时我用的系统是red hat linux release 7.0 (guinness) kernel 2.2.16-22 on an i686。从一个新安装的系统开始,我们一起去编译一个自己想要的支持ntfs文件系统模块。
  
  一、找到编译内核所需要的.config文件。
  在/usr/src/linux/configs目录下有若干编译内核所用的配置。选择我们想要的配置,将它复制到/usr/src/linux目录下,改名为.config。
  cp /usr/src/linux/configs/kernel-2.2.16-i686.config /usr/src/linux/.config
  
  二、修改.config文件,去掉不用的模块,加上自己想要的模块。
  打开.config,有许多xxxx=m的项,这些都是要被编译为模块的项,因为我们不希望编译这些模块,所以要把xxxx=m的项统统去掉。然后再加上我们想要的模块,将# config_ntfs_fs is not set 改为config_ntfs_fs=m 当然,可以用你熟悉各种工具来做这件事。
  
  三、编译ntfs模块。
  在/usr/src/linux目录下运行命令make modules来编译我们想要的ntfs模块。
  
  四、安装ntfs模块。 [www.iocblog.net 来源]
  编译后得到的ntfs.o在/usr/src/linux/fs/ntfs目录下,手动将它复制到正确的目录下。
  cp /usr/src/linux/fs/ntfs/ntfs.o /lib/modules/2.2.16-22/fs/
  注意:千万不能运行命令make modules_install,否则将带来严重的后果,它会删除你系统中的所有模块,只安装刚刚编译的模块(ntfs.o)。
  
  五、载入ntfs模块.
  运行命令depmod;modprobe ntfs 试着访问你的ntfs文件系统吧,祝你成功!
  
  有些模块依赖于你的系统内核,所以不适用本文所提供的方法。还有些模块和其他模块有依赖关系。如果你不熟悉这些依赖关系的话,建议你在第二步去掉不用的模块选项后,通过make menuconfig来加上自己想要的模块。
  
  我用此方法用了三分钟编译了支持ntfs文件系统的模块,你呢?
  
Tag: NTFS



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。