《数据修复技术与典型实例实战详解》——1.5 文件分配表的恢复

简介:

本节书摘来自异步社区《数据修复技术与典型实例实战详解》一书中的第1章,第1.5节,作者:叶润华著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.5 文件分配表的恢复

数据修复技术与典型实例实战详解
1.5.1 文件分配表的基础知识
磁盘经过格式化后主要包括的区域有:主引导记录区(只有硬盘有)、引导记录区、文件分配表(FAT)、目录区和数据区。

文件分配表用于表示存储磁盘文件空间信息。此表包含所有未分配的、已分配的或标记为坏的盘簇的信息。盘簇是DOS进行磁盘空间分配的最小单位,一个簇可以是两个扇区,也可以是4个扇区或更多,视DOS版本及硬盘分区的大小而不同。虽然FAT记录文件所用的磁盘空间的信息,但引导区、两个FAT表、文件目录区等本身的盘簇并不由FAT中的盘簇表示。

FAT中每个磁盘上的可用盘簇就只有一个登记项。这些登记项表示该盘簇是否在使用、空闲或损坏。坏的盘簇是在格式化过程中通过FORMAT命令发现的。每个盘簇中只要一个扇区有问题就整个不能使用,这样会浪费掉一些扇区。

文件分配表是文件管理系统用来给每个文件分配盘区空间的表格,该表格在磁盘上有两个相同的文本。文件分配表的表头占3个表项,其中第一个字节是磁盘介质说明符,第2、第3个字节总是FFFFH,这是系统设定的,其内容含义如表1.1所示。
screenshot

DOS是以簇为单位给文件分配磁盘空间的,每个簇在FAT中占一个表项,簇编号即为表项号。FAT在磁盘上每一簇由一个12位(1.5字节)、16位(2字节)项或由一个32位项(4字节)组成。对于FAT12,每个分区最多能够管理4096个簇,每个簇的容量恒定为4096字节,因此FAT12系统所能管理的分区上限为16MB;FAT16系统最多能够管理2GB的硬盘分区(32768×65536);多于2GB的硬盘分区只能采用FAT32分区表。采用FAT32分区表的突出优点是每簇包含的扇区数相对较少,因为文件是以簇为单位分配的,即使只有几个字节的文件,系统也会分配一个完整的簇,FAT32分区表能有效节省硬盘空间,避免资源浪费。

在FAT中,0号表项和1号表项是表头。从2号表项开始,每一个表项作为一个簇的标志信息,占两个字节。其内容含义如表1.2所示。
screenshot

系统隐含文件IO.SYS所在的首簇号总是0002。FAT对每个文件来说其数据结构是一个单向链表,文件在文件目录表FDT中占一个文件目录项,每个文件的首簇号存放在该文件的目录项中,一个文件目录项占32个字节,其中第26、第27字节就是存放该文件的首簇号,系统依据FDT中的首簇号乘以2(对于16位的FAT)得到该文件在FAT表头的偏移地址,并得到第2簇的簇号,由该文件的单链表即可找到该文件的全部内容。

文件分配表总是放在DOS引导记录之后,若FAT大于一个扇区,则占用紧挨着的扇区,两个FAT拷贝连在一起存放,一个挨一个,连成整体。需要使用FAT时,将其读到DOS的一个缓冲区中。系统的文件分配表存放在逻辑1扇区开始的若干个扇区内,一个文件分配表占多少个扇区依硬盘分区情况的不同而不同。

文件分配表对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上的数据就会因无法定位而不能使用了。

1.5.2 文件分配表的修复
1.用NDD修复分配表

FAT记录着硬盘数据的存储地址,每一个文件都有一组FAT链指定其存放的簇地址。FAT损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个FAT,如果目前使用的FAT损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其FAT的长度及第二个FAT的地址也是不固定的,所以修复时必须正确查找其正确位置,采用DEBUG也可实现这种操作,即采用其移动“m”命令把第二个FAT移到第一个表处即可(不建议这样做)。如果第二个FAT也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用CHKDSK或SCANDISK命令进行修复,最终得到*.CHK文件,这便是丢失FAT链的扇区数据。如果是文本文件则可从中提取出完整的或部分的文件内容。

