DS系列服务器硬盘扇区,硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)...

硬盘的DOS管理结构

1.磁道,扇区,柱面和磁头数

硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息。在DOS中每扇区是128×2的2次方=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘中,不同盘片相同半径的磁道所组成的圆柱称为柱面。磁道与柱面都是表示不同半径的圆,在许多场合,磁道和柱面可以互换使用,我们知道,每个磁盘有两个面,每个面都有一个磁头,习惯用磁头号来区分。扇区,磁道(或柱面)和磁头数构成了硬盘结构的基本参数,帮这些参数可以得到硬盘的容量,基计算公式为:

存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数

要点:(1)硬盘有数个盘片,每盘片两个面,每个面一个磁头

(2)盘片被划分为多个扇形区域即扇区

(3)同一盘片不同半径的同心圆为磁道

(4)不同盘片相同半径构成的圆柱面即柱面

(5)公式: 存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数

(6)信息记录可表示为:××磁道(柱面),××磁头,××扇区

2.簇

“簇”是DOS进行分配的最小单位。当创建一个很小的文件时,如是一个字节,则它在磁盘上并不是只占一个字节的空间,而是占有整个一簇。DOS视不同的存储介质(如软盘,硬盘),不同容量的硬盘,簇的大小也不一样。簇的大小可在称为磁盘参数块(BPB)中获取。簇的概念仅适用于数据区。

本点:(1)“簇”是DOS进行分配的最小单位。

(2)不同的存储介质,不同容量的硬盘,不同的DOS版本,簇的大小也不一样。

(3)簇的概念仅适用于数据区。

3.扇区编号定义:绝对扇区与DOS扇区

由前面介绍可知,我们可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,或是说柱面/磁头/扇区与磁盘上每一个扇区有一一对应关系,通常DOS将“柱面/磁头/扇区”这样表示法称为“绝对扇区”表示法。但DOS不能直接使用绝对扇区进行磁盘上的信息管理,而是用所谓“相对扇区”或“DOS扇区”。“相对扇区”只是一个数字,如柱面140,磁头3,扇区4对应的相对扇区号为2757。该数字与绝对扇区“柱面/磁头/扇区”具有一一对应关系。当使用相对扇区编号时,DOS是从柱面0,磁头1,扇区1开始(注:柱面0,磁头0,扇区1没有DOS扇区编号,DOS下不能访问,只能调用BIOS访问),第一个

DOS扇区编号为0,该磁道上剩余的扇区编号为1到16(设每磁道17个扇区),然后是磁头号为2,柱面为0的17个扇区,形成的DOS扇区号从17到

33。直到该柱面的所有磁头。然后再移到柱面1,磁头1,扇区1继续进行DOS扇区的编号,即按扇区号,磁头号,柱面号(磁道号)增长的顺序连续地分配 DOS扇区号。

公式:记DH--第一个DOS扇区的磁头号

DC--第一个DOS扇区的柱面号

DS--第一个DOS扇区的扇区号

NS--每磁道扇区数

NH--磁盘总的磁头数

则某扇区(柱面C,磁头H,扇区S)的相对扇区号RS为:

RS=NH×NS×(C-DC)+NS×(H-DH)+(S-DS)

若已知RS,DC,DH,DS,NS和NH则

S=(RS MOD NS)+DS

H=((RS DIV NS)MOD NH)+DH

C=((RS DIV NS)DIV NH)+DC

要点:(1)以柱面/磁头/扇区表示的为绝对扇区又称物理磁盘地址

(2)单一数字表示的为相对扇区或DOS扇区,又称逻辑扇区号

(3)相对扇区与绝对扇区的转换公式

4.DOS磁盘区域的划分

