开机流程:

1)BIOS:开机主动运行的韧体。会认识第一个可开机设备。
2)MBR:第一个可开机设备的第一个扇区内的主引导分区块。当中包括引导载入程序。
3)引导载入程序:一支可读取内核文件来运行的软件,boot loader;
4)内核文件:開始操作系统功能。

CMOS与BIOS:

基本的功能为记录主板上面的重要參数。 包含系统时间、 CPU 电压不频率、各项设备癿 I/O 地址不 IRQ 等,因为这些数据的记录要花费电力。因此主板上面才有电池。 BIOS 为写入到主板上某一块 flash 或 EEPROM的程序,他能够在开机的时候运行,以载入
CMOS 其中的參数, 并尝试呼叫储存装置中的开机程序,进一步进入操作系统中。 BIOS 程序也能够改动 CMOS 中的数据, 每种主板呼叫 BIOS 设定程序的按键都不同。一般桌面计算机常见得是使用[del]按键进入 BIOS 设定画面。

MBR:

整颗磁盘的第一个扇区特别的重要。由于他记录了整颗磁盘的重要信息!

磁盘的第一个扇区主要记录了两个重要的信息。各自是:


主要启动记录区(Master Boot Record, MBR):能够安装开机管理程序的地方,有 446 bytes;


切割表(partition table):记录整颗硬盘切割的状态,有 64 bytes MBR 是很重要的,由于当系统在开机癿时候会主动去读取这个区块的内容,这样系统才会知道你癿程序放在哪里和该怎样进行开机。 假设你要安装多重引导的系统,MBR 这个区块的管理就很很的重要了!

boot
loader:

主要任务有底下这些项目:


提供选单:用户能够选择不同得开机项目,这也是多重引导的重要功能。


加载核心档案:直接指向可开机的程序区段来開始操作系统;


转交其它 loader:将开机管理功能转交给其它 loader 负责。上面前两点还easy理解,可是第三点非常有趣喔!

那表示你的计算机系统里面可能具有两个以上的开机管理程序呢。 有可能吗?我们的硬盘不是叧有一个 MBR 而已?是没错啦。可是开机管理程序除了能够安装在
MBR 之外, 还能够安装在每一个切割槽的启动扇区(boot sector)喔。切割槽还有各别的启劢扂区喔? 没错啊!这个特色就能造就『多重引导』得功能啊!我们举一个样例来说。如果你的个人计算机叧有一个硬盘,里面切成四个切割槽,当中第一、事切割槽分别安装了 Windows 及 Linux。 你要怎样在开机的时候选择用 Windows 还是
Linux 开机呢?如果MBR 内安装的是可同一时候认识 Windows/Linux 操作系统得开机管理程序, 那举整个流程能够图标如下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


在上图中我们能够发现,MBR 的开机管理程序提供两个选单。选单一(M1)能够直接载入 Windows 的核心档案来开机; 选单二(M2)则是将开机管理工作交给第二个切割槽的启劢扂区(boot
sector)。当使用者在开机的时候选择选单二时, 那么整个开机管理工作就会交给第二切割槽的开机管理程序了。 当第二个开机管理程序启动后,该开机管理程序内(上图中)仅有一个开机选单。因此就行使用 Linux 癿核心档案来开机啰。 这就是多重引导的工作情况啦。我们将上图作个总结:


每一个切割槽都拥有自己的启劢扂区(boot sector)


图中的系统槽为第一及第二切割槽。


实际可开机的核心档案是放置到各切割槽内的!


loader 叧会认识自己得系统槽内的可开机核心档案,以及其它 loader 而已;


loader 可直接挃向或者是间接将管理权转交给还有一个管理程序。

那如今请你想一想,为什举人家经常说:『 假设要安装多重引导, 最好先安装 Windows 再安装Linux』呢?这是由于:


Linux 在安装的时候,你能够选择将开机管理程序安装在 MBR 或各别切割槽的启动扇区, 并且Linux 的 loader 能够手动设定选单(就是上图的M1, M2...),所以你能够在 Linux 的 bootloader 里面增加 Windows 开机的选项。


