目录
引导过程
服务器开机过程
步骤说明
开机自检(BIOS)
MBR引导
grub菜单
加载linux内核
系统初始化
init与systemd
systemd单元类型
systemd作用
命令
systemctl 系统控制命令
控制类型
运行级别相关命令
运行级别划分
运行级命令
其他
实验
修复MBR扇区故障
grub故障
遗失root密码怎么办?
开机自检(BIOS)
检测出第一个能够引导系统的设备,要么是硬盘,要么是光驱
MBR主引导程序
引导包含操作系统的引导文件
grub菜单
获取用户选择的操作系统指定的内核以及镜像文件
加载内核:
给驱动程序、系统依赖程序、用户自定义程序调度并分配资源,放到内存中
init初始化:
启动上述程序,等待用户登录
服务器开机之后,根据主板BIOS中的设置对内存、显卡、硬盘等一系列设备进行初步的检测,初步检测就是检测设备是否正常运行,这里指的是硬盘,系统就开始移交控制权给硬盘(/dev/sda)。
主引导记录,第一个扇区的MBR,引导系统找到boot分区,就找到了系统的启动程序,根据MBR记录,调用启动菜单grub,之后系统的控制器移交给grub
统一启动加载器,多系统的引导器程序。
控制权到了grub菜单后,就会显示启动菜单给用户进行选择。选择之后(有默认值),加载你所选择的操作系统的linux内核文件,系统控制权移交给内核
注:centos7采用的是grub2启动引导器 文件夹位置:/boot/grub2/grub.cfg
内核也是一个文件,这个文件是一个已经编译好的二进制文件介于硬件资源和系统的程序之间,负责资源的分配,调度给系统程序来进行使用。此时内核文件将控制整个系统的运行过程 。
其中程序包含驱动、用户自定义的开机自启的程序,以及系统启动必要的环境程序,这时候只是在分配资源,程序还没有运行,统统加载到内存当中,之后控制权移交给系统的初始化程序
之前的程序加载到内存中,在内存中开始运行,/sbin/init开始运行上述程序驱动、用户自定义、系统启动必要的环境程序,等待用户登陆。
centos7之前的初始化方式
init:初始化过程是串行的,一个个执行,速度比较慢,init进程是系统的第一个进程,是所有进程的父进程,进程号永远为1。
centos7的初始化方式
systemd:进化后的init初始化程序。并行启动,速度快。systemd用于管理系统进程的管理器
通过单元(unit)来描述和控制系统的进程和资源。centos7的第一个init是systemd pid 1是所有进程的父进程
service:启动、管理一个系统进程:firewalld,httpd.mvsald 可以指定服务的启动、关闭、重启、查看状态、依赖关系、日志记录
Socket:通信套接字,监听网络套接字,管理网络服务,提供网络接口
target :是一组服务的集合,用于系统在不同运行级别下的状态。用什么样的状态进行系统运行
1.并行处理
2.支持自动重启服务,确保进程的可靠性和稳定性
3.动态调整服务参数和资源控制,提高灵活性以及可管理性
4.支持启动依赖关系,而且可以控制依赖关系,确保进程的正确启动和运行
5.既支持命令行,也可以支持图形化工具
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
reboot
创建一个备份硬盘
创建备份并模拟故障
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
确保镜像设置为以下状态
模拟grub出现问题
rm -rf /boot/grub2/grub.cfg
重启时按Esc键(手速要快)
选择3
chroot /mnt/sysimage
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/crub.cfg
exit
reboot
首先输入
setenforce 0
重启Esc并进入救急模式后
chroot /mnt/sysimage
passwd root
输入新密码
重复输入
exit
reboot