开机流程
1.开机自检:服务器开机之后,根据主机bios中的设置,对cpu,内存,显卡,硬盘等一系列的设备初步检测,判断设备是否在正常工作运行。正常运行主要是指硬盘,过程之后系统开始移交控制权移交给硬盘
2.MBR引导:主引导记录,第一个扇区的MBR,是用来引导系统找到boot分区,找到系统的启动程序,在之后根据MBR记录调用启动菜单
启动系统菜单
启动系统菜单之后,系统的控制权移交给grub
3.grup菜单:统一启动加载器
系统的引导程序,显示启动菜单给用户选择
系统的控制权给到grup
4.加载到linux的内核
菜单启用之后加载到liux的内核文件,这个时候系统的控制权移交给内核, CentOS采用grup2启动引导器 /boot/grup2/grup.cfg
内核也是文件,但是它是已经编译过的二进制文件,介于硬件资源和系统进程之间,内核的作用把二者结合,分配硬件资源给系统程序关联使用。这个时候内核文件是控制整个系统的运行,驱动程序,用户自定义的开机自启动程序,以及系统的必要环境程序。但是这个时候只是分配资源,并没有运行,然后都加载到内存当中。
系统的控制权移交给系统的初始化程序
5.init进程初始化
加载到内存中,在内存中开始运行
/sbin/init 开始运行上述程序,驱动,用户自定义,系统的必要环境程序,然后全部启动,等待登录
进程
initi :在初始化的过程中是串行,速度比骄慢
在CentOS7以前,initi进程是系统的第一个进程,是所有进程的父进程 进程号永远为1
现在systemd:并行启动的方式,速度快,主要用于管理系统的进程管理器 PID 为1 ,也是所有进程的父进程
systemd
systemd是通过单元【unit】来描述和控制系统的进行和资源
特点:1.并行处理启动
2.支持自动重新启动服务,确保进程的可靠性和稳定性
3.动态调整服务参数和资源控制,提高灵活性及可管理
4.支持启动依赖关系,控制依赖关系,确保进程正确启动运行
5.支持命令行,支持图形化工具
系统控制命令 systemctl
systemctl 控制类型 进程
控制类型:satrt 开启
stop 关闭/停止
restart 重启,只要修改了配置文件必须重启,不然修改不会生效
reload 重新加载(运行中不可停止的服务,例如数据库服务不可停止,会丢失数据)
status 查看状态
单元类型
service :启动管理系统的进程,可指定服务的进程启动,重启,关闭,查看状态,依赖关系,日志记录
socket:通信套接字,监听网络的套接字,管理网络服务,提供网络接口
target:一组服务的集合,用于描述系统在不同运行级别下的状态,即是以什么状态运行系统
运行级别状态:
0 关机 initi 0
1 单用户 initi 1
2,3,4 字符界面 init
5 图形化界面 initi 5
6 重启 initi 6
查看运行级别 runlevel
查看默认的运行级别:systemctl get-default
切换运行级别:systemctl set-default multi-user .target
关闭机器:shutdown init 0 poweroff
重启机器:init 6 reboot
实验
模拟故障,把磁盘的第一个扇区,也即是存储引导区的第一个扇区写满来模拟故障
rm -rf /boot/grub2/grub.cfg
按esc然后选择cdrom
#进入急救模式,加载光盘镜像,切换到系统根环境
sh-4.2# chroot /mnt/sysimage
#重新将GRUB引导程序安装到第一块硬盘 ( /dev/sda)的MRB扇区
bash-4.2# grub2-install /dev/sda
bash-4.2# grub2-mkconfig -o /boot/grup2/grup.cfg