发布时间:2016-02-26 13: 46: 43
在Windows 中,Microsoft使用了一种新型的文件系统NTFS,它针对FAT/FAT32文件系统安全性差、容易产生碎片、难以恢复等缺点作了重大改进,使得系统总能保持较好的性能。不过使用NTFS的分区只能被Windows 系统识别和操作,而且它的结构是Microsoft的内部机密,没有任何官方文档。因此给各位需要在非Windows 环境读写NTFS分区的编程人员带来了巨大不便。不过好在还有很多人在研究分析它,现在结合网上搞到的一些资料对NTFS作一个说明。
图一:ntfs图标
在NTFS中一改FAT/FAT32中将文件分配表等系统数据放在分区最前面,然后接着才是数据区的做法,把所有的信息都组织起来以文件的形式存放,包括扇区分配表,引导记录等数据都是作为文件存在于磁盘中。其中只有$Boot(分区引导记录)文件的位置是固定存放在分区首部,其他的文件都可以随意存在于分区中的任何一个位置。这样使得对所有数据的读写都有一个较为统一的方法,而且使得改变分区的尺寸和碎片整理变得非常容易。
在非NT的系统中对NTFS分区中的文件进行自由的读写操作才是我们研究NTFS分区格式的最终目标。下面我就对整个读操作的流程来一个说明:
首先从硬盘的分区表中计算出分区开始的位置,再读取分区数据区中的第一个扇区($Boot文件的第一个扇区)从中取得隐藏扇区数目,$MFT开始的簇号,每簇扇区数,每个MFT记录的尺寸。
通过这些数据计算出$MFT所在的位置,读取第一个MFT记录,然后按照记录中描述的$MFT文件的存放位置读出文件名为“.”的MFT记录(根目录文件)。然后在该记录中搜索要求的目录项。找到以后,获得它的描述在$MFT中的索引,再在其中寻找下级目录的索引,直到找到为止。
目前为止使用苹果电脑的用户是无法读写ntfs格式的磁盘的,那么为了解决这个问题必须使用ntfs for mac软件,能够很好的解决这一问题。
展开阅读全文
︾