系统启动流程(CentOS6)

一、阶段1:硬件引导阶段

 

1.POST

检查外围硬件设备是否正常,比如内存,cpu,显卡,键盘
 

2.BIOS

Basic Input Output System

  • 功能

一组固化到计算机内主板上一个ROM芯片上的程序,
它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。

其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

开启cpu虚拟化支持

启动项调整

 

  • Boot Sequence

硬盘

光盘

U盘

centos 6 pdf命令启动 centos6启动过程_文件系统

 

3.MBR

446引导程序
64分区表
2结束标识
55aa

centos 6 pdf命令启动 centos6启动过程_初始化_02

 
 

二、阶段2:GRUB初始化阶段

4.GRUB

centos 6 pdf命令启动 centos6启动过程_centos 6 pdf命令启动_03

 

详细介绍:
  • stage1
    寻找并定位secondary bootloader,也就是Stage 2 bootloader。它通过遍历分区表寻找可用的分区,当它发现可用的分区的时候,还是会继续扫描其他分区,确保其他分区是不可用的。然后从可用的分区中读取secondary bootloader到内存中,并执行。

 

  • stage1.5
    能够正确识别到Linux文件系统。相对于像LILO那样只能读取原始扇区数据,GRUB则可以从ext2和ext3的文件系统中读取到Linux内核。为了实现这个功能,GRUB将原本2个步骤的bootloader变成了3个步骤,多了Stage 1.5 bootloader,即在Stage 1 bootloader和Stage 2 bootload中间加载一个可以识别Linux文件系统的bootloader(Stage 1.5 bootloader),例如reiserfs_stage1_5(用于识别Reiser日志文件系统)或者e2fs_stage1_5(用于识别ext2和ext3文件系统)。当Stage 1.5 bootloader被加载和执行后,就可以继续Stage 2 bootloader的加载和执行了。

 

  • stage2
    它的任务就是将Linux内核加载到内存中,并根据设置,有选择性地将initial RAM disk也加载到内存中。

 

/boot/grub/grub.conf 文件内容

default=0 默认启动标题编号

timeout=5 超时时间

splashimage=(hd0,0)/grub/splash.xpm.gz 背景图片

hiddenmenu 隐藏菜单下的参数

title CentOS 6 (2.6.32-642.el6.x86_64) 标题名称 编号从0

root (hd0,0) 指定内核所在分区的物理位置 hd0,0硬盘第一个分区

kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=0d17b45c-258f-4c61-8854-9da4a5bdb093 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

ro 以只读方式挂载根文件系统
root=指定真正的根文件系统的位置
rhgb (redhat graphical boot)以进度条方式启动
quiet 静默模式,不显示硬件自检信息

initrd /initramfs-2.6.32-642.el6.x86_64.img 提供内核初始化环境 --> 临时根文件系统
(课外扩展) 解压initramfs

centos 6 pdf命令启动 centos6启动过程_centos 6 pdf命令启动_04

 

三、阶段3:内核引导阶段

centos 6 pdf命令启动 centos6启动过程_加载_05

 

5.Kernel

/boot/kernel and kernel parameter

/boot/initramfs

内核启动过程中需要的驱动

 

四、阶段4:init初始化阶段

6.init
/sbin/init

centos 6 pdf命令启动 centos6启动过程_centos 6 pdf命令启动_06

/etc/inittab

centos 6 pdf命令启动 centos6启动过程_centos 6 pdf命令启动_07

 
/etc/rc.sysinit

激活udev和Iselinux
设置内核参数/etc/sysctl.conf
设置clock
设置键盘布局
启用swap
设置hostname
重新挂载root分区,以读写模式
激活RAID和LVM设备
激活磁盘限额
检查和挂载其他文件系统/etc/fstab

 

/sbin/mingetty
/etc/X11/prefdm

centos 6 pdf命令启动 centos6启动过程_centos 6 pdf命令启动_08

 

运行级别
  • 0 关机 /etc/rc.d/rc0.d
  • 1 单用户模式
  • 2 无网络多用户
  • 3 多用户模式
  • 4 保留
  • 5 X图形化
  • 6 重启

控制服务在不同运行级别中开启或关闭

chkconfig --list 查看服务启动情况

chkconfig 服务名 on|off

默认修改是2,3,4,5

centos 6 pdf命令启动 centos6启动过程_初始化_09

chkconfig:2345 55 25

K 关闭

S 开启

 

总结

 

centos6

centos 6 pdf命令启动 centos6启动过程_文件系统_10

 

centos7

centos 6 pdf命令启动 centos6启动过程_文件系统_11