清晰磁盘结构

来源:互联网 发布:数据管理器使用方法 编辑:程序博客网 时间:2024/05/01 07:24

2.1.1  磁盘数据结构

一块新磁盘,需要将它分区、格式化,然后再安装上操作系统才可以使用。格式化是指系统为了达到随机存取磁盘数据的目的,需要在盘的磁道上规划出磁道和扇区,每个扇区以引导标记和扇区标记作为扇区的起始,然后才是扇区的内容,后面还有校验标记。格式化后,磁盘被分为面、磁道、扇区和簇。一个面对应一个磁头,每个面由若干个磁道组成,每个磁道又被分成若干个扇区。物理相邻的若干个扇区组成一个簇。操作系统读写磁盘的基本单位是扇区,而文件分配的基本单位是簇。如图2-1所示的是磁盘结构。

安装操作系统后,磁盘被分为保留扇区部分和逻辑分区。对软盘而言,保留扇区部分只有引导扇区;对硬盘而言,除了引导扇区,该磁道的其他扇区是未被利用的。在逻辑分区,以FAT32磁盘格式为例,有该分区的引导扇区,文件分配表FAT和文件数据区。

磁盘的第一个逻辑扇区被称之为主引导扇区(Master Boot Record,MBR),逻辑分区的第一个逻辑扇区被称为引导扇区。引导扇区代码和数据可以使用程序fdisk.exe进行创建。

图2-1  磁盘数据结构

引导扇区内有引导程序,还有磁盘结构数据。以1.44M软盘为例,软盘由两面组成,分别称为0面和1面。磁道是从外到里的同心圆,每面由80个磁道组成。而每个磁道由18个扇区组成,扇区是物理结构的最小单元。每个扇区占512个字节。如图2-2所示是用debug命令-L4000:0 0 01读取的1.44M软盘引导扇区数据。该命令表示将第一个驱动器(A:)的第一个逻辑扇区读到内存4000:0的位置,各个参数的使用请参考汇编语言教材的Debug命令的使用。

图2-2  软盘引导扇区

主引导扇区除了引导代码,还有各逻辑扇区的结构数据块,即分区表。分区表数据从引导扇区偏移0x1be开始,共64个字节。分区表最多只能描述4个分区,每个分区16字节。引导代码的作用就是分析分区表中的4个分区引导标志,当某一分区的引导标志为80H时,主引导程序就把这一分区的第一个扇区(逻辑0扇区)读到内存0000:7C00H处,并从该处开始执行。如图2-3所示为一个硬盘MBR中的分区表。例如,分区表中D:的数据结构如下:

图2-3  MBR的分区表

偏移0自举标志0(0x80为活动分区)
偏移1起始磁头号1
偏移2起始扇区号0x41
偏移3起始磁道号0x4b
偏移4为分区格式:FAT32
偏移5终止磁头号0xef
偏移6终止扇区号0xff
偏移7终止磁道号0xa4
偏移8--11本分区前已用扇区0x3F
偏移12--15本分区总扇区数0x1772361
最后两个字节/x55/xAA是引导扇区的标志。在硬盘的第一个磁道,除了MBR扇区,其他扇区是没有被使用的。C:的引导扇区一般在第二个磁道的第一个扇区。如图2-4所示描述了图2-3的分区结构。

图2-4  扇区分布

每个逻辑分区的FAT表用来描述磁盘中各簇的使用情况。对1.44M的软盘,每项FAT为16位(二进制),对多数硬盘,一般为32位(二进制),即FAT32。以FAT32为例,每项值的含义如表2-1所示。
表2-1  FAT32表项意义

   

   

簇描述信息含义

   1

0x00000000

未使用的簇

   2

0x000000020xffffffff

一个已分配的簇号

   3

0xfffffff00xfffffff6

保留的簇

   4

0xfffffff7

坏簇

   5

0xfffffff80xffffffff

文件结束簇

我们可以想象一下,病毒既然把原来的引导程序位置占了,引导扇区只能放512字节,而原来的引导程序又是必需的。那么原来的引导扇区放在哪里并且又不被覆盖呢?

一个可能的位置是MBR扇区所在磁道上的其他未使用的扇区。另一个可能的位置是分区引导扇区所在磁道的其他扇区。还有一个可能位置是磁盘的数据区,病毒只要将所占用的簇对应的FAT表项标记为坏扇区或已经使用的扇区,操作系统存放文件时就不会覆盖它。

原创粉丝点击