linux操作系统引导过程
开机自检(bios)→MBR引导→grub菜单→加载内核→启动进程→打开登录界面
引导过程 | 作用 |
---|---|
bios | 开机检测硬件 ,去第一启动项上找主引导记录(mbr,gpt) |
mbr引导 | 协助硬件找到操作系统 |
grub菜单 | 启动加载器[程序的配置文件找到内核(操作系统)文件的位置],如果grub崩溃了可以自我修复 |
加载内核 | 运行内核(操作系统) |
在操作系统上启动祖宗进程 | centos7 systemd centos6 int |
MBR引导与GRUB菜单:
为什么会把mbr和grub分开:
所有的基本信息都要放在第一个扇区,第一个扇区大小总共就512字节,无法完整的存放grub程序
mbr的大小:446字节,fang'bu
mbr程序的作用:
就是引导硬件找到grub,进行下一阶段
grub的作用:
-
引导硬件找到操作系统(内核)
-
设置密码
-
自我修复
修复MBR扇区修复命令
dd if=/dev/sda of=/mnt/mbr.bak count=1 bs=512
复制命令(复制文本和非文本) 要备份的文件夹 备份到哪 次数=1 字节=512
模拟备份、还原mbr
1.新增一块硬盘,分区
2.将该硬盘加入文件系统并格式化,挂载到mnt目录下
3.备份sda文件到mnt下的mbr.bak 扇区1,备份的字节是512,全部备份
4.hexdump -C -n 512 /dev/sda 查看sda里的内容
5.模拟破坏dd if=/dev/zero(给这个文件里写0) of=/dev/sda count=1 bs=512
把sda里的文件内容全部用0覆盖,一次512字节
hexdump -C -n512 /dev/sda查看sda里的文件内容
6.重启 reboot
7.第一启动项硬盘找不到了,进入光驱系统界面,选择第三个troubleshooting
然后选择第二个rescue a centos system 急救 急救这个操作系统
选择第一个选项
在这个里面还是可以输入命令的,我们先检查硬盘
我们之前的sda里的文件内容考到了sdb1里,现在要做的就是把sdb1里的内容重新考回sda
现在要挂载,还要找到真正的系统,也就是把mbr导回去
先在 / 下创建一个空的文件夹 test 去挂载sdb1
然后dd if=/test/mbr.bak of=/dev/sda count=1 bs=512
将备份的文件覆盖到sda里
然后再hexdump -C -n512 /dev/sda查看sda里的文件内容,就能看到了
最后reboot重启,数据就恢复了
备份实验过程
加一块磁盘
然后备份到新磁盘
模拟破坏
重启
选择3,2,1
挂载新磁盘
恢复
修复grub
故障原因:
mbr中的grub引导程序遭到破坏(修复过程和mbr一模一样)
grub.conf文件丢失(找不到内核)、引导配置有误
修复grub过程:
1.删除rm -rf /boot/grub2/grub.cfg grub的配置文件
2.重启后在0.5秒内按esc,选2,进入急救模式,再选3,2,1
3.chroot /mnt/sysimage
我们进入的是光驱里的/,用这个命令改到真正的/下
4.grub2-install /dev/sda 修复grub,重新安装grub程序
5.grub2-mkconfig -o /boot/grub2/grub.cfg
重新生成grub配置文件(不需要有网)
6.注意是在二层环境里,要先退出,退出命令是exit
7.再reboot
破解用户密码
1.光驱修改(本地一定要有光驱)
第一步,重启然后按esc(一定要手速快,只能按一次)选2,选3,选2,选1
第二步,passwd root,输入新密码两遍后提示successfully就成功了
第三步,exit退出,reboot重启
2.单用户改
1.重启
2.进入这个界面按e
3.将光标移到linux16开头的行,在行末输入rd.break(添加内核参数)
4.按ctrl x进入单用户界面(这个界面里挂载的系统是只读的)
5.重新把sysboot这个目录重新挂载
mount -o remount,rw /sysroot(重新挂载让它可读可写)
6.切根chroot /sysroot
7.passwd root,直接输入密码,回车,刷新touch /.autorelabel,如果没有就是新建,exit退出,rebootc重启
centos6修改密码操作
1.重启,按e进入,再按a ,输入空格s
2.passwd,然后输入密码,reboot重启
添加grub密码
grub2-setpassword
直接设置密码