bios 加电自检——mbr——grub——加载内核——启动进程
加电后BIOS程序回自检硬件,硬件无故障后,会根据第一次启动项去找内核,一般来说第一启动项是硬盘,找到硬盘后,会根据mbr指引找到完整的grub程序,再根据grub的配置文件找到内核文件具体位置,然后将内核文件加载到内存中运行内存加载好会启动第一个程序。
BIOS:检测硬件是否正常,然后根据BIOS中的启动项设置,去找内核文件
mbr:应为grub太大第一个扇区存不下所有的grub程序,所以分为两部分指引硬件找到内核文件
grub:根据grub配置文件中记录的位置,找到内核文件
加载内存:把内核运行在内存中
启动进程:启动第一个祖宗进程centos 6:init centos 7:systend
区别:
init :串行启动后续的程序一个一个按顺序启动
systemd: 是并行启动程序全部一起启动
systemd 是系统级的程序 代为管理系统上的服务程序
systemd 保姆级
yum以及rpm安装的软件可以直接使用systemctl去启动关闭,重启开机自启等功能编译安装,不可直接使用systemctl 命令去管理程序,需手写一个配置文件
格式:init 数字 runlevel 当前等级
Linux操作系统有运行级别
0:关机
1:单用户模式(root自动登录), single, 维护模式
2:多用户模式,启动网络功能,但不会启动NFS;维护模式
3:多用户模式,正常模式;文本界面
4:预留级别;可同3级别
5:多用户模式,正常模式;图形界面
6:重启
MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节,前446个字节是GRUB程序,后面64个字节是分区表。
病毒、木马的等造成的破坏;
不正确的分区操作、磁盘读写误操作等。
故障现象
找不到引导程序,启动中断;
无法加载操作系统,开机后黑屏
①备份mbr引导扇区到其他磁盘
②模拟破坏mbr引导扇区
③引导镜像急救模式进行mbr扇区恢复
练习1:模拟破坏mbr和分区表然后修复
第一步:新加一块硬盘,将文件备份到新盘
第二步:备份mbr分区表
第三步:模拟破坏
然后进入急救模式:选项3、2、1
ip a a 192.168.100.100 dev ens33
配置IP地址
scp 192.168.100.100:/mbr.bak .
dd if=./mbr.bak of=/dev/sda bs=512 count=1
mkdir /bak
mount /dev/sdb1 /bak
dd if=/bak/mbr.bak of=/dev/sda
#备份MBR分区表
dd if=/dev/sda of=/data/dpt.img bs=1 count=64 skip=446
scp /data/dpt.img 10.0.0.102:
#破坏MBR分区表
[root@centos8 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
#无法启动
[root@centos8 ~]#reboot
#用光盘启动,进入rescue mode,选第3项skip to shell
#配置网络
#ifconfig ens33 10.0.0.8/24
#ip a a 10.0.0.8/24 dev ens33
#scp 10.0.0.102:/root/dpt.img ./
#恢复MBR分区表
#dd if=dpt.img of=/dev/sda bs=1 seek=446
#reboot
MBR中的GRUB引导程序(1-446字节)遭到破坏
grub.cfg文件丢失,引导配置有误,文件位置/boot/grub2/grup.cfg
系统引导停滞,显示grub >
提示符
第一步: 模拟破坏grub.cfg 配置文件
mv /boot/grub2/grub.cfg/opt
第二步:重启今日急救模式 3、2、1
第三步:先切换根,从光盘的根切换到自己系统的根
chroot /mnt/sysimage
第四步:重新安装grub 2 程序在sda磁盘里
grub2 -install /dev/sda
第五步:重新生成配置文件
grub2 -mkconfig -o /boot/grub/grub.cfg
exit
reboot
2.5 破解密码
有光驱
chroot /mnt/sysimage 切换根目录
passwd 修改密码
无光驱
进入系统再选择 内核界面选择带一个选项按e
将光标移动到 Linux 开头行的最后,添加rd.break
ctrl +x 运行
进入单用户
重新挂载mount -o remount.rw /sysroot 添加读写权限
chroot /sysroot 切换到真正的根
passwd 修改密码
touch /.autorelabel 如果你开启了selinux要重新打上标记
格式:
Systemctl 控制类型 服务名称
start | 启动 |
stop | 停止 |
restart | 重新启动 |
reload | 重新加载 |
status | 查看服务状态 |