虚拟fat文件系统的创建及读取方法以及装置的制作方法

文档序号:6484344阅读:233来源:国知局
专利名称:虚拟fat文件系统的创建及读取方法以及装置的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种虚拟FAT (File AllocationTable,文 件分配表)文件系统的创建及读取方法以及装置。
背景技术
FAT文件系统是微软在20世纪70年代末到80年代初发布的,由微软的MS-DOS操 作系统支持。在FAT文件系统发展的过程中,出现了 FAT12、FAT16和FAT32三个版本,其中, FAT12文件系统由于具有一些致命的缺点,很早就被FAT16取代了,而FAT16和FAT32目前 还在广泛使用,特别是针对小容量的存储设备,例如USB盘、SD卡等。FAT文件系统的原理可以简单地描述为把存储空间分块映射到一个表中,从而实 现对存储空间的灵活支配。存储空间中的每一个块被称为簇,存储空间的映射表被称作FAT 表。三种FAT文件系统的一个明显区别就是FAT表中表示一个簇所用的位数不同,分别是 12、16和32文件的存储是不必连续的,但在FAT表中可用链表的形式把文件联系在一起。由于FAT16文件系统在大容量分区管理方面的效率急剧下降,而FAT32文件系统 却很好地解决了这个文件,所以在大分区管理方面,FAT32是理想的文件系统。参见图1,为FAT32文件系统基本结构示意图。可见,FAT32文件系统在结构上延 续了 FAT文件系统的基本结构,主要由以下三部分组成· DBR (Dos Boot Record,操作系统引导记录区),包括跳转指令、厂商标志、OS版 本号、BPB(Bios Parameter Block)、扩展BPB、引导程序和结束符;· FAT表,实际数据存储空间的映射表,FATl和FAT2完全一致,FAT2为FATl的备 份;·数据区,即实际数据的存储空间,相比于FAT16,从簇2不再有专门的根目录空 间,而是把根目录也当作一个特殊的文件来处理,起始簇是2。另外,FAT32文件系统还包括FDT (目录项),图1中未示出。下面介绍FAT32文件系统对文件的管理。除了根目录的所有文件(子目录也作为一种特殊的文件存在)都对应一组数据作 为文件来描述,被称为文件目录项。每个文件目录项内的所有文件和子目录的文件目录项 都存储在这个目录对应的存储空间内,每一个文件目录项有32个字节,主要包括文件名、 文件属性、文件大小、文件存储位置以及一系列的时间描述等。把文件路径、文件目录项和 FAT表联系在一起就可以完全把握一个文件在硬盘的存储情况,通过下面的步骤可定位出 文件的所有内容(1)通过路径找到文件所在目录的簇;(2)在目录对应的空间内比对文件名,找到文件对应的文件目录项;(3)通过文件目录项确定文件的起始簇和文件大小;(4)根据FAT表内的簇链确定文件的存储空间。

