关于硬盘扇区结构其中一个细节求解

默认分类 未结 1 1651
0喵匙0
0喵匙0 2023-03-19 09:36
相关标签:
1条回答
  • 2023-03-19 10:17

    整个硬盘上一般有很多的盘片组成,每个盘片如同切西瓜一样被“切”成一块一块的扇面,同时沿着半径的方向被划分成了很多同心圆,就是传说中的磁道,每条磁道被扇面切成很多的扇形区域叫做扇区(扇区是从磁盘读出和写入信息的最小单位,通常大小为512字节),不同盘片上的同半径磁道组成了柱面,这些都是磁盘物理上的概念,知道便可。有了这些概念,我帮便可以计算磁盘的容量:磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数磁头(head)数:每个盘片一般有上下两面,分别对应1个磁头,共2个磁头;磁道(track)数:磁道是从盘片外圈往内圈编号0磁道,1磁道...,靠近主轴的同心圆用于停靠磁头,不存储数据;柱面(cylinder)数:同磁道数量;扇区(sector)数:每个磁道都别切分成很多扇形区域,每道的扇区数量相同;圆盘(platter)数:就是盘片的数量。

    主引导记录中包含了硬盘的一系列参数和一段引导程序。引导程序主要是用来在系统硬件自检完后引导具有激活标志的分区上的操作系统。它执行到最后的是一条JMP指令跳到操作系统的引导程序去。这里往往是引导型病毒的注入点,也是各种多系统引导程序的注入点。但是由于引导程序本身完成的功能比较简单,所以我们可以完全地判断该引导程序的合法性(看JMP指令的合法性),因而也易于修复。象命令fdisk/mbr可以修复MBR和KV300这类软件可以查杀任意类型的引导型病毒,就是这个原因。往下来是硬盘的分区表,由4个16字节的分区信息表组成。每个信息表的结构如下:偏移 长度 所表达的意义0 字节 分区状态: 如0-->非活动分区80--> 活动分区1 字节 该分区起始头(HEAD)2 字 该分区起始扇区和起始柱面4 字节 该分区类型:如82--> Linux Native分区83--> Linux Swap 分区5 字节 该分区终止头(HEAD)6 字 该分区终止扇区和终止柱面8 双字 该分区起始绝对分区C 双字 该分区扇区数最后的两个标志“55 AA”是分区表的结束标志,如果这两个标志被修改(有些病毒就会修改这两个标志),则系统引导时将报告找不到有效的分区表。

    这些数字不是算出来的磁头号,扇区,柱面这些都是硬盘的属性,硬盘制造好了出厂后,这个盘里面有多少个盘片(每片上下两个磁头),每个盘片有多少扇区,有多少个柱面都是固定好了的。通过主板和硬盘的接线,传递数据来告诉硬盘,要读取哪个磁头下的,哪个柱面的哪个扇区。不过这些参数比较low,不好记也不好算,操作系统在磁盘上做成文件系统,进行分区,这样展现给使用者的就变成了读取C盘下某目录下的某某文件了;操作系统会根据分区表,计算出某文件放在哪个扇区,然后告诉硬盘来读取。你看到的内容是引导记录或者分区表的内容,它记录了分区的信息。在分区时,会记录每个分区从哪个磁头的哪个柱面/扇区开始,到哪里结束。

    0 讨论(0)
提交回复