linux引导过程:
开机自检(bios)—>MBR引导---->GRUB菜单---->加载内核(kernel)---->init进程初始化
windows用的是GPT引导
第一步:开机自检(bios)
1.服务器开机之后,根据主板bios中的设置:对cpu,内存、显卡、硬盘等一系列设备进行初步的检测
这些都是初步检查,就是检测设备是否正常运行(正常运行指的是硬盘),系统开始移交控制权,把控制权交给硬盘 /dev/sda
第二步:MBR引导:
主引导记录,第一个扇区的MBR,引导系统找到boot分区,就找到了系统的启动程序,根据mbr记录调用启动菜单grub,系统的控制权移交给grub
第三步:grub菜单
grub:统一启动加载器,多系统的引导器程序。控制权到了grub菜单,显示启动菜单给用户进行选择
选择了之后(不动即默认值),加载你所选择的操作系统的linux的内核文件,系统控制权移交,内核
centos7采用的是grub2启动引导器
/boot/grub2/grub.cfg
第四步:加载linux内核
内核也是一个文件,这个文件是一个已经编译好的二进制文件。介于硬件资源和系统程序之间,负责资源的分配,调度,给这些系统程序来进行使用。这个内核文件将控制整个系统的运行过程。
程序包含:驱动程序,用户自定义的开机自启动的程序,以及系统启动的环境程序,这时候只是在分配资源,程序还没有运行,提前分配好了资源。统统加载到内存当中去。系统控制权的移交---------系统初始化程序
第五步:init系统进程初始化:加载到内存中,在内存中开始运行
centos 7以前,在/sbin/init,开启运行上述程序,驱动、用户自定义、系统必要的环境程序,全部启动。等待用户登录。
centos7之前的初始化方式:
init:初始化过程是串行的,一个一个执行,(速度较慢)。init进程是系统的第一个进程,是所有进程的父进程,进程号永远为1
centos7:
systemd:进化的init初始化程序。并行启动,速度快。
centos 7上第一个init是 systemd pid 1 同时也是所有进程的父进程
systemd:
1、并行处理
2、支持自动重启服务,确保进程的可靠性和稳定性
3、动态调整服务参数和资源控制,提高灵活性以及可管理性。
4、支持启动依赖关系,而且可以控制依赖关系,确保进程的正确启动和运行。
5.支持命令行,也可以支持图形化工具
systemd 用于管理系统进程的管理器
通过单元[unit]来描述和控制系统进程和资源
通过单元类型来进行控制:
service:启动、管理一个系统进程,firewalld,httpd mysqld 可以指定进程的启动、关闭、重启、查看状态、依赖关系、日志记录
Socket:通信套接字,监控网络套接字,管理网络服务,提供网络接口
target:一组服务的集合,用于描述系统在不同运行级别下的状态。以什么状态来进行系统运行。
例如:图形化模式
字符模式:多用户模式:multi-user.target
systemctl 系统的控制命令:
systemctl [控制类型] [进程名称]
控制类型:
start 开启
stop 停止
restart 重启,只要是修改了配置文件,必须要重启,否则,不生效(先stop 再start)
reload 重新加载(不stop 直接重新加载)
status查看状态
yum安装会直接写在systemd配置文件中
runlevel 查看运行级别:
N表示之前没有切换过运行级别
5表示当前的运行级别 (可视化界面)
init 3 切换到字符界面
运行级别的状态:
0 关机
1单用户
2字符界面
3字符界面
4字符界面
5图形化界面
6重启
(生产上默认使用3)
查看默认运行级别:
systemctl get-default
设置运行级别:systemctl set-default
图形界面转字符界面命令为:
systemctl set-default multi-user.target
字符界面转图形界面命令为:
systemctl set-default graphical.target
关机的几种方式:init 0 ;shutdown ;poweroff
重启:init6 或 reboot (关机 重启都是对服务器,跟进程无关,是重启机器)
当MBR被删除导致系统无法启动如何修复mbr扇区修复?
第一步加载光盘镜像:
fdisk /dev/sdb 创建分区
mkfs.xfs /dev/sdb1 给sdb1创建文件系统
mkdir /data 创建永久挂载目录
vim /etc/fstab 打开编辑永久挂载目录
/dev/sdb1 /data xfs defaults 0 0
dd if=/dev/sda of=/data/mbr.bak bs=512 count=1 备份mbr.bak数据(将/dev/sda
从/dev/sda第一个文件到/data/ 文件为mbr.bak大小为512字节 复制一次
dd if=/dev/zero of=/dev/sda bs=512 count=1 模拟故障将/dev/sda占满
reboot 重启
最后:reboot重启
等待重启成功------修复完成
如何让修复grub引导故障?
模拟故障:rm -rf /boot/grub2/grub.cfg
reboot 重启
重启虚拟机,看到读条快速按下esc
回车
chroot /mnt/sysimage:加载光盘镜像切换到系统根目录
等待重启完成 ----->修复成功
如果不小心遗忘root密码,该如何解决?
解决方法如下:
重启虚拟机出现读条快速后快速按下esc
下一步:按回车
等待重启结束,输入更改后的密码即可成功登录