1. 问题背景与解决思路
上周帮同事处理一台闲置的开发机时,发现这台Ubuntu系统已经半年多没人使用,所有人都记不起登录密码。这种情况在长期不用的测试机、备用机上很常见——特别是多人共用的环境。更麻烦的是,这台机器没有启用SSH远程访问,只能通过本地终端操作。
遇到Ubuntu用户密码遗忘的情况,通常有四种主流的解决路径:
- 单用户模式重置:通过GRUB引导进入root shell直接修改密码文件
- Live CD/USB修改:使用Ubuntu安装介质挂载原系统分区
- chroot环境操作:对加密主目录需要额外处理
- 第三方工具:如SystemRescueCD等专业工具包
经过评估,我选择了最稳妥的单用户模式方案。原因有三:首先该机器是传统BIOS引导(非UEFI),其次硬盘未加密,最重要的是这个方法不需要任何外部介质。下面详细记录操作过程和关键注意事项。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 单用户模式详细操作流程
2.1 进入GRUB菜单
首先重启目标机器,在BIOS自检完成后立即长按Shift键(UEFI系统可能需要按ESC)。这个时机很重要——要在Ubuntu启动动画出现前按下。如果看到紫色背景的GRUB菜单,就成功了一半。
注意:部分显卡型号可能导致GRUB菜单显示异常,此时可以尝试连接VGA接口显示器。如果仍然不显示,可以盲操作——在启动时先按
ESC再按Shift。
2.2 修改启动参数
在GRUB菜单用方向键选择Ubuntu项(通常是第一个),不要回车,而是按e键进入编辑模式。这里可以看到完整的启动配置参数。
找到以linux开头的那一行,在行尾quiet splash后面添加:
code复制init=/bin/bash
修改后应该类似:
code复制linux /boot/vmlinuz-5.15.0-76-generic root=UUID=xxxx ro quiet splash init=/bin/bash
关键点解析:
init=/bin/bash表示系统启动后直接运行bash shell- 必须保留
ro参数(read-only)避免文件系统损坏 - 不要删除原有参数,仅在末尾追加
