重置 Ubuntu 16.04 的 root 密码-恢复模式要求输入 root 密码

重置 Ubuntu 16.04 的 root 密码-恢复模式要求输入 root 密码

我们丢失了超微服务器文件服务器的根密码。

我尝试按照常用说明使用左移键重新启动并进入 root shell,如下所述在这个答案中

当我在此菜单中选择 root 时:

菜单

Ubuntu 仍然要求输入 root 密码或建议按Ctrl+D返回恢复菜单。

还有其他方法可以重置 root 密码吗?

答案1

由于您可以物理访问机器,因此您可以通过 Live USB/CD 执行此操作。

  1. 从 USB 启动并选择“试用 Ubuntu”而不是“安装 Ubuntu”。

    在此处输入图片描述

  2. 打开终端 ( Ctrl+ Alt+ T),首先查看您的机器磁盘具有什么设备句柄。您可以使用lsblk它来执行此操作,应该会产生如下输出(我为此使用了实时 CD,因为我要在 VM 中重现这些步骤):

    $ lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 119,2G  0 disk 
    ├─sda1   8:2    0    16G  0 part [SWAP]
    └─sda2   8:3    0 103,2G  0 part /
    sr0     11:0    1  1024M  0 rom  /cdrom
    

    因此在这种情况下确实如此,/dev/sda2但这可能会因您的安装而有所不同。

  3. 现在使用以下命令挂载有问题的分区:

    sudo mount /dev/sda2 /mnt
    
  4. 现在到了你终于可以1 chroot进去。

    sudo chroot /mnt
    

    您将看到您的提示已经变成类似的形式root@ubuntu:/#,现在接下来的步骤非常简单。

  5. 使用以下命令更改用户密码passwd

    passwd root
    passwd <main-user>
    

    这应该已经完成​​了,但是如果使用命令设置密码passwd失败,你可以深入研究一下更改/etc/shadow文件, 但注意:这非常危险,您需要自行承担风险。

  6. chrootCtrl+或输入 exit退出D。使用 卸载机器sudo umount /mnt,然后使用 重新启动sudo reboot。您需要取出 USB/CD 并确保您确实在启动相关机器。


1chroot方法足以重置密码,甚至添加和删除组中的用户,但它不允许您通过 chroot 完全使用已安装的系统。apt如果您在以这种方式设置的 chroot 中运行许多其他命令(例如),它们将会失败。

如果如果您需要对通过实时 CD/DVD/USB 访问的已安装系统进行更广泛的修复(例如,通过安装、删除或更新软件),那么您可能需要在chroot安装之前设置一些额外的安装。您可以通过运行以下命令来执行此操作正在运行sudo mount /dev/sda2 /mnt,但是跑步sudo chroot /mnt

sudo mount -o bind /dev /mnt/dev
sudo mount -o bind /dev/pts /mnt/dev/pts
sudo mount -t sysfs /sys /mnt/sys
sudo mount -t proc /proc /mnt/proc

如果您有多个分区用于存放操作系统的不同部分,例如一个单独的/boot分区,那么您需要将它们安装到正确的位置。例如,其中sdX是该特定驱动器的设备名称,n是分区号:

sudo mount /dev/sdXn /mnt/boot

chroot如果您在使用该命令重置密码之前运行这些命令,则没有问题passwd。但这不是必需的。

相关内容