15.1.4 数据恢复
1.数据恢复概述
简单地说,数据恢复就是把遭受到破坏或有硬件缺陷导致不可访问或不可获得,或由于病毒、误操作、意外事故(硬盘不小心摔坏)等各种原因导致的丢失的数据还原成正常的、可使用的数据,即恢复至它本来的“面目”。
数据修复不仅是对文件的逻辑恢复,还可以恢复物理损伤盘的数据,也可以恢复不同操作系统数据,恢复不同移动数码存储卡的数据。数据恢复包括文件恢复、文件修复、密码恢复和硬件故障4个方面。文件恢复、文件修复、密码恢复都是逻辑恢复,硬件故障属于物理恢复。
(1)文件恢复
文件恢复主要是指数据相对计算机系统、文件系统的不可用性恢复。例如,误分区、误格式化、微博宣布恢复系统恢复盘误恢复系统、误删除文件、分区误克隆、分区表信息(MBR)丢失、引导扇区信息(BOOT)丢失、病毒破坏、黑客攻击及恶意程序、磁盘阵列服务器RAID信息丢失、突然断电、内存溢出、软件冲突、强行关机或死机等造成的文件或数据不可用。
(2)文件修复
文件修复主要是指相对于应用系统数据的不可用性恢复,一般是指文件的不可用性恢复。例如Office系列文档修复、Microsoft SQL和Oracle等数据库文件修复、图片文件修复、Zip和MPEG文件以及Microsoft Outlook和Exchange邮件修复等。
(3)密码恢复
密码恢复主要是指由于密码遗忘而无法使用数据进行的恢复工作。例如,Windows操作系统密码恢复,Zip、rar、Word、Excel、Access、PDF等文档的密码恢复等。
(4)硬性故障
硬性故障可以分为两类:一类是磁头烧坏、磁头老化、磁头芯片损坏、磁头偏移、磁组变形、电路板损坏、芯片烧坏等读取系统机械和电路故障等;另一类是存储介质物理损伤等。
一旦出现数据丢失的现象,必须停止一切操作,根据具体情况进行分析,采取相应的措施,在不熟悉相关技术的情况下,应该求助于相关技术人员或专业人员。建议最好找专业的数据恢复公司进行求助。因为数据有相当的机会是可恢复的。决不要因为自己再进行操作导致数据进一步损坏,致使专业工程师也无法挽回。
避免这类数据灾难发生的最好方法就是及时备份系统、磁盘和文件。
2.文件系统
文件系统是操作系统用于明确磁盘或分区上文件的方法和数据结构,即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。
微软在DOS/Windows系列操作系统中共使用了6种不同的文件系统。分别是FAT12、FAT16、FAT32、NTFS、NTFS5.0和WINFS。
除微软文件系统以外,还有UNIX的NFS文件系统、Linux的EXT/EXT2/EXT3文件系统、CD-ROM文件系统、网络文件系统CIFS等。
物理恢复主要针对磁盘介质存储数据的方式,而文件恢复主要针对文件系统。下面主要介绍Windows FAT、NTFS和网络文件系统NFS、CIFS。
(1)FAT文件系统
1)FAT文件系统分类
FAT文件系统包括FAT12、FAT16、FAT32三种。
FAT12采用12位文件分配表,并因此而得名,在DOS3.0以前使用,以后的FAT系统都按照这样的方式命名。它只能支持8.3格式的文件名,磁盘容量最大为8MB。
在DOS3.0中,微软推出了新的文件系统FAT16。采用16位字长的分区表,Windows 95 OSR2及以后的Windows版本采用FAT32文件系统,这是FAT系列文件系统的最后一个产品。采用32位的文件分配表,磁盘的管理能力大大增强,突破了FAT16的2GB分区容量限制。由于现在的硬盘生产成本下降,其容量越来越大,运用FAT32的分区格式后,可以将一个大硬盘定义成一个分区,这大大方便了对磁盘的管理。
分区格式的每个簇都固定为4KB,与FAT16相比,大大减少了磁盘空间的浪费,提高了磁盘的利用率。
FAT32不能向下兼容,单个文件不能大于4GB。
2)FAT文件系统数据存储原理
进行数据恢复必须弄清楚数据的存储原理,下面介绍文件存取、文件删除和硬盘的格式化原理。
·文件的读取。操作系统从目录区中读取文件信息,包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号,假设第一个簇号是0100。
操作系统从0100簇读取相应的数据,然后找到FAT的0100单元,如果内容是文件结束标志(FF),则表示文件结束,否则内容将是保存数据的下一个簇的簇号。这样重复下去直到遇到文件结束标志。
·文件的写入。当要保存文件时,操作系统首先在DIR区中找到空区写入文件名、大小和创建时间等相应信息,然后在Data区找到闲置空间将文件保存,并将Data区的第一个簇写入DIR区,其余的过程和上边的读取过程类似。
·文件的删除、硬盘分区和格式化。DOS/Windows的文件删除非常简单,仅将目录区文件的第一个字符改成了E5,并不真正清除文件的数据,这也是实施数据恢复的基础。与删除文件类似,利用Fdisk删除再建立分区和利用Format格式化逻辑磁盘(假设格式化的时候并没有使用/U参数),也没有将数据从DATA区直接删除。Fdisk只是改变了分区表,Format只是修改了FAT表,这也是被误删除的分区和误格式化的硬盘数据恢复的基础。
(2)NTFS
新技术文件系统(New Technology File System,NTFS)是Windows NT、2000、XP、2003等微软NT系列操作系统所使用的文件系统。它是为高容量的磁盘开发的。
NTFS分区的结构比FAT16和FAT32复杂。整个NTFS分区和FAT分区一样以簇为基本存储结构,但NTFS分区把整个分区的全部扇区都划分为簇,而FAT分区则需要预留BOOTSECTOR的FAT表和根目录(FAT32除外)不做划分,它的起始簇是在这些扇区之后的。
簇的大小在使用格式化程序时,由格式化程序根据卷的大小自动进行分配。分区格式化为NTFS以后,磁盘上有主文件表(Master File Table)和系统文件。
NTFS总体结构如图15-9所示。
图15-9 NTFS总体结构
文件通过主文件表(MFT)来确定其在磁盘上的存储位置。主文件表是一个对应的数据库,由一系列的文件记录组成,每一个文件都有一个文件记录(对于大型文件还可能有多个记录与之相对应)。主文件表本身也有它自己的文件记录。
NTFS文件系统上的每个文件都有一个64位唯一标识,称为文件引用号(File Reference Number,也称文件索引号)。文件引用号由两部分组成,一是文件号,二是文件顺序号。文件号为48位,对应于该文件在MFT中的位置。文件顺序号随着每次文件记录的重用而增加,这是为NTFS进行内部一致性检查而设计的。
NTFS使用逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual Cluster Number,VCN)来进行簇的定位。LCN是对整个卷中所有的簇从头到尾所进行的简单编号。卷因子乘以LCN,就能够得到卷上的物理字节偏移取,从而得到物理磁盘地址。VCN则是对属于特定文件的簇从头到尾进行编号,以便于引用文件中的数据。VCN可以映射成LCN,而不要求在物理上连续。
(3)NFS
NFS是网络文件系统(Network File System)的简称,是分布式计算系统的一个组成部分,实现在异种网络上共享和装配远程文件系统,即可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。从用户角度看来,在这些远程的文件系统操作和本地的文件系统上操作并没有什么不同,是透明的。NFS首先由Sun微系统公司(Sun MicrosystemInc.)开发,制定的NFS标准被IETF接受,并被纳入RFC,作为文件服务的一种标准。
NFS基于客户机/服务器结构,每个提供文件共享的设备被认为是服务器端,每个需要远程文件操作的设备被认为是客户端。对于不同的文件操作,某一个具体的设备可以同时承担服务器和客户端。通过服务器的程序管理文件系统中文件和目录的输出,使它们可以为其他设备使用。通过客户端的程序管理文件和目录的挂载,使它们可以为本地系统使用。NFS的挂载通过挂载协议实现。通过一系列操作,非本地的文件和目录挂载在本地设备上,挂载以后,依据NFS协议,本地设备即可对其中的文件和目录进行操作,如图15-10所示。
图15-10 NFS文件挂载
NFS通信基于RPC(Remote Procedure Call,远程过程调用)实现。NFS服务器导出本地的目录给远程的NFS客户,NFS客户把对文件操作系统调用重定向到远程的系统。
NFS最常用的版本是NFS2、NFS3和MFS4,主要应用在UNIX、Linux和DOS等系统中;它向下支持各种本地文件系统,如FAT、NTFS等。
1)NFS通信协议与挂载协议
NFS通信协议以RPC为基本操作方式,RPC采用申请/应答方式工作。申请用于调用一个远程进程,应答用于答复对应的调用。所有RPC包都有一个交换识别号(eXchangeI Dentifier,XID),用于申请和答复的对应。这种工作方式与NFS的客户端/服务器设计模式一致。
NFS为了解决不同设备之间基于CPU的各种字节不同编排顺序,实现跨平台之间通信和资源共享,采用一种不依赖于特定CPU类型的交换二进制数据的格式XDR(eXternal Data Representation)。
RPC/XDR处于OSI七层参考模型的表示层,建立在更低层的网络协议上。RPC、网络和NFS的层次关系如图15-11所示。
图15-11 RPC、网络和NFS层次关系
通过挂载协议,NFS客户端允许挂载由服务器端输出的文件系统。挂载协议授权一个客户端的请求以对文件/目录操作。客户端将挂载的文件系统和其路径存放在挂载申请中,挂载申请进一步对应到RPC,并依据TCP/IP协议报发送到服务器端。
服务器端检査该请求的合理性,如文件系统是否可以设置为可输出,文件路径是否正确,是否授权客户端等,并按设置给予或者拒绝服务。检查申请符合要求以后,服务器端将提供一个文件句柄给客户端。客户端将依据文件句柄对该文件系统进行访问。此时,客户端的可见范围从本地被扩展到被挂载的文件系统。
但是,NFS不允许挂载串接,即不允许通过一个设备挂载一个已经挂载在设备上的文件系统。
2)NFS文件操作协议
NFS支持如下文件操作。
·文件搜索:在一个目录内找一个文件。
·文件读写。
·文件属性操作。
·目录操作:显示目录,生成目录等。
NFS文件操作是无状态的,服务器不保存各个NFS操作之间的关系,即服务器响应完一个请求以后不再保存这个请求的任何信息,NFS操作必须包括完全描述所需的操作信息。例如,文件写操作应该包括文件句柄、操作的起始地址、需要写入的字节数等。
NFS的所有操作是同步的,文件操作请求只有在服务器完成所有的任务以后才返回。例如文件写操作,只有将所有数据写入磁盘,更新完相关文件系统信息以后才返回,这样保证了文件的完整性。
(4)CIFS
在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block,服务器信息块)协议。
SMB通信协议是微软和英特尔在1987年制定的协议,主要是作为Microsoft网络的通信协议。SMB是在会话层和表示层以及小部分应用层工作的。
随着Internet这个协议被用于Lan Manager和Windows服务器系统中,Microsoft希望将这个协议扩展到Internet上去,成为Internet上计算机之间相互共享数据的一种标准。因此它将原有的SMB协议进行改进,重新命名为CIFS(Common Internet FileSystem)。
CIFS为计算机用户共享Intranet和Internet文件提供了标准方法。CIFS中定义的远程文件访问协议(Remote File-Access Protocol)促进了Internet之间的协作能力,这与应用程序共享本地磁盘和网络文件服务器上的数据方法相一致。CIFS运行在TCP/IP上,利用Internet全球域名服务(DNS)支持其伸缩性。
1)SMB协议
CIFS协议是一个应用层协议,它以一系列的协议来支持文件服务,其核心是SMB协议。
SMB协议是一种客户机/服务器的请求/响应协议。目前绝大多数的PC上都在运行这一协议,Windows操作系统充当SMB协议的客户机和服务器。SMB服务器负责通过网络提供可用的共享资源给SMB客户机,服务器和客户机之间通过TCP/IP或者IPX或者NetBEUI进行连接。一旦连接成功,客户机可发送SMB命令到服务器上,从而客户机能够访问共享目录、打开文件、读写文件以及一切在文件系统上能做的所有事情。
通过SMB协议,应用程序不但可以访问远程服务器端的文件,而且可以访问打印机、邮件槽(mailslot)、命名管道(named pipe)等资源。
SMB定义了如下两级安全保护。
·共享级保护(Share Level Protection)应用于服务器共享目录级。每个共享目录都需要提供一个访问口令。只有口令通过,客户机才能访问所有共享文件。
·用户级保护(User Level Protection)应用于共享目录中的单独文件,基于用户访问权限。每个用户(客户机)必须登录服务器并且获得服务器的认证许可。一旦认证通过,客户机会获得一个UID。在后来客户机访问服务器的过程中都需要使用该UID。
SMB是一个表示层协议,建立在NetBIOS和NetBEUI通信协议之上,而NetBIOS和NetBEUI又建立在TCP/IP之上。
2)CIFS文件服务和特性
在SMB协议基础上,CIFS实现了如下一系列文件/目录操作。
·提供服务列表。
·对文件全名分析,取得文件服务器名和相对文件名。
·将服务器名与传输层地址对应。
·文件的相关操作:建立协议以及交换CIFS文件信息。
·用户授权。
·文件缓冲。
CIFS主要特征如下。
·文件访问完整性。CIFS支持通常的文件操作设置:打开、关闭、读、写和搜索。CIFS也支持文件和报告的上锁和解锁(Lock and Unlocking)CIFS通过文件共享和文件锁定(File Locking)操作防止了网络资源冲突,从而允许多客户机访问和更新同一文件。
·慢链路最优化。CIFS协议能较好地运行在慢速拨号线路上。这对于网速较慢的用户而言,是一种性能的改进和提高。
·错误容忍。可以在网络故障或服务端故障恢复以后,客户端自动重新与服务器连接,并可以重新操作原来操作中断的文件。
·安全性。CIFS服务端支持匿名传输以及保密的和授权的文件操作。系统管理员可以很方便地通过CIFS管理文件的安全设置。
·Unicode码。文件名可以是任何字符集,支持英文、朝鲜文、汉字、藏文等。
·全局文件名。NFS需要将服务器文件系统挂载到客户端设备上才能进行操作。而CIFS允许客户使用全局文件名直接对其进行操作。全局文件名与一般所指的局部意义的文件名范围不一样,它是Internet上唯一的。
3.数据恢复与备份软件
下面对数据恢复与数据备份软件做简单介绍。
(1)数据恢复软件
这里仅考虑因磁盘介质故障造成的磁盘逻辑损坏、格式化、误删除等的数据恢复问题。无论是磁盘逻辑损害还是误操作等引起的数据丢失,对一般人员来说都不可能通过手工来恢复,一般都需要专门的软件或硬件工具来实施。关于磁盘修复,Windows提供了一个磁盘扫描工具Scandisk.exe,它可以做一些基本的磁盘盘面扫描和修复工作。如果磁盘的某些坏簇或物理坏道已经无法修复,则可用一些磁盘工具软件将这些坏道单独标记出来,这样磁盘仍然可以使用,但是,存放在相应位置的数据将无法使用。
下面介绍一个数据恢复软件EasyRecovery。
EasyRecovery是数据恢复公司Ontrack开发。Ontrack公司曾经帮助美国航空航天局在2003年初失事的哥伦比亚航天飞机上,从其严重损坏的硬盘中恢复了99%的数据,其Professional版具有磁盘诊断、数据恢复、文件修复、E-mail修复全部4大类目19个项目的各种数据文件修复和磁盘诊断方案。
EasyRecovery是一款功能强大的硬盘数据恢复工具,能够恢复丢失的数据以及重建文件系统。EasyRecovery不会向原始驱动器写入任何数据,它主要是在内存中重建文件分区表使数据能够安全地传输到其他驱动器中。它可以恢复大于8.4GB的硬盘,支持长文件名,被破坏的硬盘中像丢失的引导记录、BIOS参数数据块、分区表、FAT表和引导区都可以恢复,还能够对ZIP文件以及微软的Office系列文档进行修复。
1)EasyRecovery支持的数据恢复功能
·高级恢复使用高级选项自定义数据恢复。
·删除恢复:査找并恢复已删除的文件。
·格式化恢复:从格式化过的卷中恢复文件。
·Raw恢复:忽略任何文件系统信息进行恢复。
·继续恢复:继续一个保存的数据恢复进度。
·紧急启动盘:创建自引导紧急启动盘。
2)EasyRecovery支持的磁盘诊断模式
·驱动器测试:测试驱动器以寻找潜在的硬件问题。
·SMART测试:监视并报告潜在的磁盘驱动器问题。
·空间管理器:磁盘驱动器空间情况的详细信息。
·跳线查看:査找IDE/ATA磁盘驱动器的跳线设置。
·分区测试:分析现有的文件系统结构。
·数据顾问:创建自引导诊断工具。
3)EasyRecovery支持的文件修复类型
·Microsoft Access修复。
·Microsoft Excel修复。
·Microsoft PowerPoint修复。
·Microsoft Word修复。
·Zip压缩文件修复。
4)EasyRecovery支持的E-mail修复类型
·Microsoft Outlook修复。
·Microsoft OutlookExpress修复。
5)EasyRecovery支持的储存介质
·软盘和U盘。
·IDE/ATA/EIDE/SATA/SCSI硬盘驱动器。
·Jaz/Zip/MO可移动媒体。
·CDR/CDRW光盘刻录机。
·数码媒体(如CompactFlash、SmartMedia、闪盘、记忆棒)。
(2)数据备份软件
日常应用中,计算机系统经常出现各种无法预料的问题和灾难。这些灾难一般来自于计算机系统硬件设备的物理损坏或硬件兼容性引发故障,更多则是由系统设置不当、病毒或恶意软件入侵造成的。出现问题后,将发生软故障的计算机系统快速恢复到正常状态,这是计算机使用维护的基本要求。
如果使用者有技术保障,那么可以通过分析故障现象逐步找出故障原因,进行排除和恢复系统操作,使之可以正常应用。但对大多数用户而言,这很难做到。
为了解决这个问题,Windows操作系统集成了“系统还原”的功能,可以把计算机恢复到之前的某一个“正常状态”下的设置,简化了故障处理的难度。但经使用发现,Windows中的“系统还原”的易用性和功能都有所欠缺,从而使得磁盘克隆技术得到了广泛的应用。
常见的数据备份与恢复主要包括以下4类。
·系统分区备份与恢复:在系统或分区受到严重损伤,或者遭受病毒木马侵害无法正常使用时能够快速恢复,正常使用。Windows操作系统虽然集成了简单的系统备份与还原功能,但系统不能启动时就很难完成,一般需要专门的软件来完成。
·硬盘数据备份与恢复:在硬盘数据受到严重损害,系统故障病毒入侵等无法正常使用的时候,能够重新使用这些被保存的数据。一般需要专门的软件来完成。
·硬盘分区表备份与恢复:硬盘分区表是硬盘的重要参数,一般情况下,如果硬盘分区表受到损害,那么对应的硬盘分区就无法使用了。为了消除这种现象的危害,对分区表的复制保存就是硬盘分区表备份。大部分计算机病毒防护与防火墙软件都有此功能。
·注册表的备份与恢复:注册表是Windows操作系统用来存放系统设置、软件运行等参数的特殊数据库。注册表一旦损坏,系统和软件将无法正常运行。一般情况下,注册表是计算机病毒和木马入侵的主要场所。由于注册表复杂,所以,一般人都不具备手动修改和恢复注册表的技术。在遭受计算机病毒和木马严重入侵的情况下,注册表恢复是一种比较简单的措施。同样的,大部分安全防护软件都具有注册表备份与恢复功能。也可以使用某些专门软件进行。一般可以使用微软系统自带的管理软件Regedit.exe来进行。
以上各类数据备份与恢复需求适用于不同的数据灾难程度,相对而言,硬盘分区表备份与恢复和注册表的备份与恢复,涉及的危害程度较轻,是局部的。而系统分区备份与恢复和硬盘数据备份与恢复涉及整个分区的数据安全,危害程度严重。下面主要介绍这方面的两款软件工具。
数据备份与恢复还包括数据库备份、电子邮件备份、磁盘阵列的数据备份、磁带备份以及网络硬盘备份等数据备份与恢复技术和方法,还有热备份和实时备份系统与技术等,这里不作介绍。
1)GHOST
磁盘克隆和恢复软件GHOST是赛门铁克(Symantec)公司开发的。GHOST是General Hardware Oriented Software Transfer的缩写,即“面向通用型硬件传输软件”。恰当地利用这一工具,能够有效地降低系统安装与维护的强度。
GHOST工作的基本方法不同于其他的备份软件,它是将硬盘的一个分区或整个硬盘作为一个对象来操作,可以完整复制对象(包括对象的硬盘分区信息、操作系统的引导区信息等),并打包压缩成为一个镜像(Image)文件,在需要的时候,可以把该镜像文件恢复到对应的分区或对应的硬盘中。
GHOST的功能包括两个硬盘之间的相互复制、两个硬盘的分区相互复制、两台电脑之间的硬盘相互复制、制作硬盘的镜像文件等。常用的是分区备份功能,能够将硬盘的一个分区压缩备份成镜像文件,然后存储在另一个分区硬盘或载体中,如果原来的分区发生问题,就可以用镜像文件恢复分区。通常用此功能来备份和恢复系统分区。
2)Acronis True Image Server
虽然Symantec公司的GHOST功能强大,但是,它所有的操作均是在DOS界面下进行,对习惯使用Windows操作系统的用户来说是很不方便。
Acronis True Image Server是一个可以在Windows下使用全部功能的克隆与恢复软件,与Windows完全兼容,所有的工作都可以在Windows环境下完成,而不需要切换到DOS的命令行执行状态。
它的克隆与恢复的速度快,支持本地硬盘、网络驱动器、CD-R/CD-RW和ZIP100等多种媒体,支持Windows操作系统。
Acronis True Image软件的主要功能如下。
·Create an image of a partition or the whole hard disk drive:创建一个分区或整个硬盘的镜像文件。
·Restore a partition or the whole hard disk drive or deploy on a new hard disk drive/PC:恢复一个分区或整个硬盘数据。
·Explore an image archive:浏览镜像文件,功能相当于Ghost Explorer。所不同的是它会将镜像文件虚拟成一个磁盘,这样操作起来更加方便。