发明内容
本发明以标准FAT文件系统为基础,提供一种虚拟FAT文件系统的创建及读取方 法以及装置,从而可以实现通过虚拟FAT文件系统访问巨大容量的磁盘空间。为此,本发明实施例采用如下技术方案一种虚拟FAT文件系统的创建方法,为真实文件在目标分区的目标目录下创建其 对应的虚拟文件,该方法包括创建虚拟目录以及创建虚拟文件的步骤,其中,所述创建虚拟 文件的步骤包括在目标分区的目标目录下创建目录项,修改目录项属性文件名为虚拟文 件的名称;根据真实文件的大小在目标分区的FAT表中分配连续的簇,构成虚拟文件的簇 链。在创建虚拟目录之前还包括将虚拟FAT文件系统所在设备格式化为FAT32系统 后,在FAT32系统的数据区仅保存目录。所述将虚拟FAT文件系统所在设备格式化为FAT32系统还包括修改文件系统引 导扇区的FAT表个数为1。 在将虚拟FAT文件系统所在设备格式化为FAT32系统之前,还包括修改虚拟FAT 文件系统所在设备的驱动程序向访问虚拟FAT文件系统的设备的注册参数。优选地,该方法还包括创建包括簇链号、簇链尺寸以及真实文件全路径名的对应 关系的虚拟簇链号和真实文件对照表。其中,所述创建虚拟目录的步骤是在预先指定的磁盘空间进行的。一种虚拟FAT文件系统的读取方法,通过读取虚拟FAT文件系统中的虚拟文件访 问真实文件,该方法包括接收虚拟文件的读操作请求,该请求中包括扇区号和尺寸;根据 所述扇区号以及查找所述虚拟FAT系统获得的参数,计算得到虚拟文件的簇链号;根据所 述簇链号和所述读操作请求中的尺寸查找预先生成的虚拟文件簇链和真实文件对照表,得 到真实文件的全路径名和位置信息;根据真实文件全路径名和位置信息以及所述读操作请 求中的尺寸,确定真实文件的访问路径信息;根据所述访问路径信息访问真实文件。其中,所述根据所述扇区号以及查找所述虚拟FAT系统获得的参数,计算得到虚 拟文件的簇链号的具体过程为查找虚拟FAT系统的DBR,得到保留扇区数、FAT表扇区数和 扇区每簇数;利用所述扇区号、所述保留扇区数、FAT表扇区数和扇区每簇数计算得到虚拟 文件的簇链号。通过以下公式计算得到虚拟文件的簇链号簇链号=(扇区号-保留扇区数-FAT 表扇区数)/扇区每簇数+2。其中,所述根据所述簇链号和所述尺寸查找预先生成的虚拟文件簇链和真实文件 对照表,得到真实文件全路径名和位置信息的具体过程为根据所述簇链号和尺寸查找虚 拟文件簇链和真实文件对照表,确定所述簇链号和尺寸在起始簇链号和簇链尺寸所确定的 空间中,匹配出真实文件的全路径名;根据所述保留扇区数、FAT表扇区数、扇区每簇数和 起始簇链号计算得到起始簇链号对应的扇区号,根据所述读操作请求中的扇区号、起始簇 链号对应的扇区号计算得到真实文件的位置信息。一种虚拟FAT文件系统的创建装置,为真实文件在目标分区的目标目录下创建其 对应的虚拟文件,该装置包括虚拟目录创建单元以及虚拟文件创建单元,其中,所述虚拟文 件创建单元包括目录项创建子单元,用于在目标分区的目标目录下创建目录项,并修改目录项属性文件名为虚拟文件的名称;簇链创建子单元,用于根据真实文件的大小在目标分 区的FAT表中分配连续的簇,构成虚拟文件的簇链。一种虚拟FAT文件系统的读取装置,通过虚拟FAT文件系统中的虚拟文件读取真 实文件,该装置包括读操作请求接收单元,用于接收虚拟文件的读操作请求,该请求中包 括扇区号和尺寸;簇链号确定单元,用于根据所述扇区号以及查找所述虚拟FAT系统获得 的参数,计算得到虚拟文件的簇链号;真实文件路径确定单元,用于根据所述簇链号和所述 尺寸查找预先生成的虚拟文件簇链和真实文件对照表,得到真实文件的全路径名和位置信 息,并根据真实文件全路径名和位置信息以及所述读操作请求中的尺寸,确定真实文件的 访问路径信息;真实文件访问单元,用于根据所述访问路径信息访问真实文件。通过一些网络技术,例如网络存储协议(ISCSI),可以实现一台机器A的某个或某 些磁盘分区映射为机器B的某个分区,机器A的文件系统通常是完整的文件系统,包含文件 系统的元数据,目录和文件数据。本发明实现的虚拟FAT文件系统(FictFAT32)仅包含文 件系统的元数据和目录,文件数据存放于其它分区。FictFAT32需要很小的磁盘空间,通常 在16M容量的空间就可映射32G物理磁盘上的文件。通过网络协议可把它完全映射到某个 嵌入式设备的内存空间中,而嵌入式设备的内存空间可被别的主机作为USB存储设备来访 问。通过本发明提供的方案,实现了在某些设备上(例如嵌入式设备上),通过较小的内存 空间访问巨大容量磁盘空间。


