ple*_* me 36 grub2 password-recovery
我需要重设密码。我已按照以下步骤操作:
但是,然后我转到“root”或“netroot”恢复选项,它告诉我:
Give root password for maintenance (or type Control-D to continue)
Run Code Online (Sandbox Code Playgroud)
显然,我不知道 root 密码。如果我输入CTRL+ D,我将返回到选项列表。从这个页面我读到:
在“另一种方式”一章下:
4. Highlight the line that begins kernel and press 'e' to edit`
Run Code Online (Sandbox Code Playgroud)
但是在 grub 配置文件中,我没有以kernel. 仅有的:
setparams 'Ubuntu...'
recordfail
set gxfpayload...
insmod part_msdos
insmod ext2
set root=...
search --no-floppy...
linux /boot/vmlinuz-2.6.38...
initrd /boot/initrd.img-2.6....
Run Code Online (Sandbox Code Playgroud)
这些都是我的 GRUB 中的所有行。我应该编辑哪一行?或者还有其他方法可以重置我的密码吗?
Eli*_*gan 34
由于您无法访问恢复模式,您必须通过从 live CD/DVD 或 live USB 系统访问已安装的 Ubuntu 系统来更改密码。下面是有关如何执行此操作的详细演练。
如果您已经可以使用 Ubuntu 系统(即使没有管理权限),这是最简单的。但如果你不能,那也不算太难。
如果您还没有,请编写一个 Ubuntu live USB 闪存驱动器(在Ubuntu、Windows或Mac OS X 上),或刻录 Ubuntu live CD/DVD(在Ubuntu、Windows或Mac OS X 上)。
如果您知道包含 Ubuntu 系统根文件系统的分区的设备名称,请跳到第 5 步。
在您的 Ubuntu 系统(不是 live CD/DVD/USB 系统)中,在终端中运行以下命令:
mount | grep ' on / '
Run Code Online (Sandbox Code Playgroud)
您应该包括前空间on和后/。
该命令产生类似于/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)输出的内容。前面的文本on(不包括空格)是包含 Ubuntu 系统根文件系统的分区的设备名称。记住它(或写下来)。
从 live CD/DVD/USB 启动计算机并选择Try Ubuntu without installation (not Install Ubuntu )。
打开一个终端窗口(Ctrl+ Alt+ T)。
运行此命令:
sudo mount /dev/sda1 /mntRun Code Online (Sandbox Code Playgroud)
/dev/sda1如果不同,请替换为包含 Ubuntu 系统根文件系统的分区的设备名称。
如果您收到有关设备或分区如何不存在或有关“未知文件系统类型”的错误消息,那么您可能使用了错误的设备名称或分区号。如上所述,您系统的根分区可能不是/dev/sda1.
运行此命令:
sudo chroot /mnt
Run Code Online (Sandbox Code Playgroud)
为了能够重置密码,或者能够改变什么组用户的成员,这就是你需要做的,在chroot环境的目的。特别是,你不还需要安装其他文件系统一样/dev,/dev/pts,/sys,和/proc. 更复杂的chroot 程序,它允许您完全使用您被 chroot 进入的系统——例如,更新和安装其中的软件——确实需要这样做,以及进入 chroot 后的其他步骤,但这不需要。
如果您运行sudo chroot /mnt并看到此消息,则几乎总是意味着您将错误的分区安装到--/mnt记住,它实际上不会/dev/sda1在所有系统上--尽管如果您删除也会发生这种情况/bin/bash:
chroot: failed to run command ‘/bin/bash’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果确实发生这种情况,那么您可以卸载它,sudo umount /mnt然后继续安装正确的分区。
执行这些任务之一,以获取/恢复对安装 Ubuntu 系统的访问权限。
如果要重置用户密码:
passwd usernameRun Code Online (Sandbox Code Playgroud)
替换username为您的用户名。(这是安装在硬盘上的系统上的用户名,而不是“ubuntu”,后者是 Ubuntu 桌面安装 CD 上默认用户的用户名。)
输入该用户所需的密码。
如果您不知道您的用户名,您可以通过运行以下命令获取系统上的用户列表:
ls /home
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为/home包含所有用户的主目录,并且用户的主目录的名称与用户的名称相同。
或者,如果您想设置/重置root密码:
由于您在rootshell 中,您可以使用passwd不带参数的命令来重置root密码:
passwd
Run Code Online (Sandbox Code Playgroud)
但请参阅此页面,其中解释了为什么root不建议在 Ubuntu 中启用该帐户。
或者,如果您想让用户成为管理员(以便他们可以执行管理操作,包括root与一样运行命令sudo):
在Ubuntu 12.04及更高版本(可以运行lsb_release -r,看看你有什么Ubuntu的版本,只要确保你运行它在的chroot或它会告诉你的是什么版本的live CD了),运行:
usermod -a -G sudo usernameRun Code Online (Sandbox Code Playgroud)
在 Ubuntu 11.10 及更低版本中,管理能力是由admin组中的成员而不是sudo组授予的。那么你应该运行:
usermod -a -G admin usernameRun Code Online (Sandbox Code Playgroud)
在这两种情况下,请替换username为您要授予管理员权限的用户帐户的名称。
运行这三个命令:
exit
sudo umount /mnt
exit
Run Code Online (Sandbox Code Playgroud)
这些命令中的最后一个退出终端窗口。
通过单击屏幕右上角的电源图标并单击关机来重新启动系统。(然后在出现的对话框中点击重启。)确保在系统再次启动之前移除CD/DVD或U盘,这样您就可以在硬盘上进入您的Ubuntu系统。
如果您无法登录获取包含您的Ubuntu系统根文件系统的分区的设备名称,您可以在启动live CD后弄清楚。有几种方法可以做到这一点。我在这里介绍一种我认为最容易且最不可能导致错误的方法。(但是,您可能也对这种其他方法感兴趣。)
如果您还没有,请刻录 Ubuntu live CD/DVD(在Ubuntu、Windows或Mac OS X 上)或编写 Ubuntu live USB 闪存驱动器(在Ubuntu、Windows或Mac OS X 上)。
从 live CD/DVD/USB 启动计算机并选择Try Ubuntu without installation (not Install Ubuntu )。
打开 GParted。
要在大多数 Ubuntu 版本的默认桌面环境Unity 中执行此操作,请单击主页按钮(即屏幕左上角带有 Ubuntu 徽标的按钮)或按Super,这也称为作为 Windows 键。然后输入gparted. GParted 将出现,您可以单击它。
Ubuntu 17.10 及更高版本使用 GNOME 3和 GNOME Shell 而不是 Unity。要打开 GParted,请单击出现在屏幕左下角的九个点的网格以打开应用程序面板。然后单击 GParted 图标。

特别感谢Videonauth解释了如何在 GNOME 3 中打开 GParted,并提供了这些截图。1
在使用 GNOME 2 而不是 Unity 或 Unity 2D 界面的非常旧版本的 Ubuntu 上,通过单击System ? 行政?GParted 分区编辑器。
其他 Ubuntu 版本,如 Ubuntu MATE、Xubuntu 和 Lubuntu,具有类似的嵌套菜单系统,您可以通过它访问 GParted,同时从实时 USB 或实时 CD/DVD 运行它们。
现在您可以以图形方式查看所有分区。如果您有多个驱动器,您可能需要在 GParted 右上角的下拉菜单中选择包含您的 Ubuntu 系统的驱动器。
包含您的 Ubuntu 系统根文件系统的分区很可能是一个大型分区类型ext4(或对于非常旧的 Ubuntu 系统,ext3)。通常只有一个ext4(或ext3)分区,或者只有一个大分区。否则,一个可能是/分区(包含根文件系统,这就是您想要的),另一个可能是/home分区。因此,如果有两个大的ext4或ext3分区,你可以假设第一个(表示最左边)可能包含你的系统根文件系统的一个。
这可能是错误的,但如果您这样做,这些说明不会损坏任何内容。在其他一些情况下,除了本文中描述的操作之外,做出这种假设不一定是安全的。
记住或记下(可能)包含根文件系统的分区的设备名称。GParted 向您展示了这一点。它通常采用其中是小写字母和数字的形式。/dev/sdXnXn
退出 GParted。
按照上述说明(“如果您可以以非管理用户身份登录”),从步骤 6开始。
这些帖子最初改编自我在Launchpad Answers question 中写的帖子 #9 。
1个 幸得Videonauth的向我解释如何在Ubuntu的17.10生活环境中启动的GParted。我没有 GNOME 3,否则无法提供这些说明。他还提供了两个屏幕截图。(我添加的只是丑陋的手绘箭头和圆圈。)
phi*_*lew 10
如果您需要更改您的 root 密码但不知道旧密码,您将需要进入 root shell。当您启动计算机时,一旦 BIOS 屏幕消失(带有您计算机徽标的屏幕),开始点击该Shift键,直到 GRUB 菜单出现,如果此选项不起作用,请点击该Esc键。(如果它已经配置为出现,则不需要此步骤。)
当您看到菜单时,选择最新内核(或您通常使用的内核)的选项,然后选择下面称为“恢复模式”的选项。
它应该是这样的:

这将带您进入如下所示的菜单:

接下来选择Root选项。
等待并让所有内容加载,直到您到达 shell。现在是乐趣。输入以下命令:
passwd your-usernameRun Code Online (Sandbox Code Playgroud)
替换your-username为您的实际用户名。
如果您不确定自己的用户名,可以通过以下方式查看主文件夹中文件的名称:
cd /home
Run Code Online (Sandbox Code Playgroud)
然后运行:
ls
Run Code Online (Sandbox Code Playgroud)
这将显示您计算机上的用户名称。
现在输入我上面提到的命令:. 所以如果你的用户名是 jane,我会输入:passwd your-username
passwd jane
Run Code Online (Sandbox Code Playgroud)
接下来,您将看到一个选项来输入您的新 unix 密码。这是您输入密码的地方。它将要求您重新键入命令,然后在输入两次成功密码后,密码已更改。现在通过以下方式重新登录您的系统
reboot
Run Code Online (Sandbox Code Playgroud)
如果在输入新密码时要求您输入 root 密码,这通常会有所帮助:
如果您在进入单用户模式时被要求输入 root 密码,请使用
init=/bin/bash内核附加行,该行应该将机器引导到 bash 控制台,您可以在那里获得对/etc/shadow文件的读/写访问权限。然后,您可以passwd直接运行或编辑影子文件以放入一个空字符串。这允许您将机器重新启动到正常环境并以 root 身份登录,将密码留空,然后运行passwd程序以设置 root 密码。这应该只在机器与任何网络分离时才能完成。
(引自 Shawn Lee 在下面列出的一篇文章中。)
要init=/bin/bash按照建议启动,请在启动时访问 GRUB 菜单,然后按e进入编辑器。将光标移动到以 开头的行linux,然后将光标移动到该行的末尾。输入文字
init=/bin/bash
Run Code Online (Sandbox Code Playgroud)
并按下F10启动。您应该以纯文本模式进入 root shell。文件系统将以只读方式挂载。要使文件系统可写,请输入命令
mount -o remount,rw /
Run Code Online (Sandbox Code Playgroud)
然后你可以运行
passwd usernameRun Code Online (Sandbox Code Playgroud)
其中username是您要设置其密码的用户的名称。完成后,您可以使用reboot命令重新启动。
如果您需要更多信息,这些链接可以提供帮助:
| 归档时间: |
|
| 查看次数: |
142428 次 |
| 最近记录: |