DOS分区表(Boot Sector引导扇区)[通俗易懂]

DOS分区表(Boot Sector引导扇区)[通俗易懂]>>DOS分区体系的硬盘也叫MBR硬盘,0号扇区是主引导记录MBR,DOS分区体系的硬盘用分区表记录每个分区的类型起始位置和分区的大小。其中,分区表就在0号扇区内,所以0号扇区如果损坏,那么这个硬盘就不能正确识别分区。>>DOS分区的使用范围:windows系统,Linux系统以及基于IA32平台FreeDBS和OpenDBS等操作系统都使用DOS分区体系。&g…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

 

>>DOS分区体系的硬盘也叫MBR硬盘,0号扇区是主引导记录MBR,DOS分区体系的硬盘用分区表记录每个分区的类型起始位置和分区的大小。其中,分区表就在0号扇区内,所以0号扇区如果损坏,那么这个硬盘就不能正确识别分区。

>>DOS分区的使用范围:windows系统,Linux系统以及基于IA32平台FreeDBS和OpenDBS等操作系统都使用DOS分区体系。

>>Boot Sector(引导扇区)
Boot Sector也就是硬盘的第一个扇区,它由 MBR(Master Boot Record),DPT (Disk Partition Table)Boot Record ID三部分组成。

1)主引导记录MBR 占用Boot Sector的前446个字节( 0 to 0x1BD ),存放系统主引导程序(它负责从活动分区中装载并运行系统引导程序)。
2)DPT 即主分区表 占用64个字节 (0x1BE to 0x1FD),记录了磁盘的基本分区信息,主分区表分为四个分区项,每项16字节,分别记录了每个主分区的信息(因此最多可以有四个主分区)。
3)Boot Record ID 即引导区标记 占用两个字节(0x1FE and 0x1FF),对于合法引导区,它等于0xAA55,这是判别引导区是否合法的标志。

DOS分区表(Boot Sector引导扇区)[通俗易懂]

winhex打开如下图:

DOS分区表(Boot Sector引导扇区)[通俗易懂]

 

下面研究分区表和Boot Record ID:

1、分区表:
首先,我的虚拟机磁盘结构如下:

DOS分区表(Boot Sector引导扇区)[通俗易懂]

>分区表结构如下:

DOS分区表(Boot Sector引导扇区)[通俗易懂]

下面用winhex看看分区表:
> 04 (分区类型):
00   未使用分区项
01    DOS12一种fat表为12位的分区主要用于早期小硬盘和部分软盘
05    EXTEND扩展分区的一种
06    BIGDOS即FAT16分区分区表为16位,每簇最大为32K,最大分区为2G
07    NTFS分区
0B    FAT32分区分区表为32位
0C    FAT32X分区与FAT32基本相同
0E    BIGDOSX即FAT16分区扩展分区表为16位,每簇最大可以超过32K
0F    EXTENDX扩展分区的一种
82    Linux主分区
83   Linux交换分区

>08-0B:分区的起始扇区号,
我打开虚拟机里的C盘后,发现我的第一分区不是63扇区开始,而是2048,

 DOS分区表(Boot Sector引导扇区)[通俗易懂]

DOS分区表(Boot Sector引导扇区)[通俗易懂]

DOS分区表(Boot Sector引导扇区)[通俗易懂]

原因如下:
win7系统对硬盘的分区管理有所改变了。很多时候会在硬盘起始部分占用部分扇区数。这就造成了这种情况的出现。如果系统正常,不用太在意。不过如果出现问题。一定不要随意使用修复工具修复。因为很多修复工具是按照以前的63扇区起始来计算修复的。错误的操作会破坏数据的。

>0C-0F(分区大小):

 DOS分区表(Boot Sector引导扇区)[通俗易懂]

打开C盘,查看C盘大小:

DOS分区表(Boot Sector引导扇区)[通俗易懂]

>再来看看第4个分区(扩展分区):

DOS分区表(Boot Sector引导扇区)[通俗易懂]

转到该扇区:

DOS分区表(Boot Sector引导扇区)[通俗易懂]

可以看到主扩展分区表(即记录逻辑分区的表)(关于主分区,扩展分区,逻辑分区可看上一篇随笔):

DOS分区表(Boot Sector引导扇区)[通俗易懂]

 其中有一条表项,分区类型是07–>NTFS,第一个扇区2048

 DOS分区表(Boot Sector引导扇区)[通俗易懂]

分区大小:20480:

DOS分区表(Boot Sector引导扇区)[通俗易懂]

顺便计算一下,一个扇区是512Byte(即0.5M),20480个扇区就是10240Byte(即10M)。正确对上实际值。

2、Boot Record ID
如果引导区标志不是0xAA55,将出现严重后果。
用winhex打开之前建立的虚拟磁盘,修改标志为0A55,然后保存

 DOS分区表(Boot Sector引导扇区)[通俗易懂]

打开设备管理器,刷新设备(先卸载虚拟磁盘然后扫描)

DOS分区表(Boot Sector引导扇区)[通俗易懂]

然后打开磁盘管理界面就发现,显示虚拟磁盘没有初始化:

DOS分区表(Boot Sector引导扇区)[通俗易懂]

最后修改回0xAA55,重复上述步骤,虚拟磁盘变回可用的了。

DOS分区表(Boot Sector引导扇区)[通俗易懂]

 

转载于:https://www.cnblogs.com/yxqxx/p/8972301.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204009.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ThinkServer RS260安装CentOS操作实录

    ThinkServer RS260安装CentOS操作实录

    2022年4月2日
    117
  • java的api类_javaAPI类

    java的api类_javaAPI类扫描器Scanner可以用来从键盘输入读取数据extLine()获取一行字符串nextInt()获取一个整数nextFloat()获取一个浮点数大数字BigInteger如果我们需要操作一个很大的整数,它无法用long来表达时,就可以用BigIntegeradd()加subtract()减multiply()乘divide()除mod()取余包装类ØJDK提供了对所有数据类…

    2022年7月7日
    21
  • 转:MFC之COleVariant[通俗易懂]

    转:MFC之COleVariant[通俗易懂]COleVariant本质上是一个枚举,用同一种类型来表达不同的子类型。如同boost中的variant。例子[cpp]viewplaincopyCOleVariantvar(3.6f);floatv=var.fltVal;CStringstr(“testCOleVariant”);COleVariantvar2(st…

    2022年7月18日
    11
  • GET和POST两种基本请求方法的区别「建议收藏」

    GET和POST两种基本请求方法的区别「建议收藏」GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。 你轻轻松松的给出…

    2022年6月13日
    32
  • Mac下mysql不能远程访问问题

    Mac下mysql不能远程访问问题

    2021年5月14日
    143
  • Vue菜鸟教程

    Vue框架快速入门1.Vue的认识1.1什么是Vue?Vue是一个开源的javascript框架,并且Vue支持mvc和mvvm两种模式。Vue是一个构建数据驱动的web界面的渐进式框架。采用自底向上增量开发的设计。Vue.js的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件,是又一个js库。MVC:Model(模型),View(视图),Controller(…

    2022年4月9日
    10.1K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号