第一种
先重启虚拟机
1、选择内核
2、输入e,编辑内核
3、找到linux16开头的行,在这一行最后添加rd.break console=tty0或者init=/bin/bash
4、ctrl+x 保存
5、重新挂载根分区
mount -o remount,rw /sysroot
chroot /sysroot //进入系统的根目录
6、检查selinux是否开启
#vim /etc/sysconfig/selinux
如果开启:
touch /.autorelabel //创建文件,让系统重新启动时能够识别修改
passwd
exit
exec /sbin/init
如果关闭:
passwd
exit
exec /sbin/init //重启
第二种:单用户模式grub添加密码
vim /etc/grub.d/10_linux
cat <<EOF
set superusers="name"
password name 123456
EOF
重新生成grub文件,为明文
grub2-mkconfig --output=/boot/grub2/grub.cfg
1、同上
2、同上
3、找到linux16开头的行,在这一行最后添加 init=/bin/bash
4、ctrl + x 保存
5、重新挂载根分区 mount -o remount,rw /
6、检查selinux是否开启
如果开启:
touch /.autorelabel
passwd
exec /sbin/init
如果关闭:
passwd
exec /sbin/init
第三种:grub密码加密
grub2-mkpasswd-pbkdf2
vim /etc/grub.d/10_linux
cat <<EOF
set superusers="name"
password_pbkdf2 name grub.pbkdf2.sha512.10000.EE9204E789C3245DD4E87CB2690488F73056284414697EB56BD5D798F1AAD9EB4D3B0190D96C2D3E40948997B1C45B8CDD1FB953B1F5A9C5F3F78D5DDDB81791.C97A7CE42DD2F837758AFFA357555750167EF9D909F97AD739364702E7E39CAB19398651306F802F0186DA4F12BAD80945A362940792CEAAD43EE77B453F74E7
EOF
重新生成grub文件,密文
grub2-mkconfig --output=/boot/grub2/grub.cfg
3、找到linux16开头的行,在这一行最后添加 init=/bin/bash
4、ctrl + x 保存
5、重新挂载根分区 mount -o remount,rw /
6、检查selinux是否开启
vim /etc/sysconfig/selinux
如果开启:
touch /.autorelabel
passwd
exec /sbin/init
如果关闭:
passwd
exec /sbin/init
第四种:破解grub加密救援模式
同时忘记root密码和单用户模式grub的密码
进入救援模式救一下数据
1、镜像引导
在CD-ROM前加一个“shift加+”
F10 保存
2、选择进入救援模式
3、选择第二个,修复centos
4、选择第一个,下一步(continus)
5、进入系统后,执行chroot/mnt/sysimsge
bash-4.2#ifup ens33
bash-4.2#scp -r web/ 10.35.152.250:/usr/local/src/
6、删除 /etc/grub.d/10_linux中的加密部分
重新进入虚拟机把hard dirve 放前面