格式化好的硬盘,整个磁盘按所记录数据的作用不同可分为主引导记录(MBR:Main Boot Record),Dos引导记录(DBR:Dos Boot

Record),文件分配表(FAT:File Assign Table),根目录(BD:Boot

Directory)和数据区。前5个重要信息在磁盘的外磁道上,原因是外圈周长总大于内圈周长,也即外圈存储密度要小些,可靠性高些。

要点:(1)整个硬盘可分为MBR,DBR,FAT,BD和数据区。

(2)MBR,DBR,FAT,和BD位于磁盘外道。

5.MBR

MBR位于硬盘第一个物理扇区(绝对扇区)柱面0,磁头0,扇区1处。由于DOS是由柱面0,磁头1,扇区1开始,故MBR不属于DOS扇区,DOS不能直接访问。MBR中包含硬盘的主引导程序和硬盘分区表。分区表有4个分区记录区。记录区就是记录有关分区信息的一张表。它从主引导记录偏移地址

01BEH处连续存放,每个分区记录区占16个字节。

分区表的格式

分区表项的偏移 意义   占用字节数

00 引导指示符 1B

01 分区引导记录的磁头号 1B

02 分区引导记录的扇区和柱面号 2B

04 系统指示符 1B

05

分区结束磁头号 1B

06 分区结束扇区和柱面号 2B

08 分区前面的扇区数 4B

0C 分区中总的扇区数 4B

4个分区中只能有1个活跃分区,即C盘。标志符是80H在分区表的第一个字节处。若是00H则表示非活跃分区。例如:

80 01 01 00 0B

FE 3F 81 3F 00 00 00 C3 DD 1F 00

00 00 01 82 05 FE BF 0C 02 DE 1F 00 0E 90

61 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

要点:(1)MBR位于硬盘第一个物理扇区柱面0,磁头0,扇区1处。不属于DOS扇区,

(2)主引导记录分为硬盘的主引导程序和硬盘分区表。

6.DBR

DBR位于柱面0,磁头1,扇区1,即逻辑扇区0。DBR分为两部分:DOS引导程序和BPB(BIOS参数块)。其中DOS引导程序完成DOS系统文件(IO.SYS,MSDOS.SYS)的定位与装载,而BPB用来描述本DOS分区的磁盘信息,BPB位于DBR偏移0BH处,共13字节。它包含逻辑格式化时使用的参数,可供DOS计算磁盘上的文件分配表,目录区和数据区的起始地址,BPB之后三个字提供物理格式化(低格)时采用的一些参数。引导程序或设备驱动程序根据这些信息将磁盘逻辑地址(DOS扇区号)转换成物理地址(绝对扇区号)。BPB格式

序号 偏移地址 意义

1 03H-0AH OEM号

2 0BH-0CH 每扇区字节数

3 0DH 每簇扇区数

4

0EH-0FH 保留扇区数

5 10H FAT备份数

6 11H-12H 根目录项数

7 13H-14H 磁盘总扇区数

8

15H 描述介质

9 16H-17H 每FAT扇区数

10 18H-19H 每磁道扇区数

11 1AH-1BH 磁头数

12

1CH-1FH 特殊隐含扇区数

13 20H-23H 总扇区数

14 24H-25H 物理驱动器数

15 26H 扩展引导签证

16 27H-2AH 卷系列号

17 2BH-35H 卷标号

18 36H-3DH 文件系统号

DOS引导记录公式:

文件分配表≡保留扇区数

根目录≡保留扇区数+FAT的个数×每个FAT的扇区数

数据区≡根目录逻辑扇区号+(32×根目录中目录项数+(每扇区字节数-1))DIV每扇区字节数

绝对扇区号≡逻辑扇区号+隐含扇区数

扇区号≡(绝对扇区号MOD每磁道扇区数)+1

磁头号≡(绝对扇区号DIV每磁道扇区数)MOD磁头数

磁道号≡(绝对扇区号DIV每磁道扇区数)DIV磁头数

要点:(1)DBR位于柱面0,磁头1,扇区1,其逻辑扇区号为0

