Linux 启动流程

1、首先加载BIOS(Basic Input Output System),自检,读取可启动的设备顺序(一般是硬盘)。
2、每个硬盘有一个MBR(Master Boot Record)区域,MBR是硬盘第一个扇区446B的区域。设置启动顺序,相当于读取不同硬盘的MBR。
3、然后加载MBR。
4、每个操作系统都有一个自己的Boot Loader,Boot Loader负责把系统内核加载到内存中运行。安装操作系统的时候,操作系统会把Boot Loader安装在自己的文件系统中。
  安装Linux的时候,可以选择是否要把Boot Loader拷贝到MBR中,而Windows会主动把Boot Loader拷贝到MBR中,特别注意:MBR中只有一个区域存放Boot Loader,后一次拷贝的Boot Loader会覆盖掉前一次拷贝的Boot Loader。
5、加载MBR,读取其中的Boot Loader,启动系统。那么问题来了?
  MBR中只有一个Boot Loader,后安装的系统拷贝Boot Loader 到MBR,覆盖掉前一个系统的Boot Loader,这不就导致,前一个系统永远没有办法启动了?
6、这就要谈到Boot Loader的功能,MBR中只有一个Boot Loader,但是Boot Loader提供菜单选项,可以选择不同的启动选项。
  a、直接指向可启动的程序区段,加载操作系统。
  b、将引导加载功能,转交给其他的Boot Loader。
7、考虑下面的情况,安装了Windows,文件系统中有Boot Loader,名称W,将W拷贝到MBR。再安装Linux,文件系统中有Boot Loader,名称L,将L拷贝到MBR,覆盖掉W。启动的时候,加载MBR中的L,L提供选项:
  a、可以直接加载Linux系统;
  b、可以转交给Linux文件系统中的Boot Loader,再加载Linux;
  c、可以转交给Windows文件系统中的Boot Loader,再加载Windows。
8、特别注意的是:Windows的Boot Loader 默认不具备转交的功能,而且安装Windows的时候,会主动把Boot Loader拷贝MBR,覆盖掉以前的。这就存在一个问题:
  安装多操作系统,最后安装Windows,导致无法引导启动其他的系统。因此,安装多操作系统,涉及到MBR与多重引导,应该先安装Windows,在安装Linux,让Linux的Boot Loader 在MBR覆盖掉Windows的。
9、然后Boot Loader加载系统内核到内存中,系统内核驱动周边的设备,接管了BIOS以后的工作。

时间: 2024-10-09 07:13:36

Linux 启动流程的相关文章

记录Linux启动流程的工具bootchart

/*********************************************************************  * Author  : Samson  * Date    : 04/28/2014  * Test platform:  *              3.11.0-12-generic #19-Ubuntu  *              GNU bash, version 4.2.45  * ****************************

STB 参考Linux启动流程分析

STB启动流程 1. uboot启动(Fastboot启动) 硬件资源检测(如CPU,DDR Size,Nand  flash,mem size,flash size) print Version(如HW Version,Boot Version,Loader Version) boot设置模型的选择(autoboot or stop) 2. Starting kernel 各种接口驱动的启动() Creating 10 MTD partitions on “hinand” 网卡驱动,USB驱动

linux启动流程及自定义gurp

linux 启动流程 POST BIOS(boot sequence) 所选择的启动设备次序的MBR中是否有引导程序, ----> MBR(bootloader) 提供内核列表 ------->加载选定的Kernel,initrd(内存模拟的磁盘设备需要缓存),initramfs(缓存)  ---->获取到根文件系统并挂载,运行init bootloadler开始以后的挂载流程 1.当系统读取bootloader,挂载内核分区的时候,不识别更高级的磁盘分区上,只能放在基本磁盘分区,而且只

Linux启动流程详解【转载】

在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件. 我们查看一下,/boot 目录下面大概是这样一些文件: 第二步.启动初始化进程 内核文件加载以后,就开始运行第一个程序 /sbin/init,它的作用是初始化系统环境. 由于init是第一个运行的程序,它的进程编号(pid)就是1.其他所有进程都

Linux 启动流程学习

Linux 启动流程学习 开机自检(加载BIOS) 无论什么机器,在开机后都要进行通电自检(硬件),如果硬件有问题,则无法继续下去. (例如当内存条松动时或者损坏,就会发出嘀嘀嘀警报声).接着开始加载BIOS(Basic Input Output System BIOS是一个写入到主板上的一个软件程序.BIOS会去分析计算机里面有哪些存储设备, 从默认的第一启动项开始启动. MBR与boot loader 接下来BIOS将程序启动的下一步交给了MBR,他会去读取第一个扇区的MBR位置. 由于不同

Linux启动流程简介以及各启动阶段失败的恢复方法

透彻的了解Linux启动流程是非常关键的知识点,只有了解了这部分内容,才会在Linux出现系统级别的错误时能够非常冷静的面对以及快速的排错. Linux启动流程 第一阶段 BIOS不是操作系统的职责范围 BIOS是硬件的功能,属于firmware BIOS存储于ROM,不需要强电就可以实现数据保存 更改BIOS如启动顺序保存在一种特定的RAM中,为了保证断电后实际更改保存,通过BIOS上加电池来解决 在BIOS可以选择启动顺序(硬盘,光盘,网络等) 如果选择BIOS从硬盘启动,硬盘的必须是MBR

linux启动流程详解、破解root密码、添加服务脚本

1.Linux的组成 kernel+rootfs kernel:进程管理.内存管理.网络管理.安全管理.文件系统管理.驱动程序 rootfs:程序和glibc 库:函数集合,function,调用接口(头文件负责描述) 过程调用:procedure  ,无返回值 结果调用:function 程序:二进制文件 2.内核设计流派 单内核(monolithic kernel):Linux 把所有功能集成于同一个程序 微内核(micro kernel):Windows, Solaris 每种功能使用一个

24、Linux启动流程和grub详解

还记得Windows的启动流程吗?相信大家能说出来个大概,为什么说出个大概呢,因为Windows是图形界面启动的,但是开机过程都做了什么,你知道吗,相反,Linux启动的时候,会把这些加载到屏幕上面显示,那接下来我们来看看Linux启动都发生了些什么把!!! Linux启动流程图 简解开机启动流程 当用户打开电源后,BIOS开机自检,确定启动设备,安装启动设备启动设备上面安装的GRUB开始引导Linux,Linux首先先进行内核引导,通过跟切换,执行init程序,init程序确定启动级别,根据启

Linux启动流程讲解

要了解linux系统的启动流程,先要了解系统的组成 关于系统的组成:        内核+根文件系统组成 内核:由内核核心文件和模块文件组成            1.内核核心文件:一般位于/boot/目录下,命名为vmlinuz-VERSION(版本号)             2.模块文件:位于/lib/modules/VERSION/目录下,存放着内核的众多功能组件(如驱动)            3.initrd:位于/boot下,一般命名为initramfs-VERSION,此文件相当

详解Linux启动流程及需要使用到的配置文件

POST(Power On Self Test)加电自检 --> BIOS(Boot Sequence)--> MBR(bootloader)-->Kernel --> initrd --> rootfs(/sbin/init) 下面对每一个启动流程做详细解释: POST(Power OnSelf Test)加电自检   计算机本身不执行任何程序,所以系统必须要完成自举的过程,在CPU的控制下将RAM芯片中的某个程序映射到ROM的地址空间,并执行其中的指令完成系统硬件健康状况