目录
服务器开机过程
开机自检(BIOS)
MBR主引导程序
grub菜单
加载内核:
init初始化:
步骤说明
初步检测:
mbr引导:
加载linux内核
驱动系统
系统初始化
命令
控制类型
运行级别相关命令
运行级命令
服务器开机过程
开机自检(BIOS)
检测出第一个能够引导系统的设备,要么是硬盘,要么是光驱
MBR主引导程序
引导包含操作系统的引导文件
grub菜单
获取用户选择的操作系统指定的内核以及镜像文件
加载内核:
给驱动程序、系统依赖程序、用户自定义程序调度并分配资源,放到内存中
init初始化:
启动上述程序,等待用户登录
步骤说明
初步检测:
检测设备是否正常运行,这里指硬盘,系统开始移交控制权移交给硬盘
mbr引导:
主引导记录,第一面扇区的mbr,引导系统找到boot分区,就找到系统,启动程序,根据mbr记录,调用启动菜单,grud系统控制权移交grud
统一启动加载器,多系统的引导器程序。
控制权到了grup菜单后,就会显示启动菜单给用户进行选择。选择之后(有默认值),加载你所选择的操作系统的linux内核文件,系统控制权移交给内核
(注:centos7采用的是grub2启动引导器 文件夹位置:/boot/grub2/grub.cfg)
加载linux内核
内核也是文件,这个文件是一个已经编辑好的二进制文件,介于硬件资源和系统程序之间,负责资源分配,调度,给这些系统程序使用,内核文件将控制整个系统的运行过程
驱动系统
用户自定义的开机启动程序,以及系统必要的环境程序,这时候只是在分配资源,程序还没有运行,提前分配好资源,统统加载到内存当中
系统初始化
加载到内存中,在内存开始运行,开启运行上述程序,驱动,用户自定义,系统必要的环境程序,全部启动,等待用户登录。
nit与systemd
centos7之前的初始化方式
init:初始化过程是串行的,一个个执行,速度比较慢,init进程是系统的第一个进程,是所有进程的父进程,进程号永远为1。
centos7的初始化方式
systemd:进化后的init初始化程序。并行启动,速度快。systemd用于管理系统进程的管理器
通过单元(unit)来描述和控制系统的进程和资源。centos7的第一个init是systemd pid 1是所有进程的父进程
systemd单元类型
service:启动、管理一个系统进程:firewalld,httpd.mvsald 可以指定服务的启动、关闭、重启、查看状态、依赖关系、日志记录
Socket:通信套接字,监听网络套接字,管理网络服务,提供网络接口
target :是一组服务的集合,用于系统在不同运行级别下的状态。用什么样的状态进行系统运行
systemd作用
1.并行处理
2.支持自动重启服务,确保进程的可靠性和稳定性
3.动态调整服务参数和资源控制,提高灵活性以及可管理性
4.支持启动依赖关系,而且可以控制依赖关系,确保进程的正确启动和运行
5.既支持命令行,也可以支持图形化工具
命令
systemctl 系统控制命令
systemctl 控制类型 进程名称
控制类型
start 开启
stop 停止
restart 重启 只要是修改了配置文件必须重启,否则不生效 (stop+start)
reload 重新加载
status 查看状态
运行级别相关命令
运行级别划分
0 关机
1 单用户 (一般用于维护)
1~4字符界面
5 图形化界面
6 重启
运行级命令
runlevel 查看运行级别
N 表示之前没有且换过运行级别
init 切换运行级别
systemctl get-default 查看默认级别
systemctl set-default 改变默认级别
其他
服务器关机命令
init 0
shutdown
poweroff
服务器重启命令
init 6
实验
恢复扇区故障
创建硬盘,建立分区
模拟故障
dd if=/dev/sda of=/data/mbr.bak bs=512 count=1
dd if=/dev/zero of=/dev/sda bs=512 count=1
进入急救模式
(选troubleshooting,再选rescue a centos system,等待后输入1,最后回车)
进入急救模式
mkdir backup/
mount /dev/sdb1 /backup
dd if=/backup/mbr.bak of=/dev/sda
reboot
grup故障
设置光盘镜像
模拟故障
rm -rf /boot/grub2/grub.cfg
重启时按Esc键(手速要快)
进入急救模式
chroot /mnt/sysimage
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/crub.cfg
exit
reboot