关于硬盘分区以及引导 ------by vagrantx


分区表的结构:
硬盘的主分区信息(这只是分区信息的一部分,如果没有逻辑分区的话)是在硬盘的第一个sector上面,对于绝大多数硬盘,每一个sector有512个字节,从第一个字节到第446个字节,这一部分空间就是正常情况下MBR所在地,从第一项扇区的末字节向前数66个字节,除去最后两个字节,这一部分空间就事所谓的主分区表所在地,以每16个字节为一个表项,可以有四个表项,也就是说,一块硬盘最多只能分出四个主分区,这个时候,你就不可能再有多于四个的分区了。但是按照window的分区规则,我们可以把其中一个表项拿来记录这个分区作为扩展分区,然后在在扩展分区所指示的扩展分区开始扇区处建立逻辑分区信息,该信息也是记录在扇区的末尾处,一共两个表项,同上每个表项16个字节,第一个记录本逻辑分区的信息,第二个记录下一个逻辑分区的信息,然后在下一个逻辑分区的第一个扇区末尾处又有两个表的分区信息

.......

依此类推,直到你的最后一个逻辑分区。

扩展分区这种分区规则,并不是所有的操作系统都支持的。

主分区表由四个分区项构成, 每一项的结构如下:
BYTE State : 分区状态, 0 = 非启动分区, 0x80 = 启动分区(这占用一个字节空间)
BYTE StartHead : 分区起始磁头号
WORD StartSC : 分区起始扇区和柱面号, 底字节的低6位为扇区号,
高2位为柱面号的第 9,10 位, 高字节为柱面号的低 8 位
BYTE Type : 分区类型, 如 0x0B = FAT32, 0x83 = Linux 等,
00 表示此项未用
BYTE EndHead : 分区结束磁头号
WORD EndSC : 分区结束扇区和柱面号, 定义同前
DWORD Relative : 在线性寻址方式下的分区相对扇区地址
(对于基本分区即为绝对地址)
DWORD Sectors : 分区大小 (总扇区数)

第一个sector最后的两个标志“55 AA”是分区表的结束标志,如果这两个标志被修改,则系统引导时将报告找不到有效的分区表。

在标准MBR的情况下, 系统启动过程主要由一下几步组成(以硬盘启动为例):

1. 开机 :-)
2. BIOS 加电自检 ( Power On Self Test -- POST )
内存地址为 0ffff:0000
3. 将硬盘第一个扇区 (0头0道1扇区, 也就是Boot Sector)
读入内存地址 0000:7c00 处.
4. 检查 (WORD) 0000:7dfe (也就是第一个扇区的最后两个字节)是否等于 0xaa55, 若不等于
则转去尝试其他启动介质, 如果没有其他启动介质则显示
"No ROM BASIC" 然后死机.
5. 跳转到 0000:7c00 处执行 MBR 中的程序.
6. MBR 首先将自己复制到 0000:0600 处, 然后继续执行.
7. 在主分区表中搜索标志为活动的分区. 如果发现没有活动
分区或有不止一个活动分区, 则停止.
8. 将活动分区的第一个扇区读入内存地址 0000:7c00 处.
9. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则
显示 "Missing Operating System" 然后停止, 或尝试
软盘启动.
10. 跳转到 0000:7c00 处继续执行特定系统的启动程序.
11. 启动系统 ...

以上步骤中 2,3,4,5 步是由 BIOS 的引导程序完成. 6,7,8,9,10
步由MBR中的引导程序完成.

如果还成了其它的引导管理器如lilo,MBR也就是lilo的主体程序了,在上面的第七步的时候lilo就将自己的配置文件读进来,显示一个供给用户的选择菜单,然后根据用户的选择,决定跳转到哪个分区的第一个扇区(1,在这个时候还需不需要再次利用分区表来定位,我认为不是必须的,因为这个东西是灵活的,你可以把它作为你的配置文件中的内容,至于lilo是不是这样实现的我不是很清楚,哪位研究过lilo的朋友可以在这里给大家介绍介绍;2,在这个时候lilo把用户所选择的启动分区相对应的表项的第一个字节改为了80H,以前的激活表项第一个字节改为0,其实我个人认为,如果要实现一个引导管理器而言,这个也不一定是必须的,我认为可以这样的原因就是前面一个理由,但是标准MBR是绝对不允许有两个以上表项的第一个字节都是80H的,我所见过的引导管理器也都没有让两个表项同时显示激活,我想这个或许是遵循标准或者是与操作系统或是杀毒软件兼容的原因吧)
对于这个问题,某个具体的引导管理器如何操作的,可以用磁盘编辑器看一看,最终目的只有一个,就是让操作系统的内核加载到内存中间。然后的事情就归操作系统开发人员决定了

