目录
一、模拟破坏mbr和分区表然后修复
二、修复grub引导故障
三、遗忘root用户密码
一、模拟破坏mbr和分区表然后修复
1、mbr处于第一块磁盘的第一个物理扇区,总共512个字节,前446个字节是grub程序,后面64个字节是分区表
2、故障原因:
木马病毒等造成的破坏
不正常的分区操作,磁盘读写操作失误等
3、故障现象:
找不到引导程序,启动终端
无法加载操作系统,开机后黑屏
4、解决思路:
①添加一块新磁盘作为备份
②提前做好备份文件
③以安装光盘引导进入急救模式
④从备份文件中恢复
5、实验步骤
第一步先添加一块磁盘,然后对其进行分区、格式化、挂载
这里需要注意要创建一个测试文件夹
备份mbr扇区数据到其他磁盘
模拟破损的mbr引导扇区
dd if=/dev/zero of=/dev/sda bs=512 count=1
#从/dev/zero复制512字节文件代替磁盘sda的MBR数据
可以用
hexdump -C -n 512 /dev/sda
#查看sda硬盘的前512字节,发现已经被破坏了
引导界面进入急救模式,回复mbr扇区数据
重启之后就无法正常进入系统,然后依次选择321选项
- 当出现安装向导界面时,选择"Troubleshooting"选项,
- 选择"Rescue a CentOS Linux system" 选项,进入急救模式
- 选择“1”选择Continue并按Enter 键继续
- 再次按Enter键后将进入带“sh-4.2#"提示符的Bash Shell环境
创建tests目录用于挂载/dev/sdb1,然后将之前备份的文件将数据回复到sda中
然后就可以正常启动了。
二、修复grub引导故障
1、故障原因:
①mbr中的grub引导程序(1-446)字节遭到破坏
②grub.cfg文件丢失,引导配置有误,文件位置/boot/grub2/grup.cfg
2、故障现象:
系统引导停滞,显示grub>提示符
3、解决思路:
①尝试手动输入引导命令修复
②进入急救模式,重写或者从备份中恢复grub.cfg
③急救模式向mbr扇区中重建grub程序
实验:
1、在页面中的grub >
后面输入下列引导命令即可(在输入中不可复制,内核信息要在故障之前保存下来输入才可,此种方法耗费时间,笨拙繁琐,不建议使用)
2、进入急救模式,恢复grub引导程序
#创建新目录用以挂载备份磁盘,备份GRUB引导程序
mkdir /bak
mount /dev/sdb1 /bak/
dd if=/dev/sda of=/bak/grup.bak bs=446 count=1
#模拟对MBR中的GRUB引导程序的破坏,但不破坏分区表
dd if=/dev/zero of=/dev/sda bs=446 count=1
#引导界面进入急救模式,从备份文件中恢复GRUB引导程序
sh-4.2# mkdir /data
sh-4.2# mount /dev/sdb1 /data/
sh-4.2# dd if=/data/grup.bak of=/dev/sda bs=446 count=1
sh-4.2# exit
3、引导界面进入急救模式,重建grub菜单配置文件
#删除配置文件,模拟GRUB故障
rm -rf /boot/grub2/grub.cfg
#重启
reboot
进入急救模式加载光盘镜像,切换到系统根目录
进入急救模式的办法
在页面加载时按esc键,进入boot menu,然后选择cd-rom drive
然后跟实验一相同进入后依次选择321
重启后打开上一个界面然后选择hard drive即可
三、遗忘root用户密码
1、故障原因:
遗忘root用户的密码
2、故障现象:
无法进行需要root权限的管理操作
若没有其他可用账号,将无法登录操作系统
3、解决思路:
进入急救模式重新设置密码即可
实验:遗忘root用户密码并重新设置密码的过程
重启虚拟机在刷新前按esc进入急救模式
进入之后重复之前的操作321的顺序进入页面
然后开机自启就🆗了