开机流程:
计算机中有BIOS与CMOS两个东西, CMOS是记录各项硬件参数且嵌入在主板上面的储存器,BIOS则是一个写入到主板上的一个韧体( 韧体就是写入到硬件上的一个软件程序)。这个BIOS就是在启动的时候,计算机系统会主动运行的第一个程序了!
BIOS可以设置计算机中的硬件设备,我们以硬盘为例,BIOS会依据使用者的配置去取得能够启动的硬盘,并且到该硬盘里面去读取第一个磁区的MBR位置。 MBR占据446bytes的硬盘容量,其中放置了引导加载程序,而接下来就是MBR内的引导加载程序的工作了。
引导加载程序的目的是加载内核文件,由于引导加载程序是操作系统在安装的时候所提供的,所以它认识硬盘内的文件系统格式,因此就能够读取内核文件,然后接下来就是内核文件的工作,操作系统也就成功启动!
流程简述:
BIOS ==> MBR ==> 引导加载程序 ==> 内核文件
1、BIOS:启动主动运行的韧体,会认识第一个可启动的装置。
2、MBR(主引导记录):第一个可启动装置的第一个磁区内的主要启动记录区块,内含启动管理程序。
3、启动管理程序(boot loader):可读取核心文件来运行的软件;grub(面向linux中)是最主流的boot loader。
4、核心文件:开始操作系统的功能。
MBR位于主引导扇区(即:0磁头0柱面的第一扇区),共有446bytes。
BIOS与MBR都是硬件本身会支持的功能,至于Boot loader则是操作系统安装在MBR或分区启动扇区上的一套软件。
Boot loader的主要任务:
1、提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能!
2、加载核心文件:直接指向可启动的程序区段开始操作系统。
3、转交给其他loader:将引导加载功能转交给其他loader负责。
引导加载程序装在启动扇区上可以实现“多重引导”的功能。
Boot loader的属性:
1、每个分区都拥有自己的启动扇区(boot sector)
2、实际可启动的内核文件是放置到各分区里的。
3、boot loader只会认识自己的系统分区内的可启动内核文件,以及其他boot loader而已。
如果要安装多重启动, 最好先安装Windows再安装Linux(当然大牛反着来照样可以,可通过安装识别windows/linux的引导加载程序)
Linux在安装的时候,你可以选择将boot loader安装在MBR或分区的启动扇区,而且Linux的boot loader可以手动配置菜单,所以你可以在Linux的boot loader里面加入Windows启动的选项。
Windows在安装的时候,他的安装程序会主动的覆盖掉MBR以及自己所在分区的启动扇区, 而且它没有让我们自己选择菜单的功能。
相关阅读:
Linux启动引导过程 grub和MBR http://www.linuxidc.com/Linux/2013-07/87923.htm
Linux 磁盘基本概念(磁盘、分区、MBR、GPT) http://www.linuxidc.com/Linux/2013-06/85717.htm
RHCE_RHEL6_124 U20.3 解决Grub问题,修复MBR http://www.linuxidc.com/Linux/2012-10/71871.htm
关于MBR, Grub 的几个问题 http://www.linuxidc.com/Linux/2011-07/39075.htm
Ubuntu更新致MBR破坏 误操作丢失分区表 http://www.linuxidc.com/Linux/2010-08/28043.htm
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2013-09/90295.htm
来源:oschina
链接:https://my.oschina.net/u/1429171/blog/511953