- 积分
- 1075
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2010-10-11
- 精华
|
马上注册,获取阅读精华内容及下载权限
您需要 登录 才可以下载或查看,没有帐号?注册
x
一个目录被删除后又被重新分配使用的时候。在这种情况下,现在的目录项已经不再指向原来的文件或目录,原来的文件和目录将没有目录项指向它们,也就无法定位其所在位置。例如说,一个目录项原来指向210号簇,然后目录项被删除并重新对其进行分配,现在指向了400号簇,210号簇内的内容依然存在,但我们无法简单地沿着目录树找到它们,我们也无法知道它们的存在,这时这些文件就被称为孤目录或孤文件。
孤目录:要找到孤目录,我们必须对数据区中的每个扇区进行检查。检查方法并没有一个标准的规定,一种方法是检查每个扇区(注意不是簇)的前32个字节,看它们是否符合目录项的结构。如果符合目录项结构,就应该继续查看这个扇区的其余部分以查找可用信息。对每个扇区进行检查,可以避免遗漏掉那些位于己分配给其他文件使用的簇的松弛空间中的目录项。还有一种类似的方法是搜索每个簇的前32个字节是否为一个“.”目录项,因为每个目录的第一个目录项一定是“.”目录项。不过这种方法只能查找到目录的第一个簇,而无法查找到目录的其他片段。
在程序的实现中,解决这些问题的一种方法是建立另外的目录项地址序列。例如有的软件及某些Unix操作系统会假设所有的扇区都分配给目录使用,每个扇区被分成16个大小为32字节的项,假设每个项都是一个目录项,然后从数据区的第一个扇区的第一个项开始向后依次进行编号,数据区起始扇区的第一个项为0号目录项,第二个为1号目录项。
不过仍然有一个明显的问题,每个文件和目录都会有一个目录项指向它,但根目录却没有。这是因为根目录的位置(对于FAT12/16还包括大小值)记录在引导扇区中,而并不是由数据区内的目录项进行描述的。有的软件解决这个问题的方法是为根目录分配2号目录项地址号,然后再从3开始向后进行分配。也就是说数据区起始扇区的第一个项为3号目录项。
孤文件:要找到孤文件,目前最好的方法是根据文件的特定文件头及文件尾格式进行查找。这种方式对于连续存放的文件非常有效,但对于片段化的文件则无法很好地恢复。
如果用户经常对磁盘进行碎片整理,则恢复最后一次碎片整理后删除的文就非常容易,因为这时文件基本上是存储在连续的簇中的。但如果是删除了文件后对磁盘进行了碎片整理,则很难成功恢复,因为在整理过程中被删除的文件的目录项会被清除,而由于整理过程中文件内容被来回移动,文件原来所在簇已经被重新分配,原有内容也已经被覆盖掉了。 |
|