CentOS 6 系统启动流程

CentOS 6中所采用的Bootloader程序为grub,init为upstart。开机启动的大致流程图如下:

步骤图分解如下:

1、加电自检,当按下电源时,计算机通过BIOS去加载CMOS的信息,取得主机的各项硬件配置,并会进行硬件检测和硬件初始化。

2、BIOS根据Boot Sequence(设备启动次序)取得第一个可启动设备。按次序查找,如果当前设备没有MBR时,跳过当前设备查找下一个设备,直到找到含有MBR的设备。如果MBR出现损坏等故障,启动则会失败,且不会继续往下查找可引导的设备。否则,进行下一步操作。

3、BIOS会读取选定设备的MBR中的信息,并加载Bootloader。只要BIOS能识别硬盘,就可以通过硬件的INIT 13中断功能读取硬盘设备的第一个扇区内的MBR。

由于根据MBR的结构Bootloader占据了446字节,而存储在MBR中的bootloader代码因此受到了限制,为了解决这个问题,bootloader将功能切割成几个部分,因此MBR中只存储了bootloader的主程序,配置相关文件则存储在文件系统中。

grup的功能由三个模块完成:Stage1,Stage1_5和Stage2。Stage1即存储在MBR中的Bootloader,Stage1_5存储在MBR后面的扇区中,而Stage2则一般存储于文件系统中,/boot目录下。Stage1和Stage1_5所要完成的任务是去加载Stage2,Stage2才是功能实现的模块。Stage1并不能识别文件系统,因此需要加载Stage1_5,而Stage1_5具备识别文件系统的功能,因此可以到文件系统中加载Stage2模块。注意:当Stage1可以识别Stage2固定存储的物理空间时,不需要通过Stage1_5就可以直接加载Stage2。

Stage2加载相关的配置文件后,实现的功能如下:

  • 提供选择菜单,并提供交互式接口。

用户可以选择不同的启动选项,可实现多重引导功能;码。

  • 加载内核文件(或initramfs)

直接指向内核文件所在的位置来开始启动操作系统。

  • 转交其他loader

将引导功能移交给其他的loader负责。

4、kernel被加载到内存后开始进行自身初始化,主要操作为:探测可识别到的所有硬件设备并加载相应的硬件驱动;安全起见,以只读方式挂载根文件系统, (等到启动完成,各项功能正常,再重新以读写方式挂载);调用用户空间的第一个应用程序/sbin/init 。

因为kernel无法识别磁盘,所以要借助initramfs的获取磁盘的驱动程序。 initramfs类似一个精简的内核,里面包含了启动过程中所需要的模块(在安装系统的时候确定了需要哪种硬盘驱动,也一并集成到initramfs中)。initramfs需不需要被加载取决于kernel能否识别磁盘,一般来说需要init的时刻为:

  • 根目录所在磁盘为SATA,SCSI,SAS,USB等接口,IDE除外
  • 根目录所在文件系统为LVM,RAID等格式
  • 其他必须在内核加载时就提供的模块

5、init最主要的功能是准备软件执行的环境,调用执行相关脚本文件来实现,

