NTFS分区完全读写新招
时间:2006-12-07 来源:leo7766
NTFS分区完全读写新招
500)this.width=500;" border=0>
leo wang
qq 21575479
http://leo7766.cublog.cn
Linux NTFS历史
早在1995年Windows NT时代linux就开始了支持NTFS分区读写的驱动开发工作,在20世纪末的时候已经有了一个功能上几近完全的测试版。然而随着微软Windows 2000的发布,NTFS版本也进行了升级,这个测试版驱动在挂载这种新的NTFS分区时没有做必须的检查,在用户不了解的情况下强行挂载上后将产生无数奇怪的读写问题,严重的将损坏原分区的逻辑结构,而这也就是Linux NTFS驱动一直以来名声不佳的根源。
2000年开始,Linux NTFS项目组决定完全重写该驱动,期间发布了ntfsresize,它可以安全的修改大批量的NTFS元数据,如今这个工具已被大量分区软件和操作系统安装程序所使用,证明了它的可靠性。之后的又一个里程碑是ntfsmount的发布,它运用了创新的File system in User space (FUSE)-用户空间文件系统开发框架,支持读写普通文件,链接,设备文件,FIFO,套接字等,并具有进一步的扩展性。
关于ntfs-3g
2005年的时候,项目组成员与苹果公司协商后决定双重授权项目组的成果,他们将帮助Mac OS X操作系统尽早实现NTFS的完全读写,同时这个实现后的成果也将回馈给开源社区,但是按照苹果的开发进程,新驱动预计将在2007年夏才能发布。
开源社区总不乏惊喜,正当人们苦苦等待2007年夏新驱动发布的时候,Szabolcs Szakacsits,在2006年6月14日发布了他在ntfsmount基础上开发的新版驱动:NTFS-3G。根据初步的测试,这个驱动的性能表现超过了为数不多的几个同类软件,包括商业版的Paragon NTFS和基于WINE的Captive NTFS。这一驱动得到了开源社区的热烈反响和积极评价。
挂载实践
根据其官方网站http://www.ntfs-3g.org的指导我在自己的PC机上实际试了一下,轻松实现linux对NTFS的支持。我PC机上安装的发行版是Debian etch,locale是zh_CN.utf8,下面就以debian平台为例来介绍ntfs-3g的安装与配置。
1.让内核支持fuse
ntfs-3g是根据用户空间文件系统框架FUSE开发的,所以首先须使内核支持这一特性,在编译内核时将"Filesystem in Userspace support"直接编译进内核或编译为内核模块:
File systems --->
<*> Filesystem in Userspace support
如果是编译模块的话需要在每次NTFS分区挂载之前将fuse模块载入内核,这个操作同样适合于使用debian预编译kernel-image的用户,命令是:
# modprobe fuse
或在/etc/modules文件中加入一行,让系统启动时自动载入该模块:
fuse
2.安装ntfs-3g软件包
为了实现最终的挂载,需安装ntfs-3g软件包:
# apt-get update
# apt-get install ntfs-3g
debian将自动找出并安装ntfs-3g倚赖的软件包fuse-utils,libfuse2等。
3.挂载ntfs分区
如果你的Windows NTFS 所在分区为 /dev/hda2, 在/mnt目录下新建一个目标目录,如 windows,然后用root用户修改/etc/fstab,加入如下这一行:
/dev/hda2 /mnt/windows ntfs-3g defaults 0 0
然后用下面的命令挂载 这个NTFS分区:
# mount /mnt/windows
另有一个无须修改/etc/fstab文件的临时性挂载方法:
# mount -t ntfs-3g /dev/hda2 /mnt/windows
在挂载时和平常我们用mount一样,可根据需要加上相关的挂载选项,这里我使用了默认选项。现在NTFS分区已经挂载上了,进入/mnt/windows 目录,就可以完全读写这个分区了,而且支持中文文件、目录的读写。
总结
上面介绍了ntfs-3g软件的概况和在debian系统上安装并使用它挂载NTFS分区的实践,其它发行版的安装配置方法类似,其官方站点上也有直接编译安装的介绍,大家可以做参考。
[参考]
http://www.ntfs-3g.org
http://www.linux-ntfs.org