文档首页/ 弹性云服务器 ECS/ 故障排除/ 密码与密钥对/ Linux云服务器如何进入单用户模式重置root密码
更新时间:2024-08-15 GMT+08:00

Linux云服务器如何进入单用户模式重置root密码

适用场景

本节操作介绍Linux操作系统云服务器在单用户模式下重置密码的操作步骤。

进入单用户模式下重置root密码前请先做好数据备份。

请根据操作系统类型选择操作步骤:

CentOS 8系列

  1. 使用控制台提供的VNC方式登录云服务器

    云服务器操作列下单击“远程登录”。

  2. 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。
  3. 确认开始重启后,立即反复单击上下键,阻止系统继续启动,在出现内核选项时按字母键e进入内核编辑模式。
    图1 进入内核编辑模式
  4. 修改启动权限配置。

    将ro参数修改为:rw init=/sysroot/bin/bash

    图2 修改前
    图3 修改后
  5. 然后执行Ctrl+X
    请耐心等待页面加载。
    图4 进入紧急模式
  6. 运行命令chroot /sysroot/切换回原始系统。
  7. 执行以下命令,重置root密码。

    passwd root

    图5 紧急模式下重置root密码
  8. (可选,系统开了SELinux需要执行此步骤)执行以下命令,让SELinux生效。

    touch /.autorelabel

  9. 执行以下命令,退出当前根目录。

    exit

  10. 执行以下命令重启云服务器

    reboot

CentOS 7/EulerOS 系列

  1. 使用控制台提供的VNC方式登录云服务器

    云服务器操作列下单击“远程登录”。

  2. 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。
  3. 确认开始重启后,立即反复单击上下键,阻止系统继续启动,在出现内核选项时按字母键e进入内核编辑模式。
    图6 进入内核编辑模式

    Euler镜像默认对grub文件进行了加密,进入编辑内核模式时会提示:Enter username,需要输入用户和密码,请联系客服进行获取。

  4. 找到linux16行末尾,执行以下操作。
    1. 删除不需要加载的参数(ro参数开始到末尾)。

      ARM(鲲鹏计算)架构云服务器以及裸金属服务器需要保留参数“console=tty0 console=ttyS0”。

    2. 修改ro为rw,以读写方式挂载根分区。
    3. 并添加rd.break,然后执行Ctrl+X。
      图7 修改前
      图8 修改后
  5. 执行以下命令切换至/sysroot目录。

    chroot /sysroot

  6. 执行以下命令,重置root密码。

    passwd root

  7. (可选,系统开了SELinux需要执行此步骤)执行以下命令,让SELinux生效。

    touch /.autorelabel

  8. 执行以下命令,退出当前根目录。

    exit

  9. 执行以下命令重启云服务器

    reboot

CentOS 6/RedHat 6系列

  1. 使用控制台提供的VNC方式登录云服务器

    云服务器操作列下单击“远程登录”。

  2. 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。
  3. 确认开始重启后,立即反复单击“Esc”阻止系统继续启动,并进入一个grub菜单。
    图9 grub菜单
  4. 将光标移动到第一个默认的内核,按字母键e进行编辑。
    图10 按字母键e编辑
  5. 将光标移动到kernel行,再次按字母键e进行编辑。
    图11 移动至kernel行
  6. 将光标移动到“rd_NO_DM”的末尾,在空格后面添加数字“1”。
    图12 在末尾添加数字“1”
  7. 将光标向左移动到“console=ttyS0,115200n8”的位置,删掉“console=ttyS0,115200n8”,然后按回车键接受编辑。
    图13 删掉“console=ttyS0,115200n8”
  8. 按“b”引导使用该内核,并引导到运行级别1(单用户模式)。
  9. 当看到“#”提示符时执行以下命令重置密码。

    passwd root

  10. 重启服务器。

    reboot

Debian/Ubuntu系列

  1. 使用控制台提供的VNC方式登录云服务器

    云服务器操作列下单击“远程登录”。

  2. 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。
  3. 确认开始重启后,立即反复单击“Esc”阻止系统继续启动,并进入一个grub菜单。
    图14 grub菜单
  4. 在grub引导菜单下按“e”键进入grub2菜单编辑模式。
  5. 找到linux行末尾,删除不需要加载的参数(ro参数开始到末尾),修改ro为rw(以读写方式挂载根分区),并添加“init=/bin/bash”。
    图15 修改ro参数
  6. 按Ctrl+x进入救援模式。
  7. 执行以下命令,重置root密码。

    passwd root

  8. 执行以下命令,重启服务器。

    reboot

SUSE 11系列

  1. 使用控制台提供的VNC方式登录云服务器

    云服务器操作列下单击“远程登录”。

  2. 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。
  3. 然后快速刷新页面,按上下键,阻止系统继续启动,并进入一个grub菜单。
  4. 删除boot options中的启动参数,添加init=/bin/bash参数。
    图16 boot options
  5. 按回车键进入单用户模式。
  6. 执行以下命令,重置root密码。

    passwd root

  7. 执行以下命令,重启服务器。

    reboot

SUSE12系列

  1. 使用控制台提供的VNC方式登录云服务器

    云服务器操作列下单击“远程登录”。

  2. 单击远程登录操作面板上方的“发送CtrlAltDel”按钮,重启虚拟机。
  3. 然后快速刷新页面,按“Esc”阻止系统继续启动,并进入一个grub菜单。
    图17 grub菜单
  4. 在grub引导菜单下按“e”键进入grub2菜单编辑模式。
  5. 将光标移至linux行末尾,添加“init=/bin/bash”。
    图18 init=/bin/bash
  6. 按Ctrl-x进入救援模式。
  7. 执行以下命令,重置root密码。

    passwd root

  8. 执行以下命令,重启服务器。

    reboot