(2)DBR包含DOS引导程序和BPB。

(3)BPB十分重要,由此可算出逻辑地址与物理地址。

7.文件分配表

文件分配表是DOS文件组织结构的主要组成部分。我们知道DOS进行分配的最基本单位是簇。文件分配表是反映硬盘上所有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。DOS在给一个文件分配空间时总先扫描FAT,找到第一个可用簇,将该空间分配给文件,并将该簇的簇号填到目录的相应段内。即形成了“簇号链”。FAT就是记录文件簇号的一张表。FAT的头两个域为保留域,对FAT12来说是3个字节,FAT来说是4个字节。其中头一个字节是用来描述介质的,其余字节为FFH

。介质格式与BPB相同。

第一个字节的8位意义:

7 6 5 4 3 2 1 0

└─────-┘ │ │ │┌0非双面

置1

│ │ └┤

│ │ └1双面

│ │┌0不是8扇区

│ └┤

│ └1是8扇区

│┌0不是可换的

└┤

└1是可换的

FAT结构含义

FAT12 FAT16 意义

000H 0000H 可用

FF0H-FF6H

FFF0H-FFF6H 保留

FF7H FFF7H 坏

FF8H-FFFH FFF8H-FFFFH 文件最后一个簇

×××H ××××H

文件下一个簇

对于FAT16,簇号×2作偏移地址,从FAT中取出一字即为FAT中的域。

逻辑扇区号=数据区起始逻辑扇区号+(簇号-2)×每簇扇区数

簇号=(逻辑扇区号-数据区起始逻辑扇区号)DIV每簇扇区数+2

要点:(1)FAT反映硬盘上所有簇的使用情况,它记录了文件在硬盘中具体位置(簇)。

(2)文件第一个簇号(在目录表中)和FAT的该文件的簇号串起来形成文件的“簇号链”,恢复被破坏的文件就是根

据这条链。

(3)由簇号可算逻辑扇区号,反之,由逻辑扇区号也可以算出簇号,公式如上。

(4)FAT位于DBR之后,其DOS扇区号从1开始。

8.文件目录

