清晰磁盘结构
来源:互联网 发布:数据管理器使用方法 编辑:程序博客网 时间: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的分区结构。
每个逻辑分区的FAT表用来描述磁盘中各簇的使用情况。对1.44M的软盘,每项FAT为16位(二进制),对多数硬盘,一般为32位(二进制),即FAT32。以FAT32为例,每项值的含义如表2-1所示。
表2-1 FAT32表项意义
序 号
表 项 值
簇描述信息含义
1
0x00000000
未使用的簇
2
0x00000002~0xffffffff
一个已分配的簇号
3
0xfffffff0~0xfffffff6
保留的簇
4
0xfffffff7
坏簇
5
0xfffffff8~0xffffffff
文件结束簇
我们可以想象一下,病毒既然把原来的引导程序位置占了,引导扇区只能放512字节,而原来的引导程序又是必需的。那么原来的引导扇区放在哪里并且又不被覆盖呢?
一个可能的位置是MBR扇区所在磁道上的其他未使用的扇区。另一个可能的位置是分区引导扇区所在磁道的其他扇区。还有一个可能位置是磁盘的数据区,病毒只要将所占用的簇对应的FAT表项标记为坏扇区或已经使用的扇区,操作系统存放文件时就不会覆盖它。
- 清晰磁盘结构
- 清晰磁盘结构
- codelgniter 清晰的结构
- Linux目录结构 清晰
- 磁盘结构
- 磁盘结构:
- 磁盘结构
- 磁盘结构
- 磁盘结构
- 磁盘结构简介
- 磁盘结构介绍
- 磁盘结构简介
- 磁盘结构简介
- 磁盘逻辑结构
- linux磁盘目录结构
- Linux 磁盘结构
- Mac磁盘文件结构
- 磁盘结构简介
- 改小matlab的绘图大小、字号、线宽
- 转载:linux 块驱动学习(三)
- [软件测试]JUnit和单元测试入门简介
- Java的内存泄漏
- linux rz -e
- 清晰磁盘结构
- linux下VIM插件介绍及安装
- 2010年信息系统项目管理师考试指南,如何考?
- jsp根据总页数和每页显示数分页
- 抽象工厂与工厂模式例子
- Windows Server 2003活动目录域重命名
- 字符编码,ansi, unicode,utf-8, utf-16
- sqllite 使用
- spring 事务异常Failed to convert property value of type [$Proxy12] to required type