如/etc/inittab、/etc/init/*.conf等

  • 获取默认运行级别,/etc/inittab
  • 系统初始化,/etc/rc.d/rc.systinit
  • 关闭或启动对应级别下的服务,并启动启动终端等,/etc/init/*.conf与/etc /rc.d/rc#.d

/etc/rc.d/rc.sysinit初始化时所进行的操作

(1) 设置主机名

(2) 设置欢迎信息

(3) 激活udev和selinux

(4) 挂载/etc/fstab文件中定义的文件系统

(5) 检测根文件系统,并以读写方式重新挂载根文件系统

(6) 设置系统时钟

(7) 激活swap设备

(8) 根据/etc/sysctl.conf文件设置内核参数

(9) 激活lvm及software raid设备

(10) 加载额外设备的驱动程序

(11) 清理操作

时间: 2024-10-25 21:55:14

CentOS 6 系统启动流程的相关文章

CentOS 6系统启动流程

CentOS 6系 统启动流程 这里大概介绍一下系统启动的大概框架仅限CentOS 6 启动流程,因为系统版本不同启动也是有区别的,方便看到系统启动时哪里出问题可以及时排错,也是因为说深了臣妾也做不到啊~ 系统的内核是基于模块化的".ko",而且内核很小只有4M左右,这样就有一个问题,系统启动是需要很多很多很多控制模块的,内核只有这么小怎么启动系统呢? 因为启动时的大部分文件并不在内核里面,通过启动时的调用来实现. [[email protected] lib]# ll /boot/v

CentOS 5,6 系统启动流程详解

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

CentOS 系统启动流程

一.Linux系统的组成部分:内核+根文件系统 1.内核: 进程管理:进程之间的通信为:IPC(Inter Process Communication)机制,有消息队列.semerphor.shm.socket(跨主机之间的通信) 内存管理: 网络管理: 文件系统: 驱动程序: 安全功能: 2.运行中的系统环境可分为两层:内核空间.用户空间 用户空间:应用程序(表现为进程或线程) 内核空间 :内核代码(系统调用) 3.内核设计流派: 单内核设计:把所有功能集成与同一程序: Linux 微内核设计

linux基础之CentOS系统启动流程

CentOS系统启动流程 Linux系统的组成部分:内核+根文件系统 内核:进程管理.内存管理.网络协议栈.文件系统.驱动程序.安全功能 IPC:Inter Process Communication 消息队列.semerphor.shm socket 运行中的系统环境可分为两层:内核空间.用户空间 用户空间:应用程序(进程或线程) 内核空间:内核代码(系统调用) 内核设计流派: 单内核设计:把所有功能集成于同一个程序: Linux 微内核设计:每种功能使用一个单独的子系统实现: Windows

CentOS 6的系统启动流程

一.POST加电自检 按下电源后ROM芯片中的CMOS程序执行并检测CPU.内存等设备是否存在并正常运行,CMOS中的程序叫BIOS,可以设置硬盘接口,网卡声卡开关之类的简单设置.一般PC机主板上有一个纽扣电池,这个电池就是给ROM供电的,可以保证主板断电后BIOS的一些基本设置不会重置. 下面是一个比较新的主板的BIOS,在老主板上一般只有英文不会有中文界面,老式主板只支持键盘操作不支持鼠标,现在很多新主板已经可以支持鼠标操作了. 二.引导加载次序Boot Sequence 在系统启动前计算机

学习笔记之centos系统启动流程

 CentOS 系统的启动流程: 简介: (内核级别)POST -读取-> BootSequence(在BIOS中) --> BootLoader(在MBR中)--> Kernel(借助ramdisk完成根文件系统的加载)--> rootfs(readonly)--> /sbin/init (用户空间的第一个程序)接下面 (用户空间的启动流程): /sbin/init (读取/etc/inittab) [centos5,6,7在此略有区别]   设置默认运行级别(1) --&

13.1 CentOS系统启动流程介绍

CentOS系统启动流程介绍 本章我们将学习 Linux 启动流程和内核模块管理相关的内容.通过本章我们将学习如下内容: Linux 系统的组成及特点 CentOS 系统的启动流程 开机启动成 grub 的配置和使用 内核功能与内核模块的加载与使用 在学习本章内容之前,需要对之前学习的操作系统知识做一个简单梳理总结,目的是了解 Linux 系统在启动时面临了哪些问题,怎么去解决这些问题.这样我们才能知道为什么启动流程是"这样". 1 2 3 4 5 6 7 8 9 ----------

CentOS系统启动流程

POST(加电自检):检测硬件在CPU的控制下,将RAM芯片中的某个程序映射到ROM地址空间,并执行其中的指令完成系统硬件健康状况检查,例如存储设备.网卡.CPU.声卡等硬件设备是否完好.当检查完成后,所有硬件或基本硬件.核心硬件没有问题,则下一个启动流程BIOS BIOS(Boot Sequence):决定启动介质按照BIOS所设定的系统启动流程,根据引导次序(Boot Sequence)自上而下的寻找对应存储设备上操作系统的MBR(全称为Master Boot Record即硬盘的主引导记录

Linux系统启动流程分析与关机流程

Linux 系统启动流程分析 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 运行 init. 系统初始化. 建立终端. 用户登录系统. init程序的类型: SysV: init, CentOS 5之前, 配置文件: /etc/inittab. Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf. Systemd: systemd, CentOS 7,配置文件: /usr/lib/