作者:金林樵
摘 要 本文介绍了在Delphi中通过调用API函数,以直接读写扇区的方式读取或修改存放在硬盘中的数据,并提供了备份和恢复硬盘有关分区信息的功能,保护硬盘中系统数据的安全。
关键词 主引导扇区,分区引导扇区,数据保护,数据恢复
一、前言
随着电子技术及计算机技术的不断发展,计算机已成为人们生活、工作、学习中的不可或缺的一部分,在目前学校、企事业单位、政府机关所使用的计算机中,往往存放着许多十分重要的数据,有些数据还可能关系到一个企业或单位的前途。在当前病毒泛滥、黑客横行的时代,计算机中大量有用数据的安全已成为每个用户十分头痛的事,许多单位都有过硬盘不能启动、硬盘分区丢失、重要数据丢失等惨痛的经历,花了很大的代价才将数据恢复,有的还可能造成不能恢复或只能部分恢复的严重后果,给单位造成不可弥补的损失。
数据的保护涉及两个方面的内容:文件和系统数据。重要的文件可以通过文件的备份做好数据的备份工作,而系统数据在目前的Windows操作系统中没有提供备份的方法。因此,在做好备份重要文件数据的同时,还应该做好备份硬盘中与操作系统相关数据的备份工作,以备在系统数据遭到破坏后,使用它恢复系统数据。
本文将根据硬盘的内部数据结构,介绍一种基于Delphi的系统数据保护方法,在系统正常或系统刚安装成功后,使用本文提供的备份方法将系统数据备份到安全的地方保护起来,以后万一发生系统数据丢失时,再利用本文提供的程序将先前备份的数据恢复。
二、硬盘的内部数据结构
物理上,每个硬盘有三个重要参数:磁道、磁头和扇区。即该硬盘有几个磁道,几个磁头,每个磁道又存在多少个扇区,在Windows/Linux下,每个扇区具有固定的长度:512个字节。因此硬盘的物理容量可以通过以下公式计算得到:
磁道数*磁头数*每道扇区数*512(Bytes)
硬盘出厂时,是无法直接使用的。要在硬盘中存放数据,硬盘必须先进行分区,再对分区进行格式化后,该分区才可以存放文件数据。而一个硬盘往往分成若干个分区,每个分区存放相应的数据,因此分区是文件的基础。
一个硬盘最多只能有4个物理上的分区,这4个物理分区可以都是主分区或者3个主分区外加一个扩展分区,且每个分区中的所有扇区必须是连续的。每个主分区上都可以安装一个独立的操作系统,如Windows、Linux、OS/2等。
对于DOS/Windows来说,它将硬盘划分为一个主分区和一个扩展分区,然后在扩展分区里,再继续划分逻辑分区(逻辑盘),并以C:、D:、E:逻辑盘的方式来管理。而Linux则不同,它是把“分区”看作一个设备,既没有“扩展分区”的概念,也没有“逻辑盘”的概念。一个硬盘其内部的数据结构如图1所示。
图1 硬盘内部的数据结构
1. 主引导扇区
主引导扇区MBS(Main Boot Sector),位于硬盘的0磁道0头1扇区。该扇区中包含硬盘主引导记录MBR(Master Boot Record)、分区表DPT(Disk Partition Table)和结束标志三个部分组成,如表1所示。
表1 主引导扇区的内部数据结构
偏移地址 |
|
说明 |
|
Master Boot Record |
主引导程序 |
|
|
|
|
分区2表项数据 |
|
分区3表项数据 |
|
分区4表项数据 |
|
|
|
MBS是硬盘上的一个独立于分区的一个区域,它一般由FDISK、分区魔术师或操作系统的安装程序等创建,其他应用程序不能直接访问或修改其中的数据。
PC机启动时,系统首先对硬件设备进行测试,测试成功后进入自举程序,由自举程序将系统磁盘中的0磁道、0磁头、1扇区的主引导扇区数据读入到内存指定地址0:7C00开始的区域,并将系统引导权交给MBS,由此执行MBR引导程序。因此MBS先于所有的操作系统而被调入内存。
在MBS中,主引导程序的作用是:检查硬盘分区表结束标志是否完好;检查硬盘分区表是否完好;判别哪个分区为可引导分区,若存在可引导分区,则将该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行,否则将显示无效的分区表或操作系统错误的信息。
|