在了解开机启动流程之前,还是得先了解一些磁盘的基本知识。磁盘主要由盘片,机械手臂,磁头,主轴马达构成。盘片就是存储数据的物理单位了。然后盘片上我们可以分成扇区(sector)和柱面(cylinder),每个扇区sector为512Bytes。如下图所示:

磁盘在分区完成之后,每个分区(文件系统)都有一个启动扇区(boot sector),而开机时用到的则是整个磁盘的第一个扇区,这个扇区非常主要,构成如下:

(1)主引导分区(MBR)master boot record;446Bytes;系统安装时在在此区域安装引导加载程序即BootLoader

(2)分区表(partion table);64Bytes;记录整块磁盘的分区状态;

要了解启动流程,还有两个不得不说的概念,那就是BIOS和CMOS。CMOS是记录各项硬件参数并且嵌入在主板上的存储器,BIOS是开机执行的第一个程序,用它来确认硬件设备的启动顺序,然后在对应的硬件设备中找到引导程序。

好了,下面分阶段介绍开机的启动流程。

第一阶段:BIOS

上电之后,BIOS是计算机执行的第一个程序,计算机首先进行硬件自检,如果出现错误,则发出不同的蜂鸣声。自检完毕后,BIOS要把控制权交给下一阶段的引导程序,但如何转交呢。由于下一阶段的引导程序是放在磁盘分区的boot sector(引导扇区)里面,所以BIOS会根据预先设定好的次序的优先去找到某个硬件设备分区(就是平常我们说的从U盘,硬盘,光盘cd等)的引导扇区。

第二阶段:主引导记录

它可以告诉计算机去哪里找到系统。除此之外,MBR还包含有其他信息。分布如下:

(1)0-445 ,共446Bytes, 调用操作系统的机器码;

(2)446-509,共64Bytes,分区表信息;

(3)510-511,共2Bytes,主引导记录签名(0x55,0xAA);

这里面的第1点和第3点都比较清晰了,唯独第2点还需在深究一下,分区表信息里面包含了什么内容呢?具体如下6部分

(1)0, 0x80,代表该分区是激活分区,4个分区里面只能有一个激活分区;

(2)1-3, 主分区第一个扇区的物理位置(柱面,磁头,扇区号等);

(3)4,主分区类型;

(4)5-7,主分区最后一个扇区的物理位置;

(5)8-11,主分区第一个扇区的逻辑地址;

(6)12-15,主分区的总扇区数;

扇区总数为32bits,也就是说如果每个扇区的大小为512Bytes,那么每个分区的大小最大为2的32次方字节,即2TB。

到此为止,计算机已经找到引导程序了。

第三阶段:硬盘启动

这里又分为以下3种情况。

(1)卷引导记录

这一种方式启动最为简单,在四个分区里面只有一个是被激活的,找到激活分区的第一个扇区(Volume Boot Record:VBR),然后通过引导程序加载系统内核启动系统即可;

(2)扩展分区记录

由于现在硬盘越来越大,4个分区还已经不够支持,因此规定有且仅有一个主分区可以定义为扩展分区,在扩展分区中再进行逻辑扩展,即逻辑分区。而引导记录则位于该扩展扇区的第一个扇区,称为扩展引导记录(extend Boot Record:EBR)。在这个扇区中,也有一个分区表,不过这个分区表只有两项分区信息。这样计算机根据第二项分区信息找到下一个逻辑分区,然后在下一个逻辑分区的第一个扇区里面做同样的事情找到第三个逻辑分区,循环下去直至找到自己的逻辑分区就是最后一个逻辑分区了。

(3)启动管理器

这个的作用主要是安装多个操作系统,找到主引导记录不是把控制权交给某一个分区而是交给已经安装好的“启动管理器”BootLoader,由用户选择某个操作系统。Grub则是Linux环境最流行的启动管理器了。

转载于:https://www.cnblogs.com/vincentfu/p/5536943.html