图1为现有技术FAT32文件系统基本结构示意图;图2为本发明创建虚拟FAT文件系统的方法流程图;图3为本发明虚拟FAT文件系统与标准FAT文件系统对比示意图;图4为本发明读取虚拟FAT文件系统的方法流程图;图5为本发明读取虚拟FAT文件系统示意图;图6为本发明实施例的应用场景示意图;图7为本发明创建虚拟FAT文件系统的装置结构示意图;图8为本发明读取虚拟FAT文件系统的装置结构示意图。
具体实施例方式目前对FAT文件系统的使用,都是从文件簇链号到文件扇区号的解析,在应用中, 要求映射机器的某个分区P到分区Q,分区P和分区Q都采用FAT文件系统。假设分区Q仅 包含FAT32文件系统元数据和目录,不包括具体的文件数据,而是记录了其他分区上的某 个文件的信息(文件全路径名、偏移量和尺寸),此时分区P就需要支持扇区号转换为到文 件偏移量的操作。由于文件偏移和文件簇链号也是一一对应的,即要求在FAT文件系统上 实现文件扇区号到文件簇链号的解析。本发明提出了一个文件扇区号到文件数据逆向访问 的虚拟FAT文件系统,且在此文件系统上只包含目录(用于组织文件),但不包含文件的数 据,由此,通过访问该虚拟FAT文件系统,可实现对大容量磁盘空间内数据的读取。标准的FAT32文件系统由以下几部分组成DBR、FAT1、FAT2、FDT(目录表)和数据 区,而本发明构造的基于FAT32文件系统的虚拟FAT文件系统(FictFAT32)不包括文件真实数据的存储,文件的真实数据是存放在其他的物理分区上的。为了便于理解本发明,首先定义以下术语 虚拟分区(FictPart32):自定义的内存分区,仅保存DBR、目录表、FATl以及部分 磁盘空间,其中,所谓部分磁盘空间是指仅用于存放目录所占的磁盘空间; 虚拟FAT文件系统(FictFAT32)在FictPart32上实现的文件系统,与此文件系 统对应,新增了虚拟文件簇链和真实文件对照表,从而来支持文件读操作;·虚拟文件在虚拟FAT文件系统FictFAT32保存的文件,在FictFAT32中仅为其 分配目录项和磁盘分配簇链;·虚拟目录虚拟FAT文件系统FictFAT32保存的目录,在FictFAT32中为其分配 目录项、簇链和磁盘空间。参见图2,为本发明创建虚拟FAT文件系统的方法流程图,包括以下步骤S201 修改待创建FictFAT32所在设备的驱动程序向访问FictFAT32的设备(例 如数字电视)注册参数,使得访问FictFAT32的设备(例如数字电视)看到一个一个固 定大小的虚拟块设备,例如32G ;上述S201步骤主要目的是,“欺骗”访问FictFAT32的设备(例如数字电视),使 该访问设备认为FictFAT32所在设备为类似USB的存储装置。实际上,FictFAT32所在设 备是具有CPU的计算机系统,例如普通PC机或嵌入式设备等。需要说明的是,S201步骤是可省略的。S202 根据FirtFat32文件系统的定义初始化此待创建FictFAT32所在设备成 FAT32格式,并且,在FAT32系统的数据区仅包括目录,而不包括文件;优选地,在格式化过程中,修改文件系统引导扇区的FAT表个数为1 (地址偏移 OX 10),由于FAT2表通常用于文件系统数据的恢复,由于FictFAT32是一个只读的文件系 统,所以在FictFAT32中省略掉FAT2表以节省磁盘空间。下面描述创建源文件A (真实文件A)对应的虚拟文件B的过程(由于源文件和虚 拟文件位于不同的装置中,因此,这两个文件名称可以重复),其中,假设源文件A存在于分 区P的M目录下,虚拟文件B存在于FictFAT32分区Q的N目录下。S203:创建虚拟目录;FAT32目录管理与普通文件相同,一个子目录文件在FDT表中也占据32个字节的 目录项。由于目录结构在FictFAT32分区Q需要分配磁盘空间,因此,在文件目录表FDT之 后,为其预留相应的簇链号空间(CS)和相应的磁盘空间(DS)。FictFAT32在为目录分配空 间时a、仅在预保留的簇链号空间(CS)查找空闲的簇链号,分配给虚拟目录使用;b、每个虚拟目录都使用不同的簇,假设每个簇的大小为nk(通常为4K,8K,16Κ), 存储m个虚拟目录,则需要空间mnk的磁盘空间。虚拟目录所占的磁盘空间(DD)需要在虚 拟分区FictPart32上实际分配。S204 创建虚拟文件;a、在FictFAT32分区Q的N目录下创建目录项,修改目录项属性(字节偏移0X0 和0X8),文件名为B;b、根据源文件A的大小,在FictFAT32分区Q的FATl表中为其分配连续的簇,构成此文件数据对应的簇链。文件B的簇链号仅在文件簇链号空间(FS)中分配。对于文件 簇链号空间(FS)的簇链号不分配具体的磁盘扇区,即没有相应的磁盘空间。C、修改分区的读操作。当读取这个分区上的某个扇区时,根据新增的虚拟文件簇 链和真实文件对照表(后续介绍),把对此文件的读操作根据一个三元组[真实文件全路径 名、位置、尺寸]重新定向到其它分区上的某个文件的数据读操作,其它分区可采用FAT32 或NTFS等文件系统。可见,目录簇链分配方式和文件簇链分配方式是不同的,前者需要分配实际的磁 盘空间,而后者不需要。所谓虚拟文件簇链和真实文件对照表,是在创建FictFAT32同时生成的,包括虚 拟文件簇链号、簇链尺寸与真实文件全路径名的对应关系,通过[虚拟文件簇链号、簇链尺 寸]可匹配出[真实文件全路径名],继而可实现对真实文件的访问。参见图3,为本发明虚拟FAT文件系统与标准FAT文件系统对比示意图,可见,与标 准FAT文件系统相比,虚拟FAT文件系统省略了 FAT2,并且,将FATl分为两部分,第1部分 用于存储目录,第2部分用于存储文件数据,另外,虚拟FAT文件系统的数据区仅存放目录, 而不存放文件。由此,通过访问FictFAT32的设备(例如数字电视)对FAT文件系统标准文件访 问方法,可以在虚拟分区上确定真实文件全路径名,从而实现通过虚拟FAT文件系统访问 真实文件。参见图4,为本发明读取虚拟FAT文件系统的方法流程图,并请结合参见本发明读 取虚拟FAT文件系统示意图5。图4包括S401 接收虚拟文件的读操作请求,该请求中包括扇区号以及尺寸;S402 查找FictFAT32,通过FictFAT32的DBR获得参数,利用扇区号以及获得的 参数计算得到虚拟文件的簇链号(具体见下面介绍的公式1);对于标准FAT32文件系统,簇链号到扇区的计算公式如下扇区号=保留扇区数+FAT扇区数+(簇链号-2) *扇区每簇数由此,逆向的扇区号到簇的计算公式为簇链号=(扇区号-保留扇区数-FAT扇区数)/扇区每簇数+2........公式1即,通过某个扇区号可求得此扇区对应的簇链号。S403 利用簇链号和簇链尺寸为关键字,查找虚拟文件簇链和真实文件对照表,得 到真实文件全路径名以及位置信息;参见表1,为虚拟文件簇链和真实文件对照表的一个实例。表 1 在虚拟文件簇链和真实文件对照表中,定义了某个虚拟簇链号所对应的文件。因 为在为文件分配簇链号时,簇链通常是连续的,所以优选地,采用二元组[簇链号,簇链尺 寸]来代表一个文件的一段簇链,可节省空间。该虚拟文件簇链和真实文件对照表作为 FictPart32的配置文件来保存。对于虚拟文件,其数据保存在别的分区上,FictFAT32仅包 含相应文件的簇链表,所以,可定时根据真实文件全路径名来更新虚拟文件簇链和真实文 件对照表,以减少一个文件占用多个非连续簇的情况,这种方式可有效地减少虚拟文件簇 链和真实文件对照表的大小。S404:由真实文件全路径名、位置信息以及读操作中的尺寸,可确定文件的访问操 作,g卩,获知真实文件的路径信息;S405 利用真实文件的路径信息,读取位于其他分区上的该真实文件的信息。
下面以一个具体实例对本发明进行说明。参见图6,为本发明实施例的应用场景示意图。图6示出了本发明提供的FictFAT32的一个具体应用场景。图6中,USB设备(USB Dongle)即是实现FictFAT32的设备,该设备实现了基于 WIFI的数字电视与计算机之间的互联,在数字电视角度而言,USB Dongle设备类似于普通 的USB,而实际上,该设备是具有CPU的嵌入式设备。通过USB设备上的USB Gadget驱动程 序,数字电视把USB设备的内存识别为U盘,并且根据U盘上的FictFAT32读取某个真实文 件播放。由于USB设备的内存容量有限(通常16Mbytes),存储文件的大小和数量都较小, 因此需要一种方式,使得数字电视能够访问大量的文件。支持文件扇区号到文件数据逆向 访问的FictFAT32正是为满足这一要求而设计的。下面结合图6,介绍数字电视通过FictFAT32读取计算机上真实文件的过程,包 括a)、数字电视向USB Dongle发送虚拟文件读操作请求,该读操作请求通过USB Gadget驱动获得,该请求中包括输入的扇区号Q、尺寸N ;b)、USB Dongle查找FictFAT32,并根据查找到的信息以及读操作请求中的扇区号 Q计算得到簇链号C ;假设查找FictFAT32得到保留扇区数为R (通过FictFAT32的FAT32引导扇区得 到),FAT1表扇区数F(这里仅使用FATl表,通过FictFAT32的FATl得到),扇区每簇数S, 则根据公式1计算得到簇链号C为簇链号C=(输入扇区号-保留扇区数-FAT表扇区数)/扇区每簇数+2= (Q-R-F) /S+2c)、根据(簇链号C,尺寸N)查找虚拟文件簇链和真实文件对照表,检查(簇链号C,尺寸N)是否在(起始簇链号U,簇链尺寸W)所确定的空间中,从而得到真实文件全路径 名T ;并且,起始簇链号对应的扇区号Y =保留扇区数Q+FAT扇区数F女1+(起始簇链号U-2) *扇区每簇数S;文件位置P =(扇区号Q-某文件的起始簇链号对应的扇区号Y)女512 ;其中,文件位置P的单位为Byte。d)、把(真实文件全路径名T,文件位置P,尺寸N)交给网络通讯单元(网络通讯 单元已记录了主机端IP地址),网络通讯单元和计算机的网络通讯单元进行通讯。在计算 机端,根据(真实文件全路径名T,文件位置P,尺寸N),利用windows的标准文件访问接口 即可获得某一个真实文件的数据。由此,实现了数字电视通过小容量的USB Dongle设备访 问大容量的计算机。另外,在具体实现中,本发明还可执行虚拟文件与真实文件的同步操作。当真实文件被删除或修改或移除操作时,其结果要影响到虚拟文件。为了监控这 些变化,可以在真实文件所在的系统上建立监控线程。此线程通常为睡眠(sle印)状态。另 外为此操作系统加入文件系统回调函数或钩子函数,用于唤醒监控线程。真实文件所在系 统的监控线程进一步通过网络通讯单元,把这些信息传递给USB Dongle0 USB Dongle侧的 网络通讯单元收到信息后,通知FictFat32监控线程修改虚拟文件的相关信息。虚拟文件与真实文件的同步操作具体包括以下几种情况1、真实文件被删除,则此对应的虚拟文件也要被删除。删除操作包括删除虚拟
文件系统中的目录项,清空此文件的簇链;删除虚拟文件簇链和真实文件对照表中相关项 目;2、真实文件的大小发生变化。当真实文件的大小发生变化时,要即时更新相应虚 拟文件目录项的属性、文件的簇链表(添加新的簇或修改簇结束标志)。访问某个簇相应 的FAT表项位置公式如下,表项偏移=保留扇区数* 512+(簇号-2) *4。通过此公式可 以修改簇号。当文件长度增加时,对于新簇的分配,仍使用操作系统自带的簇分配策略和函 数。当文件长度减少时,计算出文件目录需要的簇链长度,在新的结束位置设定FAT32文件 结束标志(0X0FFFFFFF)。如果文件的长度没有变化,仅是内容变化,则仅更新虚拟文件目 录项属性中和时间相关的部分。3、真实文件的移动操作被分解为真实文件的删除操作和虚拟文件新建操作,即对 应的虚拟文件也要被删除,然后重新建立虚拟文件与移动后的真实文件的对照关系。与上述创建虚拟FAT文件系统的方法相对应,本发明提供一种虚拟FAT文件系统 的创建装置,为真实文件在目标分区的目标目录下创建其对应的虚拟文件,参见图7,该装 置包括虚拟目录创建单元701以及虚拟文件创建单元702,其中,虚拟目录创建单元701创 建虚拟目录的具体实现与标准FAT32系统创建目录的过程类似,此处不作重点描述;虚拟 文件创建单元702包括目录项创建子单元7021和簇链创建子单元7022,其中目录项创建子单元7021,用于在目标分区的目标目录下创建目录项,并修改目录 向属性文件名为;簇链创建子单元7022,用于根据真实文件的大小在目标分区的FAT表中分配连续的簇,构成虚拟文件的簇链。与上述读取虚拟FAT文件系统的方法相对应,本发明提供一种虚拟FAT文件系统 的读取装置,通过读取虚拟FAT文件系统中的虚拟文件访问真实文件,参见图8,该装置包 括读操作请求接收单元801,用于接收虚拟文件的读操作请求,该请求中包括扇区号 和尺寸;簇链号确定单元802,用于根据读操作请求接收单元801接收的读操作请求中的 扇区号以及查找所述虚拟FAT系统得到的参数,计算得到虚拟文件的簇链号;真实文件路径确定单元803,用于根据簇链号确定单元802得到的簇链号,以及读 操作请求接收单元801接收的读操作请求中的尺寸,查找预先生成的虚拟文件簇链和真实 文件对照表,得到真实文件的全路径名和位置信息,并根据真实文件全路径名和位置信息 以及读操作请求中的尺寸,确定真实文件的访问路径信息;真实文件访问单元804,用于根据真实文件路径确定单元803确定的真实文件的 访问路径信息,访问真实文件。对于上述两个装置的一些具体实现,可参见方法实施例,在此不作赘述。通过一些网络技术,例如网络存储协议(ISCSI),可以实现一台机器A的某个或某 些磁盘分区映射为机器B的某个分区,机器A的文件系统通常是完整的文件系统,包含文 件系统的元数据,目录和文件数据。本发明实现的虚拟FAT文件系统FictFAT32仅包含文 件系统的元数据和目录,文件数据存放于其它分区。FictFAT32需要很小的磁盘空间,通常 在16M容量的空间就可映射32G物理磁盘上的文件。通过网络协议可把它完全映射到某个 嵌入式设备的内存空间中,而嵌入式设备的内存空间可被别的主机作为USB存储设备来访 问。通过本发明提供的方案,实现了在某些设备上(例如嵌入式设备上),通过较小的内存 空间访问巨大容量磁盘空间(例如图6中,数字电视通过USB设备访问计算机)。本领域普通技术人员可以理解,实现上述实施例的方法的过程可以通过程序指令 相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序在执行时执行上述 方法中的对应步骤。所述的存储介质可以如ROM/RAM、磁碟、光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种虚拟FAT文件系统的创建方法,其特征在于,为真实文件在目标分区的目标目录下创建其对应的虚拟文件,该方法包括创建虚拟目录以及创建虚拟文件的步骤,其中,所述创建虚拟文件的步骤包括在目标分区的目标目录下创建目录项,修改目录项属性文件名为虚拟文件的名称;根据真实文件的大小在目标分区的FAT表中分配连续的簇,构成虚拟文件的簇链。
2.根据权利要求1所述方法,其特征在于,在创建虚拟目录之前还包括将虚拟FAT文件系统所在设备格式化为FAT32系统后,在FAT32系统的数据区仅保存 目录。
3.根据权利要求2所述方法,其特征在于,所述将虚拟FAT文件系统所在设备格式化为 FAT32系统还包括修改文件系统引导扇区的FAT表个数为1。
4.根据权利要求2所述方法,其特征在于,在将虚拟FAT文件系统所在设备格式化为 FAT32系统之前,还包括修改虚拟FAT文件系统所在设备的驱动程序向访问虚拟FAT文件系统的设备的注册参数。
5.根据权利要求1所述方法,其特征在于,还包括创建包括簇链号、簇链尺寸以及真实文件全路径名的对应关系的虚拟簇链号和真实文 件对照表。
6.根据权利要求1至5任一项所述方法,其特征在于,所述创建虚拟目录的步骤是在预 先指定的磁盘空间进行的。
7.—种虚拟FAT文件系统的读取方法,其特征在于,通过读取虚拟FAT文件系统中的虚 拟文件访问真实文件,该方法包括接收虚拟文件的读操作请求,该请求中包括扇区号和尺寸;根据所述扇区号以及查找所述虚拟FAT系统获得的参数,计算得到虚拟文件的簇链号;根据所述簇链号和所述读操作请求中的尺寸查找预先生成的虚拟文件簇链和真实文 件对照表,得到真实文件的全路径名和位置信息;根据真实文件全路径名和位置信息以及所述读操作请求中的尺寸,确定真实文件的访 问路径信息;根据所述访问路径信息访问真实文件。
8.根据权利要求7所述方法,其特征在于,所述根据所述扇区号以及查找所述虚拟FAT 系统获得的参数,计算得到虚拟文件的簇链号的具体过程为查找虚拟FAT系统的操作系统引导记录区DBR,得到保留扇区数、FAT表扇区数和扇区 每簇数;利用所述扇区号、所述保留扇区数、FAT表扇区数和扇区每簇数计算得到虚拟文件的簇 链号。
9.根据权利要求8所述方法,其特征在于,通过以下公式计算得到虚拟文件的簇链号 簇链号=(扇区号-保留扇区数-FAT表扇区数)/扇区每簇数+2。
10.根据权利要求8所述方法,其特征在于,所述根据所述簇链号和所述尺寸查找预 先生成的虚拟文件簇链和真实文件对照表,得到真实文件全路径名和位置信息的具体过程2为根据所述簇链号和尺寸查找虚拟文件簇链和真实文件对照表,确定所述簇链号和尺寸 在起始簇链号和簇链尺寸所确定的空间中,匹配出真实文件的全路径名;根据所述保留扇区数、FAT表扇区数、扇区每簇数和起始簇链号计算得到起始簇链号对 应的扇区号,根据所述读操作请求中的扇区号、起始簇链号对应的扇区号计算得到真实文 件的位置信息。
11.一种虚拟FAT文件系统的创建装置,其特征在于,为真实文件在目标分区的目标目 录下创建其对应的虚拟文件,该装置包括虚拟目录创建单元以及虚拟文件创建单元,其中, 所述虚拟文件创建单元包括目录项创建子单元,用于在目标分区的目标目录下创建目录项,并修改目录项属性文 件名为虚拟文件的名称;簇链创建子单元,用于根据真实文件的大小在目标分区的FAT表中分配连续的簇,构 成虚拟文件的簇链。
12.—种虚拟FAT文件系统的读取装置,其特征在于,通过虚拟FAT文件系统中的虚拟 文件读取真实文件,该装置包括读操作请求接收单元,用于接收虚拟文件的读操作请求,该请求中包括扇区号和尺寸;簇链号确定单元,用于根据所述扇区号以及查找所述虚拟FAT系统获得的参数,计算 得到虚拟文件的簇链号;真实文件路径确定单元,用于根据所述簇链号和所述尺寸查找预先生成的虚拟文件簇 链和真实文件对照表,得到真实文件的全路径名和位置信息,并根据真实文件全路径名和 位置信息以及所述读操作请求中的尺寸,确定真实文件的访问路径信息;真实文件访问单元,用于根据所述访问路径信息访问真实文件。
全文摘要
本发明公开了一种虚拟FAT文件系统的创建及读取方法以及装置,其中的创建方法包括创建虚拟目录以及创建虚拟文件的步骤,其中,所述创建虚拟文件的步骤包括在目标分区的目标目录下创建目录项,修改目录向属性文件名为B;根据真实文件A的大小在目标分区的FAT表中分配连续的簇,构成虚拟文件B的簇链。采用本发明,可通过虚拟FAT文件系统访问巨大容量的磁盘空间。
文档编号G06F17/30GK101882132SQ20091008304
公开日2010年11月10日 申请日期2009年4月27日 优先权日2009年4月27日
发明者谢军 申请人:深圳市闪联信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1