忘记root密时有发生况,这时候该怎么办呢?本文将以CentOS 8.5 、Debian 12 为例,详细介绍如何在系统引导时重置红帽Linux系统的root密码。
一、CentOS、RHEL
1.1 方法一
-
重启系统,在 GRUB 2 引导屏幕上按【 e 】 键中断引导过程。此时会出现内核引导参数。
load_video
set gfx_payload=keep
insmod gzio
linux ($root)/vmlinuz-5.14.0-70.22.1.e19_0.x86_64 root=/dev/mapper/rhel-root ro crash\
kernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv/swap rhgb quiet
initrd ($root)/initramfs-5.14.0-70.22.1.e19_0.x86_64.img $tuned_initrd
2.进入以 linux 开头的行的末尾。
linux ($root)/vmlinuz-5.14.0-70.22.1.e19_0.x86_64 root=/dev/mapper/rhel-root ro crash\
kernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv/swap rhgb quiet
按 【Ctrl+e】 键跳到这一行的末尾
3.在以 linux
开头的行的最后添加 rd.break
。
linux ($root)/vmlinuz-5.14.0-70.22.1.e19_0.x86_64 root=/dev/mapper/rhel-root ro crash\
kernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv/swap rhgb quiet rd.break
4.按 【Ctrl+x 】使用更改的参数启动系统。
此时会出现 switch_root
提示符。
5.将文件系统重新挂载为可写:
mount -o remount,rw /sysroot
文件系统以只读模式挂载到 /sysroot
目录中。将文件系统重新挂载为可写才可以更改密码。
6.进入 chroot
环境:
chroot /sysroot
此时会出现 sh-4.4#
提示符。
7.重置 root
密码:
passwd
按照命令行中的步骤完成 root
密码的更改。
8.在下次系统引导时启用 SELinux 重新标记进程:
touch /.autorelabel
9.退出 chroot
环境:
exit
10.退出 switch_root
提示符:
exit
11.等待 SELinux 重新标记过程完成。请注意,重新标记一个大磁盘可能需要很长时间。系统会在这个过程完成后自动重启。
验证步骤
-
- 要验证
root
密码是否已成功更改,请以普通用户身份登录并打开 Terminal。 -
以 root 用户身份运行
su
- 输入新的
root
密码。 -
显示与当前有效用户 ID 关联的用户名:
- 要验证
whoami
输出返回:
root
1.2 方法二
-
重启系统,在 GRUB 2 引导屏幕上按【 e 】 键中断引导过程。此时会出现内核引导参数。
load_video
set gfx_payload=keep
insmod gzio
linux ($root)/vmlinuz-5.14.0-70.22.1.e19_0.x86_64 root=/dev/mapper/rhel-root ro crash\
kernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv/swap rhgb quiet
initrd ($root)/initramfs-5.14.0-70.22.1.e19_0.x86_64.img $tuned_initrd
2.进入以 linux 开头的行。
linux ($root)/vmlinuz-5.14.0-70.22.1.e19_0.x86_64 root=/dev/mapper/rhel-root ro crash\
kernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv/swap rhgb quiet
按 【Ctrl+e】 键跳到这一行的末尾
3.进入以 linux 开头的行,把 ro 改为 rw ,末尾增加 init=/bin/sh 或 init=/bin/bash。
改后如图:
linux ($root)/vmlinuz-5.14.0-70.22.1.e19_0.x86_64 root=/dev/mapper/rhel-root rw crash\
kernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv/swap rhgb quiet init=/bin/sh
4.按 【Ctrl+x 】使用更改的参数启动系统。
此时会出现 # 提示符。
5.可直接输入 passwd 修改密码:
#暂定 newpwd 是新密码。
echo newpwd | passwd --stdin root
6.在下次系统引导时启用 SELinux 重新标记进程:
touch /.autorelabel
9.运行命令 exec /sbin/init 来正常启动,或者用命令 exec /sbin/reboot 重启
exec /sbin/reboot
exec /sbin/init
验证步骤
- 要验证
root
密码是否已成功更改,请以普通用户身份登录并打开 Terminal。以 root 用户身份运行。su
- 输入新的
root
密码。 -
显示与当前有效用户 ID 关联的用户名:
- 输入新的
whoami
输出返回:
root
二、Debian、ubuntu
1.重启系统,在 GRUB 2 引导屏幕上按【 e 】 键中断引导过程。此时会出现内核引导参数。
2..进入以 linux 开头的行,把 ro 改为 rw ,末尾增加 init=/bin/sh 或 init=/bin/bash。
改后如图:
3.按 【Ctrl+x 】使用更改的参数启动系统。
此时会出现 # 提示符。
4.可直接输入 passwd 修改密码:
5.运行命令 exec /sbin/init 来正常启动,或者用命令 exec /sbin/reboot 重启
exec /sbin/reboot
exec /sbin/init