linux系统下开机启动流程

  在了解开机启动流程之前,还是得先了解一些磁盘的基本知识。磁盘主要由盘片,机械手臂,磁头,主轴马达构成。盘片就是存储数据的物理单位了。然后盘片上我们可以分成扇区(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环境最流行的启动管理器了。

时间: 2024-12-28 21:55:50

linux系统下开机启动流程的相关文章

Linux系统入门---开机启动流程

目录 Linux系统入门---开机启动流程 一.centos6 二.systemd管理进程 1.查看级别 三.centos7实践案例: 1.案例1:centos7系统,单用户修改root密码 案例2: 如果修改级别 案例3:救援模式 四.修改CentOS7网卡名称为eth0和eth1 1.环境准备 2.用命令配置网卡 方法1: 方法2: 3.系统基本环境优化 五.Systemd 进程管理 1.systemctl管理服务的启动.重启.停止.重载.查看状态等常用命令 2.systemctl设置服务开

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

CentOS 7系统详细开机启动流程和关机流程 原文:http://blog.csdn.net/yuesichiu/article/details/51350654 名称 bootup - 系统启动流程 描述 在系统启动过程中要涉及多个不同的组件.按下开机按钮后,首先BIOS/UEFI做最基本的硬件自检与初始化, 然后加载预设/手动选择的磁盘/网络上的引导加载器(例如GRUB2),引导加载器进一步从磁盘/网络上加载操作系统内核(例如Linux). 对于Linux来说,内核将会(可选的)解压一个i

CentOS 7系统详细开机启动流程和关机流程

名称 bootup - 系统启动流程 描述 在系统启动过程中要涉及多个不同的组件.按下开机按钮后,首先BIOS/UEFI做最基本的硬件自检与初始化, 然后加载预设/手动选择的磁盘/网络上的引导加载器(例如GRUB2),引导加载器进一步从磁盘/网络上加载操作系统内核(例如Linux). 对于Linux来说,内核将会(可选的)解压一个initrd(initial RAM disk)镜像(可以用dracut类的工具生成), 并执行由"rdinit="内核引导参数指定的init程序(例如sys

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

oracle服务器一般来说最好是手动启动,这样碰到问题的话,可以现场解决,但是也担心有时候机器故障,自动重启后,为了快速恢复应用,需要自动开机启动oracle,而且发现在不同的os下,启动的设置都不太一样 1,centos操作系统下,可以这样设置 直接在rc.local里面添加 [[email protected] ~]# vim /etc/rc.local touch /var/lock/subsys/local su - oracle < lsnrctl start sqlplus / as

win7 系统下开机启动

1.开机启动查看 运行: msconfig --> 点击"启动"标签 2.开机项添加:将 .exe/.bat 等运行文件(或者快捷方式)放入 开始-->所有程序-->Startup  文件夹 例:开机打开某文件夹 先创建 *.bat文件(名字自创),右击文件--编辑,添加以下代码: 打开本地磁盘: start C:\ 打开局域网共享文件(需IP地址): start \\192.168.1.100\share\ 保存文件,将 *.bat文件放入 Startup 文件夹(

linux系统下memcached启动正常但程序无法连接的问题解决

在虚拟机linux安装好memcached之后,试着用java程序连接一下memcached的服务端,但却出现了以下错误 com.schooner.MemCached.SchoonerSockIOPool Fri Jan 09 09:45:59 CST 2015 - ++++ failed to get SockIO obj for: 192.168.168.2:11211 com.schooner.MemCached.SchoonerSockIOPool Fri Jan 09 09:45:59

Linux系统开机启动流程介绍

一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取inittab文件执行rc.sysinit.rc等脚本 7.启动mingetty进入系统登录界面 三.详细剖析linux系统启动过程 1.POST开机自检 电脑主机打开电源的时候随后会听到滴的一声响系统启动开始了开机自检POST-power on self Test自检开始这个过程中主要是检测计算机硬

LINUX系统开机启动流程全解

1,linux系统6.0系列和7.0系列系统开机启动流程:简述:1,开机BIOS自检2,MBR引导(磁盘上的一个引导扇区512K)3,grub引导菜单(可进入单用户模式或者救援模式)4,加载Kernel内核5,启动init进程(6系列的第一个进程7系列的第一个进程是systemd6,读取initab启动文件执行rc.sysinit等开机启动脚本文件7,启动mingetty,启动系统登录界面 原文地址:https://blog.51cto.com/13858002/2429553

linux开机启动流程及需要开机启动服务讲解和修改及防火墙

linux系统从开机到登陆的启动流程. 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核kernel 5.启动init进程 6.读取inittab文件,执行rc.sysinit,rc等脚本 7.启动mingetty,进入系统登陆界面 精简开机系统启动.有必要保留的开机启动: 1.sshd 远程连接linux服务器的服务程序 2.rsyslog 操作系统提供的一种机制,系统守护程序通常会使用rsyslog 将各种信息储存在系统日志文件中,Centos6以前此服务的名字为sy