CentOS6系统忘记开机密码时,可通过GRUB单用户模式重置,重启时按方向键进入GRUB菜单,选择要启动的内核,按“e”编辑,在内核参数末尾添加“single”或“1”,按Ctrl+X进入单用户模式,执行“passwd root”命令输入新密码,完成后输入“exec init 6”重启系统即可,此方法无需第三方工具,通过GRUB引导参数临时绕过密码验证,适用于紧急密码重置场景。
在日常运维中,偶尔会遇到忘记服务器或虚拟机开机密码的情况,尤其是对于仍在使用CentOS6这类较老系统的用户,本文将详细介绍通过GRUB引导加载器的单用户模式重置开机密码的完整步骤,帮助您快速解决密码问题,恢复系统访问权限。
注意事项
在操作前,请务必确认:
- 系统为CentOS6(CentOS7/8操作方式略有不同,本文不适用);
- 如果是物理机,确保您有物理访问权限;如果是虚拟机,确保能通过控制台操作;
- 操作过程涉及系统文件修改,建议提前备份重要数据(虽然单用户模式操作风险较低,但谨慎为上)。
具体操作步骤
第一步:重启系统并进入GRUB编辑界面
-
启动或重启CentOS6系统,在开机自检阶段(显示厂商LOGO时),快速连续按下键盘上的方向键上(↑)或下(↓),直到出现GRUB引导菜单(通常包含“CentOS6 (2.6.32-xxx.el6.x86_64)”等选项)。

如果系统直接进入登录界面,说明错过了GRUB菜单,需重启后再次尝试(CentOS6默认GRUB菜单显示时间较短,需快速反应)。

-
在GRUB菜单中,通过方向键选中第一个选项(即默认的CentOS6系统),然后按下键盘上的
e键,进入GRUB编辑模式。
第二步:修改内核启动参数,进入单用户模式
-
进入GRUB编辑界面后,你会看到多行配置(以
title、root、kernel、initrd等开头),通过方向键找到以kernel开头的行(通常包含vmlinuz-2.6.32-xxx.el6.x86_64等字样)。 -
将光标移动到该行的末尾,输入空格,然后添加以下参数之一(推荐使用
init=/bin/bash,更直接进入root shell):- 方式1(推荐):
init=/bin/bash - 方式2:
single
示例修改后:kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=xxxx-xxxx-xxxx-xxxx rd_NO_LUKS rd_NO_MD crashkernel=auto rd_NO_LVM LANG=en_US.UTF-8 rd_NO_DM rhgb quiet init=/bin/bash
- 方式1(推荐):
-
按
Ctrl + X或F10键,使用修改后的参数启动系统。
第三步:进入单用户模式并重置密码
-
系统会以单用户模式启动,直接进入root用户的命令行界面(无需输入密码),此时根文件系统可能以只读模式挂载,需先将其改为读写模式:
mount -o remount,rw /
(如果提示“mount: /proc already mounted”,可忽略,直接执行重置密码操作。)
-
使用
passwd命令重置root密码:passwd
按提示输入新密码(两次),密码不会显示,输入完成后会显示
passwd: all authentication tokens updated successfully,表示密码重置成功。
第四步:处理SELinux(关键步骤!)
CentOS6默认启用SELinux,如果直接重启,可能会因SELinux安全上下文不匹配导致无法登录,需更新SELinux的安全上下文:
touch /.autorelabel
该命令会在下次重启时自动重新标记所有文件的安全上下文,确保SELinux正常工作。
第五步:重启系统
-
执行以下命令重启系统(注意:此时不要直接输入
reboot,避免因未卸载文件系统导致错误):exec /sbin/init
或使用:
sync && reboot
-
系统重启后,会先进行SELinux的自动重标记(屏幕会显示
Relabeling /),等待完成后,即可使用新密码登录root账户。
常见问题与解决
GRUB菜单不出现怎么办?
- 如果系统默认隐藏GRUB菜单,可开机时按
Esc键强制显示; - 如果仍无法进入,检查BIOS/UEFI设置,确保“Boot Mode”为“Legacy”(而非UEFI),且GRUB是第一启动项。
进入单用户模式后无法执行mount命令?
- 可能是根文件系统未挂载,可先执行
mount -a尝试挂载所有分区,或通过ls /dev/sd*确认根分区(通常是/dev/sda1或/dev/sda2),手动挂载:mount /dev/sda1 /mnt chroot /mnt passwd
重启后仍无法登录?
- 检查SELinux是否已标记(若跳过
touch /.autorelabel,可手动执行restorecon -Rv /修复上下文); - 确认密码输入正确(注意大小写、空格);
- 若仍有问题,可通过救援模式(Rescue Mode)进一步排查。
通过GRUB单用户模式重置CentOS6开机密码是经典且有效的方法,核心步骤可概括为:进GRUB→改参数→进单用户→重置密码→处理SELinux→重启,整个过程无需第三方工具,仅需通过键盘操作即可完成,适合紧急场景下的密码恢复。
建议日常运维中为GRUB设置启动密码(通过grub-md5-crypt生成密码并修改/boot/grub/grub.conf),或使用SSH密钥登录,避免密码遗忘带来的风险。


