开机启动流程
1.CentOS6启动流程
1.内核引导
1.1.BIOS加电自检,检测主板上的硬件设备,格局BIOS的设置启动系统
1.2.读取/boot分区下的所有内核文件
2.运行init
2.1.init在CenOS中,是所有进程的启动,如果进程要启动,那么必须要有init
2.2.运行init程序首先是要读取/etc/inittab配置文件,会读取里面的默认运行级别,获取当前系统的运行级别
2.3.运行级别的分类:
0:关机运行级别
1:单用户运行级别
2:多用户运行级别(没有文件系统)
3:完整的多用户级别
4:保留位
5:多用户的图形化界面
6:重启运行级别
## init进程在CentOS6中名为:Upstart
## init进程在CentOS7中为:Systemd
## 查看当前系统的运行级别:runlevel
3.系统初始化
因为Linux中不同的级别会开启不同的开机自启动程序,所以要根据里面的运行级别来开启这些自启动的服务
## 查看系统中开机自启动的服务:chkconfig --list
4.建立终端
以上都完成后,系统的基本系统环境已经设置完成,此时init就会建立终端,来让用户登录系统
5.用户登录系统
2.CentOS7启动流程
1.BIOS(开机自检)
BIOS加电自检,检测主板上的硬件设备,格局BIOS的设置启动系统
2.MBR引导
主引导记录放在Linux引导硬盘的第一个扇区中,此信息通过BIOS预加载到只读内存中(ROM),MBR的大小只有512个字节,MBR会加载并执行GRUB2引导加载程序
3.GRUB2引导菜单
grub2菜单就是如果装了双系统,就会让你进行选择需要进入的系统
4.Kerenl(内核引导)
读取/boot下的所有内核文件
5.运行systemd
在CentOS7里第一个进程不是init,而是systemd,但是效果是一样的
运行级别的分类(在systemd中使用targets来表示):
runlevel0.target -> poweroff.target:关机运行级别
runlevel1.target -> rescue.target:单用户运行级别
runlevel2.target -> multi-user.target:多用户运行级别
runlevel3.target -> multi-user.target:多用户运行级别
runlevel4.target -> multi-user.target:多用户运行级别
runlevel5.target -> graphical.target:多用户图形化运行级别
runlevel6.target -> reboot.target:重启运行级别
3.CentOS7进入单用户模式修改运行级别
1.将虚拟机开启
2.进入gurb2菜单
![]()
3.按e编辑进入grub2菜单的内核参数
![]()
4.修改grub2菜单的内核参数
## 在linux16最后加入rd.break
![]()
5.修改完成后按ctrl+x进入单用户模式
![]()
6.重新挂载root权限目录
![]()
7.获取root权限
![]()
8.修改默认运行级别
## 查看当前的运行级别:systemctl get-default
## 最好不要设置级别6的reboot.target和级别0的poweroff.target,如果设置了那么虚拟机也就启动不起来了
![]()
9.退出重启
![]()
4.CentOS7进入单用户模式修改root密码
1.开启虚拟机
2.进入grub2菜单
![]()
3.按e编辑进入grub2菜单的内核参数
![]()
4.修改grub2菜单的内核参数
## 找到linux16,在它的最后面加入enforcing=0 init=/bin/bash
![]()
5.修改完成后按ctrl+x进入单用户模式
![]()
6.修改密码,并重新加载init
## 重新加载init:exec /sbin/init
## 如果在内核参数中,没有将linux中的ro改成rw则需要重新挂载/目录:mount -o rw,remount /
![]()