linux系统下开机启动流程相关推荐

  1. (转)CentOS 7系统详细开机启动流程和关机流程

    CentOS 7系统详细开机启动流程和关机流程 原文:http://blog.csdn.net/yuesichiu/article/details/51350654 名称 bootup - 系统启动流 ...

  2. oracle11g设置开机自启动,oracle11g在linux系统下开机自启动设置

    oracle服务器一般来说最好是手动启动,这样碰到问题的话,可以现场解决,但是也担心有时候机器故障,自动重启后,为了快速恢复应用,需要自动开机启动oracle,而且发现在不同的os下,启动的设置都不太 ...

  3. linux系统下制作启动u盘,制作Linux系统启动盘的四种简便方法

    Linux的启动软盘有boot盘和boot/root盘之分,所谓的boot盘只能用来启动已经安装在硬盘上的Linux系统,而boot/root盘本身就是一个迷你Linux系统.Linux启动软盘是系统 ...

  4. LKT5103A Hid接口LINUX系统下JNI开发流程

    一.什么是JNI Java以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能.解决Java对本地操作的一种方法就是JNI.JNI是Java ...

  5. linux系统上tomcat启动正常,但浏览器无法访问

    linux系统下tomcat启动正常,但浏览器无法访问 现象:在linux系统下正常启动tomcat,但是外界用浏览器无法正常访问. 原因:可能是由于linux防火墙开启的缘故. 解决方法: #chk ...

  6. linux系统从开机到登录之前的启动流程

    Linux系统从开机到登录之前的启动流程 1.开机BIOS自检 接通电源开机,计算机会先加载BIOS信息,因为BIOS中包含了CPU的相关信息,设备启动顺序信息 ,硬盘信息,内存信息,时钟信息,pnp ...

  7. Linux系统开机启动流程介绍

    一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...

  8. linux开机引导进程是什么,Linux系统开机启动流程介绍

    一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...

  9. linux电脑自启动,caddyserver在linux系统下设置开机启动

    caddyserver在linux系统下的开机启动设置方法 方法一: vi /etc/rc.local 在exit 0前添加如下代码cd /root/caddy ./caddy & 保存后重启 ...

最新文章

  1. 帧中继和路由协议详解-在帧中继多点子接口上运行EIGRP
  2. 开发日记-20190724 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 14
  3. 2*2矩阵训练集比例对BP神经网络分类性能影响
  4. java it_Java中的Iterator的用法
  5. SpringSecurity加密认证
  6. html5input输入框设置无边框_芯片充电两大改变,无看点的iPad8,上手体验发现并不简单!...
  7. laravel 记录sql语句
  8. Go embed 简明教程
  9. 无人驾驶入门(基本流程)
  10. 我想开一家美团外卖店,不做堂食,有什么好的建议吗?
  11. 【2021Java最新学习路线】java后端开发入门
  12. mysql win7 zip_win7 下zip版mysql安装
  13. Dubbo--002--例子程序
  14. 无约而来WIN8 PRO WMC X64 201306
  15. 射影几何----帕普斯定理的证明
  16. windows server 2003 R2密钥
  17. 步履蹒跚的中国移动再现用户流失,中国电信成为最大受益者
  18. TCP/IP Attack Lab(SEED实验)
  19. task7a-10个细胞系仅1个表达你的基因
  20. vue:基础:生命周期

热门文章

  1. 80后游戏美术:这十年总在挣扎着做些更有意思的事儿
  2. 腾讯光子《黎明觉醒》技术美术负责人:如何制作超真实的开放世界?
  3. 《盗墓笔记》使用的这套技术,让美术可以在场景中任意使用灯光
  4. 游戏设计模式思考:“穿越火线”中的“策略模式”
  5. 自己动手写游戏:飞机大战
  6. jQuery经典案例【倒计时】
  7. 软件技术专业-就业提示(三、Java工程师必备技能)
  8. python的5种高级用法
  9. InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析
  10. VMware 在ubuntu-18.04.2安装搜狗输入法