我们丢失了超微服务器文件服务器的根密码。
我尝试按照常用说明使用左移键重新启动并进入 root shell,如下所述在这个答案中。
当我在此菜单中选择 root 时:
Ubuntu 仍然要求输入 root 密码或建议按Ctrl+D返回恢复菜单。
还有其他方法可以重置 root 密码吗?
答案1
由于您可以物理访问机器,因此您可以通过 Live USB/CD 执行此操作。
从 USB 启动并选择“试用 Ubuntu”而不是“安装 Ubuntu”。
打开终端 ( 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
但这可能会因您的安装而有所不同。现在使用以下命令挂载有问题的分区:
sudo mount /dev/sda2 /mnt
现在到了你终于可以1
chroot
进去。sudo chroot /mnt
您将看到您的提示已经变成类似的形式
root@ubuntu:/#
,现在接下来的步骤非常简单。使用以下命令更改用户密码
passwd
:passwd root passwd <main-user>
这应该已经完成了,但是如果使用命令设置密码
passwd
失败,你可以深入研究一下更改/etc/shadow
文件, 但注意:这非常危险,您需要自行承担风险。。chroot
按Ctrl+或输入 exit退出D。使用 卸载机器sudo umount /mnt
,然后使用 重新启动sudo reboot
。您需要取出 USB/CD 并确保您确实在启动相关机器。
1该chroot
方法足以重置密码,甚至添加和删除组中的用户,但它不允许您通过 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
。但这不是必需的。