zlo*_*lon 9 root password recovery-mode
我们丢失了来自 supermicro 服务器的文件服务器的 root 密码。
我尝试按照通用说明通过左移重新启动并降到 root shell,如本答案中所述。
当我在此菜单中选择 root 时:
Ubuntu 仍然要求输入 root 密码或建议按Ctrl+D返回到恢复菜单。
还有其他方法可以重置root密码吗?
Vid*_*uth 12
由于您可以物理访问机器,因此您可以通过 Live USB/CD 执行此操作。
从您的 USB 启动并选择“尝试 Ubuntu”而不是“安装 Ubuntu”。
打开一个终端(Ctrl+ Alt+ T),并先来看看什么设备处理您的机磁盘了。你可以这样做,lsblk它应该会产生这样的输出(我使用了一张 live CD,因为我在虚拟机中重现了这些步骤):
$ 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
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下它会是,/dev/sda2但这可能因您的安装而异。
现在挂载有问题的分区:
sudo mount /dev/sda2 /mnt
Run Code Online (Sandbox Code Playgroud)现在来到您最终可以1 chroot进入的部分。
sudo chroot /mnt
Run Code Online (Sandbox Code Playgroud)
您将看到您的提示已更改为类似的内容root@ubuntu:/#,现在接下来的步骤非常简单。
使用以下命令更改用户的密码passwd:
passwd root
passwd <main-user>
Run Code Online (Sandbox Code Playgroud)
这应该已经完成了,但是如果在任何情况下使用passwd命令设置密码失败,您都可以深入兔子洞并更改/etc/shadow文件,但要注意:这是非常危险的,您需要自担风险。
退出chroot按Ctrl+D或类型退出。卸载机器,sudo umount /mnt然后重启sudo reboot。您想取出 USB/CD 并确保您确实在启动有问题的机器。
1该chrooting方法足以重置密码,甚至可以从组中添加和删除用户,但它不允许您通过chroot完全使用已安装的系统。apt如果您在以这种方式设置的 chroot 中运行它们,许多其他命令(例如)将失败。
如果您需要对从实时 CD/DVD/USB 访问的已安装系统执行更广泛的修复(例如通过安装、删除或更新软件),那么您需要在此之前设置一些额外的安装chrooting。您可以通过在运行之后运行这些命令来做到这一点,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
Run Code Online (Sandbox Code Playgroud)
如果操作系统的不同部分有多个分区,例如一个单独的/boot分区,那么您可能希望将它们安装到正确的位置。例如,sdX该特定驱动器的设备名称和n分区号在哪里:
sudo mount /dev/sdXn /mnt/boot
Run Code Online (Sandbox Code Playgroud)
如果您chroot在使用该passwd命令重置密码之前运行这些命令,那很好。不过,这不是必需的。