系统启动流程(CentOS6)
一、阶段1:硬件引导阶段
1.POST
检查外围硬件设备是否正常,比如内存,cpu,显卡,键盘
2.BIOS
Basic Input Output System
- 功能
一组固化到计算机内主板上一个ROM芯片上的程序,
它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
开启cpu虚拟化支持
启动项调整
- Boot Sequence
硬盘
光盘
U盘
3.MBR
446引导程序
64分区表
2结束标识
55aa
二、阶段2:GRUB初始化阶段
4.GRUB
详细介绍:
- 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
三、阶段3:内核引导阶段
5.Kernel
/boot/kernel and kernel parameter
/boot/initramfs
内核启动过程中需要的驱动
四、阶段4:init初始化阶段
6.init
/sbin/init
/etc/inittab
/etc/rc.sysinit
激活udev和Iselinux
设置内核参数/etc/sysctl.conf
设置clock
设置键盘布局
启用swap
设置hostname
重新挂载root分区,以读写模式
激活RAID和LVM设备
激活磁盘限额
检查和挂载其他文件系统/etc/fstab
/sbin/mingetty
/etc/X11/prefdm
运行级别
- 0 关机 /etc/rc.d/rc0.d
- 1 单用户模式
- 2 无网络多用户
- 3 多用户模式
- 4 保留
- 5 X图形化
- 6 重启
控制服务在不同运行级别中开启或关闭
chkconfig --list 查看服务启动情况
chkconfig 服务名 on|off
默认修改是2,3,4,5
chkconfig:2345 55 25
K 关闭
S 开启
总结
centos6
centos7