关于硬盘分区以及引导相关推荐

  1. linux系统引导分区,揭秘Linux(二)——操作系统引导与硬盘分区

    通过前面的介绍想必大家对Linux有了个基础的了解,那么各位肯定该说是不是要装操作系统了,对不起让各位失望了,这次所讲解的是Linux运行原理与硬盘分区,这是重中之重啊!请一定要细细品读. 为了更好地 ...

  2. 硬盘分区丢失不能识别,文件系统损坏,不能读取第一个/第二个NTFS引导扇区的解决方法

    硬盘分区丢失或则文件系统损坏,运行chkdsk 检查提示不能读取第一个/第二个NTFS引导扇区. 目录 一.切忌慌乱,保持冷静(引用某网友,赞同!) 二.弄清数据丢失原因 三.操作系统如何删除文件的 ...

  3. 系统引导管理 之 系统引导过程及硬盘分区结构论述

    作者: zhy2111314 来自: LinuxSir.Org ouc.edu.cn 摘要: 本文是理论性文档,主要讲述系统引导过程以及硬盘的物理结构: +++++++++++++++++++++++ ...

  4. 无需修复启动硬盘的ESP引导分区,使用Ghost工具备份和还原Windows系统的解决方案(原创)

    在 UEFI+GPT 模式下,使用 Symantec Ghost 11 还原Windows系统以后,电脑无法识别ESP引导分区,显示蓝屏错误,导致Windows系统启动失败.传统解决方案是使用专用工具 ...

  5. [小结]硬盘分区的知识与意义

    1首先硬盘分区的优点和缺点有很多,这里Google一下Disk Partition Wiki.就能了解很多,至少我们都知道的是下面几条优点. 不同的操作系统可以安装在不同的分区里面,而且可以互相不影响 ...

  6. rhel配置磁盘分区_rhel配置磁盘分区_centos系统三套硬盘分区方案[图文设置版]

    (1)方案1 / :建议大小在5GB以上. swap:即交换分区,建议大小是物理内存的1~2倍. (2)方案2 /boot:用来存放与Linux系统启动有关的程序,比如启动引导装载程序等,建议大小为1 ...

  7. uefi启动 多硬盘gtp_传统引导更改为UEFI+GTP

    本文旨在分享一下我在不重装系统的情况下,怎样将系统引导方式改为UEFI+GTP. 看过我以前发过的文章可能还记得,我是如何辛苦的把锐龙处理器加B350M主板安装成win7系统→新电脑装win7?锐龙. ...

  8. 硬盘分区与故障排解速查手册(1)

    在所有计算机配件中,硬盘是一个比较特殊的角色,它不仅关系到系统的整体性能,而且用户的所有资料都保存在它的身上. 那么,硬盘该如何初始化呢?遇到硬盘故障该如何解决呢? 一.大硬盘分区与格式化 硬盘分区是 ...

  9. LinuX 硬盘分区细节详谈 【 整理至 LinuxSir BY FreeXploiT 】

    系统引导过程及硬盘分区结构论述 作者: zhy2111314 来自: LinuxSir.Org ouc.edu.cn 摘要: 本文是理论性文档,主要讲述系统引导过程以及硬盘的物理结构: +++++++ ...

最新文章

  1. windows进程管理器_软件进程自动重启一遍又一遍……你需要这款自动杀进程的小公举ProcessKO...
  2. Java+eclipse的配置
  3. 手写自己的MyBatis框架-核心对象
  4. php session 效率,大量php session临时文件带来的服务器效率问题
  5. java可以继承私有的,关于java:继承中的私有方法
  6. shell mysql 取值_shell 脚本中获取mysql多个字段的值
  7. nlp-paper: 按主题分类的自然语言处理文献大列表
  8. Android中处理崩溃异常和分析日志的两种思路
  9. Linux下创建与解压zip, tar, tar.gz和tar.bz2文件--转 .
  10. JSON 在线格式化工具感觉挺好用的
  11. kubeadm+kube-vip搭建高可用k8s集群
  12. RxView学习及实现按钮防抖功能
  13. ubuntu20.04安装与卸载搜狗拼音输入法
  14. 概率论 各种分布及其期望、方差、分布函数
  15. 分子影像有哪些最新发表的毕业论文呢?
  16. android蓝牙发送文件夹里,Android蓝牙发送文件问题
  17. 教你用Python定时抓取微博评论,相当牛逼的技术
  18. 案例:同程凤凰缓存系统基于Redis的设计与实践。
  19. 错误:teamviewer未就绪请检查您的连接 网络设置
  20. LEARNING_CRYPTO|搭建个人以太坊测试网络+测试Solidity部署(Ganache+truffle)

热门文章

  1. 波长、子载波、载波容量和波长容量、频谱效能(针对光通信来说)
  2. 虚拟机调用方法之ArtMethod
  3. 华硕主板氛围灯光设置成关机不亮的解决办法
  4. Bayer图像色彩还原线性插值方法
  5. 开卷有益:架构整洁之道
  6. 论坛复制乱码消除小程序
  7. docker导出mysql_Docker 导出 mysql 数据
  8. java基础知识之面试题(一)
  9. 某软件平台定制开发项目技术标书
  10. 清理mstsc远程桌面连接的记录