文件目录是DOS文件组织结构的又一重要组成部分。文件目录分为两类:根目录,子目录。根目录有一个,子目录可以有多个。子目录下还可以有子目录,从而形成“树状”的文件目录结构。子目录其实是一种特殊的文件,DOS为目录项分配32字节。目录项分为三类:文件,子目录(其内容是许多目录项),卷标(只能在根目录,只有一个。目录项中有文件(或子目录,或卷标)的名字,扩展名,属性,生成或最后修改日期,时间,开始簇号,及文件大小。

目录项的格式

字节偏移 意义 占字节数

00H 文件名 8B

08H 扩展名 3B

0BH 文件属性 1B

0CH 保留 10B

16H 时间 2B

18H 日期 2B

1AH 开始簇号 2B

1CH 文件长度 4B

目录项文件名区域中第一个字节还有特殊的意义:00H代表未使用

05H代表实际名为E5H

EBH代表此文件已被删除

目录项属性区域的这个字节各个位的意义如下: 7 6 5 4 3 2 1 0

未 修 修 子 卷 系 隐 只

用 改 改 目 标 统 藏 读

标 标 录   属 属 属

志 志     性 性 性

注意:WINDOWS的长文件名使用了上表中所说的“保留”这片区域。

要点:(1)文件目录是记录所有文件,子目录名,扩展名属性,建立或删除最后修改日期。文件开始簇号及文件长度的一张

登记表.

(2)DOS中DIR列出的内容训是根据文件目录表得到的。

(3)文件起始簇号填在文件目录中,其余簇都填在FAT中上一簇的位置上。

9.物理驱动器与逻辑驱动器

物理驱动器指实际安装的驱动器。

逻辑驱动器是对物理驱动器格式化后产生的。

要点:同上。

=================================================================================

fantaxy:

其实细节之外的最基本东西就是:磁道,扇区,柱面和磁头数

可以这么理解吗?:

1.

扇区

扇区不是扇形的,即不是两个半径之间的区域,而是个四边形:两个半径为两边,两个大小同心圆作为两外两边。

2.

磁道

磁道不是线性的,而是个区域,有两个大小同心圆组成

3. 柱面不是面而是号码相同的多个磁道组成的柱体

4.

磁头数:因为磁盘的双面存储性,使得计算时用磁头数而没有用盘片数

可以说:扇区是硬盘分割的最小单位。

存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数

___________________________|-----磁道的总字节数-----|

_______________|-------磁盘一个盘面的总字节数------------|

__________|-----磁盘容量(磁头数个盘面)--------------------|

另外如果想详细了解:硬盘+分区+fileSystem+file存取等细节,请看《鸟哥的Linux私房菜》--磁碟与档案系统一节,很很详细!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arm ubuntu 编译boost_为arm linux 交叉编译boost 1.33.1

首先在arm linux环境上要有zlib1 解开boost压缩包, cd进入解压目录2 编译出bjam,并配置好,看手册页3 产生Makefile: ./configure "-sBUILDdebug release static/dynamic" --without-python4 更改Makefile:把文件头上的几个变量改成下面这样,我…

华为服务器sn号查询网站,linux 查询服务器sn

linux 查询服务器sn 内容精选换一换Linux云服务器变更规格时,可能会发生磁盘挂载失败的情况,因此,变更规格后,需检查磁盘挂载状态是否正常。本节操作介绍变更规格后检查磁盘挂载状态的操作步骤。以root用户登录云服务器。执行以下…

jdba访问mysql_mysql连接出现问题记录

解决:Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone valu//报错信息Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value ‘‘ is unrecognized or represents…

mysql 存储引擎版本_mysql不同版本和存储引擎选型的验证

Mysql的版本和存储引擎较多,为了选择最适合业务使用的系统,需要进行一定的验证,本文描述mysql的验证过程和思路。主要涉及:Mysql的版本v Mariadbv Tokudbv Oracle具体的存储引擎v Myisamv Innodbv TokuDBv Maria如下是具体的思路M…

python制作表白神器_python制作exe可执行表白神器-Go语言中文社区

1、效果图2、程序源码import turtleimport time#writing txtturtle.hideturtle()turtle.penup()turtle.goto(130,50)# turtle.pendown()turtle.color("blue")turtle.write("亲爱的,给你画个东西",font ("Times",18,"bold"…

qtp连接mysql 无驱动_QTP连接MySQL

1、安装 Connector/ODBC2、查看数据源名称『控制面板』- 『管理工具』- 『数据源(ODBC)』-『添加』3、连接数据库Dim Conn,ConnString创建数据库实例Set ConnCreateObject("ADODB.Connection")连接字符串ConnString"Driver{Mysql ODBC 5.2w Driver};DATABASEmys…

python3如何安装selenium_Mac-Firefox浏览器+selenium+Python3环境安装

1.安装selenium安装命令:pip3 install selenium2.53.6如果之前已经安装过了,可以先卸载pip3 uninstall selenium使用selenium2.53.6版本是因为-selenium2的版本会更加稳定(切记注意版本号,很多问题都是由于版本不兼容导致的哦2.安装Firefox浏…

python保存模型的路径怎么写_使用python在MongoDB中保存机器学习(ML)和深度学习(DL)模型...

我们知道,当我们训练机器学习或深入学习模型时,我们必须保存训练过的模型,以便将来进行预测。现在的训练模型非常昂贵,所以如果我们能够保存它们并将其用于解决其他一些问题。例如,一个训练过的能够识别汽车的神经网络…

抓狐狸python_​用Python操作Kubernetes的Job

本文给出Python SDK操作Kubernetes Job的更多示例代码,以及相关解释。pip install kubernetes初始化from kubernetes.client import BatchV1Apifrom kubernetes.config import load_kube_configload_kube_config()batch BatchV1Api()load_kube_config 是从默认位置…

mysql8支持myISAM_mysql菜鸟手迹8--mysql存储引擎之MyISAM

MyISAM可以将表压缩为只读表来节省空间。使用myisampack工具来进行表压缩。MyISAM支持全文索引;一般使用instr()来替代。myisam在写的时候,会产生一个表级锁。myisam锁的时候使用一个lock命令,lock类型有write锁(只有当前线程可以做读写删操作…

mysql双机数据热备份_配置MySQL数据库双机热备份

1、mysql 数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好 mysql 数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现 mysql 数据库的热备份。  2、要想实现双机的热备首先要了解主从…

java token_Java实现基于token认证的方法示例

随着互联网的不断发展,技术的迭代也非常之快。我们的用户认证也从刚开始的用户名密码转变到基于cookie的session认证,然而到了今天,这种认证已经不能满足与我们的业务需求了(分布式,微服务)。我们采用了另外一种认证方式&#xff…

重置mysql+密码_MySQL重置root密码的几种方法(windows+Linux)

重置root密码的方法:windows系统下:1、停止mysql服务;2、新建文件init-root.txt,写上如下内容:update mysql.user set password password(‘newpwd‘) where user ‘root‘;flush privileges;保存;3、打开命令行&…

java 中导出word后压缩文件_Java批量导出word压缩后的zip文件案例

一、js代码,由于参数比较大所以利用form表单使用post导出function export_word(){var selectedRows $("#dg").datagrid("getSelections");if (selectedRows.length0) {showAlertWarning("请选择一条的信息...");return;}if (selecte…

opengl es java_java – 在Android OpenGL ES App中加载纹理

1)您应该根据需要分配尽可能多的纹理名称.一个用于您正在使用的每个纹理.加载纹理是一项非常繁重的操作,会使渲染管道停顿.所以,你永远不应该在游戏循环中加载纹理.您应该在呈现纹理的应用程序状态之前具有加载状态.加载状态负责加载渲染中所需的所有纹理.因此,当您需要渲染几何…

java io 视频 下载_Java下载映客主播视频回放到电脑硬盘

Java下载映客主播视频回放到电脑硬盘使用Java下载映客回放到电脑硬盘使用方法:在映客app播放回放视频时,分享到QQ,就可以得到url,其中的liveid属性就是视频ID。源代码由 [**海思教育**](http://edu.itshidu.com/) 提供&#xff0c…

java jni helloword_JNI学习一:编写HelloWorld程序

转载请说明出处~本文教程翻译jni官方文档的部分内容。要查看Jni官方文档,请点击这里先感叹一下时光如水,岁月不留人哇有木有!!!认真想想在XMU的这三年,真的改变了我好多。我还清楚地记得学习C语言写的第一个…

【学习记录】macOS的Redis安装及基本使用

【学习记录】macOS的Redis安装及基本使用一. Redis的安装与启动二. 简单使用① 尝试插入第一个key-value② Redis的数据类型与基本使用字符串列表字典(哈希表)集合有序集合三. 杂乱无章的笔记一. Redis的安装与启动 打开终端,输入以下命令即…

java scipt 对象 函数_java script 基本函数

Math.random() 是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值。日期时间函数(需要用变量调用):var b new Date(); //获取当前时间b.getTime() ; //获取时间戳b.getFullYear(); //获取年…

[学习记录] macOS下的Nginx安装 Nginx基本知识

[学习记录] macOS下的Nginx安装 && Nginx基本知识一. 安装相关1. 安装:直接通过brew安装即可2. 启动:3. 成功运行判断:4. 改端口号:由于8080这个端口号很容易冲突,因此需要改一个其他的端口号。二. Nginx 学习…