具体方法是:运行DEBUG,将FAT2读入缓冲区,用缓冲区的FAT2数据覆盖磁盘中的FAT1。但由于不同规格的磁盘其FAT的长度及第二个FAT的地址也是不固定的,所以修复时必须正确查找其正确位置,但这对于不熟悉DEBUG命令和FAT存放位置的一般用户来说确实很困难。

可以通过NORTON 8.0中的NDD.EXE来很方便地恢复损坏的FAT。将NDD.EXE拷贝到一张系统软盘上,然后用此软盘启动机器,进入纯DOS,执行NDD.EXE程序。选择第一项“Diagnose Disk”,如图1.107所示。接着选文件分配表损坏的分区,程序开始逐项扫描,当扫描到第四项“Analyzing File Allocation Tables”时出现分区表出错信息,提示“Do you wish to correct this problem?”(是否需要纠正错误),回答“Yes”,程序将自动扫描第二个FAT,用第二个FAT来替换第一个FAT。按“Esc”键退出后,重启机器,故障排除。

screenshot

2.文件分配表丢失的数据修复

有时会遇到这样的情况,就是第二个FAT也损坏了,无法通过第一种办法来恢复FAT,但是文件数据仍然存放在硬盘数据分区中,这时可以用修复法来挽救数据。

通过“Scandisk.exe”程序可以找回丢失FAT链的扇区数据。启动机器后,在DOS状态运行Scandisk.exe程序,选择相应分区,按“开始”按钮对磁盘进行扫描,如遇错误会出现“磁盘扫描程序在某分区找到错误”的提示信息。选择“将丢失的文件碎片转换成文件”选项,单击“确定”按钮后程序开始修复错误,最后出现“磁盘扫描结果”信息,单击“关闭”按钮退出。这时用“Dir”命令检查该分区目录,会发现有若干扩展名为“.chk”的文件,这便是丢失FAT链的文件。如果是文本文件则可从中提取并合并成完整的文件,只要将文件名改过来就行了;如果是二进制的数据文件,则很难恢复出完整的文件。

相关文章
|
28天前
|
存储 监控 算法
【C++ 软件设计思路】高效管理历史任务记录:内存与磁盘结合的策略解析
【C++ 软件设计思路】高效管理历史任务记录:内存与磁盘结合的策略解析
53 0
|
1月前
|
移动开发 监控 测试技术
mPaas常见问题之针对某个机器做强制升级如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
21 0
|
7月前
|
弹性计算 网络安全 Apache
服务器迁移上云实验过程记录
本课程向您介绍了服务器迁移上云的基本概念,这些概念可以帮助您快速了解在企业服务器迁移上云的重要性和应用场景,同时本课程介绍了您可以采用的云上迁移工具、方法和可操作步骤,以帮助您了解企业是如何处理各类服务器迁移上云场景的。
|
8月前
|
存储 监控 数据可视化
01.崩溃捕获设计实践方案
01.崩溃捕获设计实践方案
131 3
|
SQL 数据库
核心特性—数据备份与恢复
数据备份和恢复是数据库必不可少的能力,PolarDB-X提供不同粒度的数据恢复能力,包括实例级的一致性备份恢复能力、表级的表回收站能力、SQL级的SQL闪回能力等。
112 0
核心特性—数据备份与恢复
模具化技术在站场信号机基础恢复中的应用
铁路站场信号机是微机联锁的重要组成部分,是微机联锁设备安全运转的最终体现,设备的使用质量和显示效果,对提升运输效率,确保行车人员安全行车影响极大。
|
存储 安全 数据安全/隐私保护

热门文章

最新文章