一、大体流程
- 开机启动在GRUB2界面“任意键”暂停倒计时。
- 选择要修改的kernel,按“e”进行编辑。
- 在linux16参数这行的最后面追加“rd.break”参数,然后按下Ctrl + X组合键来运行修改过的内核程序。
- 进入到系统的紧急救援模式。
- 输入以下命令破解密码:
mount -o remount,rw / /sysroot
chroot /sysroot
passwd
touch /.autorelabel
exit
reboot
二、过程解释
1、启动倒计时的界面是GRUB2的界面,按“e”键进入“编辑模式”(参考上一篇外传01)
2、一般在实际操作中,不需要在“rd.break”后面加上“consloe=tty0”。当然此处后面可以是“tty1,tty2 . . .”等,只要不是图形化界面就可以,一般默认是“tty=0”。
3、进入系统,看到switch_root:/#,这个是一个仿真根文件系统中的临时的根目录(疑问点1:这个具体是个啥?)
4、输入“mount”可以查看到根目录默认是只读的,不可以去写
5、输入“mount -o remount,rw / /sysroot”, 以读写权限重新挂载上硬盘中真实的文件系统
6、sysroot是交叉编译时指定临时根目录的方式,具体形式为–with-sysroot=/path这样编译过程就会把path当成根目录,确定相对的依赖,编译后在正常的系统中也就很容易的寻找到依赖了。
7、输入“chroot /sysroot”改变根
8、修改root密码
- 方法一
这个方法可以看到密码不容易出错
echo redhat | passwd --stdin root - 方法二
passwd
这个方法必需需要输入2次一样的密码才可以成功
9、如果系统之前启用了SELinux(什么是SELinux,等外传03再说),那么要输入“touch /.autorelabel”,意思是在/下创建一个.autorelabel文件,有这个文件存在,系统在重启时就会对整个文件系统进行relabeling即创建文件安全上下文
10、连续输入2次“exit”,第一次是退出真实环境,第二次是退出仿真根系统。让SELinux开始全部重新打标(创建文件安全上下文)
11、打标完成以后自动重启,重启以后使用root用户登录
本文详细介绍了如何在紧急情况下通过GRUB2引导加载程序编辑内核参数,利用rd.break选项进入Linux紧急救援模式,进而修改root用户密码的过程。涉及GRUB2编辑、系统挂载、chroot环境切换、SELinux重新标记等关键步骤。

被折叠的 条评论
为什么被折叠?