Windows 在安装的时候,他的安装程序会主动的覆盖掉 MBR 以及自己所在切割槽的启动扇区。你没有选择的机会, 并且他没有让我们自己选择选单的功能。因此,假设先安装 Linux 再安装 Windows 的话。那 MBR 的开机管理程序就仅仅会有 Windows 的项目,而不会有 Linux 的项目 (由于原本在 MBR 内的 Linux
的开机管理程序就会被覆盖掉)。 那须要又一次安装 Linux 一次吗?当然不须要。你仅仅要用尽各种方法来处理 MBR 的内容就可以。 比如利用全中文癿spfdisk(http://spfdisk.sourceforge.net/)软件来安装认识
Windows/Linux 的管理程序, 也可以利用Linux 的救援模式来拯救 MBR 就可以。




linux系统的开机流程的更多相关文章

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

    目录 Linux系统入门---开机启动流程 一.centos6 二.systemd管理进程 1.查看级别 三.centos7实践案例: 1.案例1:centos7系统,单用户修改root密码 案例2: ...

  2. Linux系统的启动流程

    Linux系统的启动流程: 1.通电(通常按下电源键,开始通电) 2.加载BIOS (通常看到显示器提示按F2进入主板) 3.读取MBR (MBR硬盘的入口地址,用来装载引导) 4.进入引导 (通常有 ...

  3. linux系统的启动流程梳理

    1. 不同版本的linux系统的启动流程 1.1 centos6.x系统的启动流程 其详细启动步骤如下: 1)开机,BIOS自检,检查各个硬件是否正常 2)读取硬盘MBR信息,引导系统启动 3)加载g ...

  4. 2021年3月-第01阶段-Linux基础-Linux系统的启动流程

    Linux系统的启动流程 理解Linux操作系统启动流程,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题. 上图为Linux操作系统启动流程 1.加载BIOS 计算机 ...

  5. 不同linux系统添加开机启动程序的命令

    see http://phpcj.org/blog/%E4%B8%8D%E5%90%8Clinux%E7%B3%BB%E7%BB%9F%E6%B7%BB%E5%8A%A0%E5%BC%80%E6%9C ...

  6. 查看linux系统的开机时间/重启历史记录

    查看linux系统的开机时间/重启历史记录1.who -b命令[root@rusky opt]# who -b ---查看最后一次(上次)系统启动的时间 system boot Dec 27 05:0 ...

  7. Linux系统在开机的时候自动启动SVN

    Linux系统在开机的时候自动启动SVN 1.创建执行脚本svn.sh(/root路径下,随便哪个路径),其内容很简单,如下: #!/bin/bash     svnserve -d --listen ...

  8. Linux系统的开机启动顺序

    Linux系统的开机启动顺序加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init一句inittab文件来设定系统运行的等级(一般3或者5,3是多用 ...

  9. linux学习笔记-开机流程与主引导分区(MBR)

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 读鸟哥的linux私房菜-基础学习篇(第三版)3.2.4章节作此笔记 一.术语介绍: Bios:写入到主板上的一个程序,计算机开 ...

随机推荐

  1. Jenkins安装和初始化配置

    Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 所以安装Jenkins包含安装相应的jdk环境 ...

  2. java web 学习笔记 - servlet01

    ---恢复内容开始--- 1.Servlet介绍 Servlet 是用java语言编写的服务器端小程序,属于一个CGI程序,但与传统的CGI不同的是,它是多线程实现的,并且可以多平台移植. 用户自定义 ...

  3. C++ 异常处理(try catch throw)、命名空间

    一.c++工具 模板(函数模板.类模板).异常处理.命名空间等功能是c++编译器的功能,语言本身不自带,这些功能已经成为ANSI C++标准了,建议所有的编译器都带这些功能,早期的c++是没有这些功能 ...

  4. PHP自定义函数及内部函数考察点

    变量的作用域和静态变量 变量的作用域 变量的作用域也称变量的范围,变量的范围即它定义的上下文背景(也是它的生效范围).大部分的PHP变量只有一个单独的范围.这个单独的范围跨度同样包含了include和 ...

  5. python练习1 登录和三级菜单

    ,: username1 = input("请输入您的用户名:")# password1 = getpass.getpass("请输入您的密码:") passw ...

  6. PyCharm 自动添加作者及时间

    打开pycharm,快捷键ctrl + alt + s 打开模板设置自己所需内容 完整打开路径:file>settings>editor>code style>file and ...

  7. webpack4前端工程化教程(一)

    -本文作为webpack小白入门文章,会详细地介绍webpack的用途.具体的安装步骤.注意事项.一些基本的配置项,并且会以一个具体的项目实例来介绍如何使用webpack.另外,本文会简单地介绍一些最 ...

  8. Json Web Token(JWT)详解

    什么是Json Web Token Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的 ...

  9. Python爬虫入门教程: All IT eBooks多线程爬取

    All IT eBooks多线程爬取-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来. 然后放着 ...

  10. add list of symbols -- latex

    * add list of symbols -- latexinclude a *toc.tex* file in the *main.tex* in *main.tex*#+BEGIN_SRC la ...