引导过程
-
linux系统的开机过程:
-
开机自检(BIOS):linux主机开机之后,根据主板BIOS中的设备,对CPU内存显卡键盘等等设备进行初步检测。检测成功之后,根据预设的启动柜顺序进行系统控制权的移交。
一般情况下,转交给本机的硬盘
启动方式
U启
光驱
需要在Bios中更改设置,默认的都是从硬盘开始。
-
开机自检 服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测, 检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。 总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱
-
MBR引导
-
win:磁盘分区表,记录了系统当中磁盘分区的索引,找到磁盘的分区位置。
-
linux:硬盘当中的第一个硬盘的第一个扇区,识别系统的版本和操作系统的个数。
总结:运行放在MBR扇区里的启动GRUB引导程序
-
-
GRUB菜单
移动控制权的移交,根据引导信息交给启动菜单,grub2 grub菜单
grub:统一启动加载器,是一个使用最为广泛的多系统引导器程序。显示出当前有几个系统,可供用户选择。根据用户的选择,进行系统控制权的移交,移交到选择系统的内核文件。系统的制空权到了内核
总结:GRUB引导程序通过读取GRUB配置文件 /boot/grub2/grub.cfg , 来获取内核和镜像文件系统的设置和路径位置。
4.加载内核文件
预先编译好的特质二进制可执行文件。介于各种硬件资源和系统程序之间。
内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。
资源分配与调度。调度完之后,资源和程序加载到内存之中。
Centos 7系统中,默认的内核文件位于 “/boot/vmlinuz-3.10.0-514.e17.x8664”
总结:把内核和镜像文件系统加载到内存中
5.init进程初始化
系统控制权移交到systemd(centos7的初始化,ini初始化)
systemd进程初始化:将系统中的 “/sbin/init” 加载到内存当中程序,已并行的方式加载运行。 最终等待用户登录。
systemd现在变成centos7的初始化方式,就是因为执行方式,并行打开。
init:串行。一个一个执行,速度慢。
总结:加载硬件驱动程序,内核把init进程加载到内存中运行
systemd的管理方式
管理linux系统的进程和系统服务的管理器
-
支持并行启动服务,提高系统启动速度;
-
可以设置开机自启,自动重启服务,确保服务的可靠性和稳定性;
-
可以在进程运行期间动态的调整进程参数和资源限制,提高系统的灵活性和可管理性;
-
解决启动程序的依赖关系,确保服务的正确启动和运行;
-
支持多种服务管理方式,例如命令行工具、图形界面、Web 界面等。
对服务的状态进行管理:
控制单元:
systemd 按照单元进行控制unit
单元类型
service对进程进行控制#主要使用的控制方式。
socket通信套接字端口号服务,对进程间的端口号进行控制。
例子
systemctl start firewalld//开启防火墙
systemctl status firewalld//查看防火墙状态
systemctl stop firewalld//关闭防火墙
行动的运行级别
runlevel 命令:只能查看切换运行级别与当前运行级别
[root@localhost ~]# runlevel
N 5
N 表示之前没有切换过运行级别,5表示的是图形模式,3表示命令行
systemctl 工具:能查看默认的运行级别
systemctl get-default
systemctl set-default 模式名 改默认的运行级别
MBR扇区故障
故障原因:
病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作
故障现象:
找不到引导程序,启动中断
无法加载操作系统,开机后黑屏
解决思路:
应提前做好备份文件
以安装光盘引导进入急救模式
从备份文件中恢复
修复MBR扇区故障 MBR位于第一块硬盘(/dev/sda) 的第一个物理扇区处,总共512字节
格式化 mkfs.xfs /dev/sdb1
1、备份MBR扇区数据到其它磁盘( /dev/sdb1 )
mkdir /backup
mount /dev/sdb1 /backup
cd /backup dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1
2、模拟破坏MBR引导扇区
hexdump -C -n 512 /dev/sda
-C 二进制显示
-n 查看字节数
dd if=/dev/zero of=/dev/sda bs=512 count=1
3、引导界面进入急救模式,从备份文件中恢复MBR扇区数据
先加载好光盘镜像,重启操作系统,
当出现安装向导界面时,选择“Troubleshooting"选项,
再选择"Rescue a Centos Linux system" 选项,进入急救模式
选择“1"选择Continue并按Enter键继续
再次按Enter键后将进入带“sh-4.2#"提示符的Bash Shell环境
sh-4.2# mkdir /backupdir
sh-4.2# mount /dev/sdb1 /backupdir
挂载带有备份文件的分区
cd /backupdir ls sh-4.2# dd if=/backupdir/mbr.bak of=/dev/sda
恢复备份数据
sh-4.2# exit
修复GRUB引导故障
故障原因
MRB中的GRUB引导程序遭到破坏
grub.conf文件丢失、引导配置有误
故障现象
系统引导停滞,显示“grub>”提示符
解决思路
尝试手动进入引导命令
进入急救模式,重写或者弄备份中恢复grub.conf
向MBR扇区中重建grub程序
引导界而进入急救模式,重建GRUB菜单配置文件
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
重新构建GRUB菜单的配置文件
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig 用于生成 Grub2 配置文件的命令,
参数 -o 或 --output 指定生成的配置文件的路径和文件名
生成的 Grub2 配置文件默认路径为 /boot/grub2/grub.cfg
bash-4.2# exit
sh-4.2# reboot
遗忘root用户密码
[root@192 ~]# setenforce 0
#做这个实验之前,最好setenforce 0,关闭selinux的安全机制
root密码忘记的解决思路
进入急救模式,重设密码
进入急救模式,加载系统镜像,切换到系统根环境
sh-4.2# chroot /mnt/sysimage
重设root 用户密码
bash-4.2# passwd root
启动时任意键暂停启动 按e键进入编辑模式 将光标移动linux 开始的行,改为 rw init=/sysroot/bin/sh 按ctrl-x启动 chroot /sysroot passwd root
如果SELinux是启用的,才需要执行下面操作,如查没有启动,不需要执行
touch /.autorelabel
exit
reboot
[root@localhost ~]# vim /etc/selinux/config
运行命令getenforce,验证SELinux状态。
返回状态应为enforcing或者permissive
enforcing:凡是违反selinux的安全机制的禁止一切
permissive:宽容模式,允许通过,但是会记录日志