目录
一、操作系统引导过程
第一步:开机自检BIOS
服务器开机以后,根据主板BIOS中的设置对CPU、内存、显卡、键盘等硬件设备进行初步的检测,检测成功以后,根据预设的启动顺序。
系统控制权移交给硬盘(主要是去找操作系统,操作系统要么在硬盘、要么在光驱、要么在优盘)
BIOS是个小程序
第二步:MBR引导
当从本机的硬盘中启动系统时,首先找到硬盘的第一个扇区,因为第一个扇区存着MBR引导、以及分区表,这里存着操作系统的位置信息(在grub配置文件中,以及分区表)
此时,系统的控制权移交给了MBR引导(因为mbr引导中有grub启动菜单信息)
第三步:GRUB菜单
对于Linux操作系统来说,grub又叫统一启动加载器,是使用最为广泛的多系统引导器程序
此时系统的控制权,移交给了grub,这时会显示启动菜单给客户选择。
centos 7采用的是grub2启动引导器
grub引导程序是通过读取配置文件,/boot/grub2/grub.cfg,配置文件中写明了内核和镜像文件的设置和路径(记住原理!!)
第四步:加载内核
内核是介于硬件和系统程序之间,可以分配资源;此时系统程序和一些第三方的开机自启动程序分配好这些启动需要的资源
此时系统的控制权从内核即将移交给初始化程序
第五步:启动进程
为了完成进一步的引导过程,Linux内容首先将系统中的程序加载到内存中运行(运行中的程序叫做进程)
init进程负责完成一系列的系统初始化过程,最后等待用户进行登录(注意:此时shell解释器还没有启动哦,因为要用户登录,才加载shell,shell是介于内核与用户之间)
init 是Linux系统运行的第一个程序
centos7是systemd初始化 :特点是并行启动,具有提供按需启动服务的能力
centos 6 是init初始化:串行启动
二、修复故障模拟实验
1、mbr分区错误
第一种:采用新硬盘备份的方式
第一步:先添加一个新硬盘,进行硬盘分区,格式化,以及临时挂载;
第二步:将/dev/sda的前512字节备份至新硬盘中;
第三步:模拟破坏/dev/sda的前512字节,开机重启;
第四步:此时开机bios是找不到硬盘的操作系统,会先进入光驱的操作系统,进入急救模式,进入继续;
第五步:先lsblk查看所有硬盘是否存在,先创建一个新目录/backup,将/dev/sdb1挂载到新目录/backup,然后查看之前备份的mbr.bak文件是否存在;
第六步:将mbr.bak文件备份至/dev/sda中,再使用hexdump命令验证一下,是否修复成功,然后reboot重启一下即可;
第二种远程备份至另一台主机:
第一步:先将/dev/sda的前512字节备份至/opt/mbr.bak,然后将其备份至另一台主机中
#备份/dev/sda的第一个扇区
[root@localhost opt]#dd if=/dev/sda of=/opt/mbr.bak count=1 bs=512
##将其备份的文件,远程复制到同网段的主机
[root@localhost opt]#scp /opt/mbr.bak 192.168.20.10:/opt
The authenticity of host '192.168.20.10 (192.168.20.10)' can't be established.
ECDSA key fingerprint is SHA256:t8FpQIt7q42QgD8R4xWF4qpS+ohNRdBBS8Ob+Yk/PKM.
ECDSA key fingerprint is MD5:ab:98:42:cf:4c:50:98:ee:00:e9:53:ae:18:5e:4b:ea.
Are you sure you want to continue connecting (yes/no)? yes ##这里是yes
Warning: Permanently added '192.168.20.10' (ECDSA) to the list of known hosts.
root@192.168.20.10's password:
mbr.bak 100% 512 136.7KB/s 00:00
##模拟mbr丢失
[root@localhost opt]#dd if=/dev/zero of=/dev/sda count=1 bs=512
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000422726 秒,1.2 MB/秒
##检测一下 已经破坏了
[root@localhost opt]#hexdump -C -n512 /dev/sda
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
[root@localhost opt]#reboot
第二步:模拟破坏/dev/sda的前512字节,开机重启;
第三步:选择急救模式,选择3,
第四步:配置一个虚拟临时网卡,与远程主机同网段,然后ping一下是否通,然后远程将其复制到根目录下
#先配置一个临时网卡
ifconfig ens33 192.168.20.50 255.255.255.0
#从远程主机拷贝过来
scp 192.168.20.10:/opt/mbr.bak /
#查看一下
ls
#恢复MBR分区表
#dd if=/mbr.bak of=/dev/sda bs=512 count=1
#检查一下
hexdump -C -n512 /dev/sda
第五步:将mbr.bak复制到/dev/sda中,然后检测一下,重启
2、grub菜单丢失
1、模拟grub配置文件丢失
2、
3、忘记root密码
①、没有光驱的前提下忘记密码
在grub菜单选择时候
按e键进入编辑模式,可以查看grub2中的配置文件grub.cfg
找到linux开始的行,添加内核参数 rd.break
按ctrl-x启动
mount –o remount,rw /sysroot
chroot /sysroot
passwd root
#如果SELinux是启用的,需要执行下一句命令
touch /.autorelabel
exit
reboot
②、有光驱的前提下,忘记密码
这个之前已经写过了,请看前面的博客