Ubuntu Server 密码重置完整教程
适用范围:Ubuntu Server 18.04 / 20.04 / 22.04 / 24.04,涵盖物理机、RAID、以及 Dell / HP 远程管理场景。
一、总体思路
密码重置的核心操作在所有版本、所有品牌硬件上都是完全通用的:
- 想办法进入 GRUB recovery mode
- 挂载根分区为可写
- 用
passwd修改密码 - 重启
真正因硬件品牌或 RAID 类型产生差异的,是"如何拿到控制台/键盘输入权限"这一步,而不是密码重置本身的命令。
二、方法一:GRUB 单用户 / Recovery Mode(最常用)
适用于:能通过物理键盘、或远程 KVM(iDRAC/iLO)拿到开机画面的场景。
操作步骤
- 重启服务器,GRUB 菜单出现时按住
Shift(Legacy BIOS)或连续按Esc(UEFI),进入 GRUB 菜单 - 选择 Advanced options for Ubuntu,进入后选择带 (recovery mode) 的内核
- 进入 Recovery Menu,选择 root Drop to root shell prompt
- 重新挂载文件系统为可写:
mount -o remount,rw / - 重置密码:
按提示输入两次新密码passwd 用户名 - 重启:
reboot
若 recovery mode 给的是菜单而非直接 shell,选择菜单中的 "root" 选项即可进入 root shell。
三、方法二:Live CD / USB 启动盘(GRUB 进不去时使用)
适用于:GRUB 被密码保护、菜单被隐藏且无法触发、磁盘加密等复杂场景。
操作步骤
- 用 Ubuntu Live USB/ISO 启动(远程场景可用 iDRAC/iLO 的 Virtual Media 直接挂载 ISO,无需插U盘)
- 确认目标分区:
lsblk - 挂载根分区:
sudo mount /dev/sdXN /mnt - chroot 进入系统:
sudo chroot /mnt passwd 用户名 exit - 卸载并重启:
sudo umount /mnt sudo reboot
四、RAID 环境的影响
1. 硬件 RAID(独立 RAID 卡,如 Dell PERC、HP Smart Array)
基本不影响。 RAID 卡在 OS 层之下工作,呈现给系统的是普通逻辑磁盘,lsblk/fdisk -l 直接能看到,正常挂载、chroot 即可。
- Dell PERC →
megaraid_sas驱动 - HP Smart Array →
hpsa驱动
这两种驱动都早已合入 Linux 内核主线,Ubuntu Live/Server 镜像基本原生支持,无需额外驱动盘(除非是 10 年以上的老旧型号)。
2. Linux 软件 RAID(mdadm)
需要额外组装阵列:
# Live环境安装mdadm(部分镜像已自带)
sudo apt install mdadm
# 扫描并组装现有RAID
sudo mdadm --assemble --scan
# 查看阵列状态
cat /proc/mdstat
# 阵列出现后(如 /dev/md0)正常挂载
sudo mount /dev/md0p1 /mnt
若 RAID 上叠加了 LVM(mdadm + LVM 常见组合):
sudo apt install lvm2
sudo vgscan
sudo vgchange -ay
sudo lvs
sudo mount /dev/vg名/lv名 /mnt
3. 伪 RAID / 主板集成 RAID(Intel RST 等)
最容易踩坑:依赖 dmraid 或 mdadm 识别,Ubuntu Live 环境不一定默认识别,可能需要手动 mdadm --assemble 或 dmraid -ay。
排查命令(进入 Live 系统后)
lsblk -f # 查看分区/文件系统情况
cat /proc/mdstat # 查看软RAID是否被内核识别
sudo mdadm --detail --scan # 查看阵列详情
dmesg | grep -i raid # 查看RAID卡/驱动加载情况
建议:生产服务器优先走方法一(GRUB recovery mode),因为系统已在运行,RAID 早已被内核/驱动正常组装好,不涉及 RAID 识别问题。方法二仅在 GRUB 本身进不去、或需要更底层修复时使用。
五、各 Ubuntu 版本差异对照
核心操作(mount -o remount,rw / → passwd → reboot)四个版本完全一致,差异仅体现在以下方面:
| 版本 | GRUB Recovery 流程 | 主要差异点 | |
|---|---|---|---|
| 18.04 | 相同 | GRUB 菜单相对容易弹出(默认等待时间较长) | |
| 20.04 | 相同 | Subiquity 安装镜像/云镜像 GRUB 菜单常被隐藏(GRUB_TIMEOUT=0),需开机瞬间狂按 Shift/Esc;云镜像默认可能禁用密码登录,需检查 /etc/ssh/sshd_config 中 PasswordAuthentication |
|
| 22.04 | 相同 | 云镜像同样存在菜单隐藏问题;若开启 Secure Boot,一般不影响 recovery mode,除非使用了非官方签名内核模块 | |
| 24.04 | 相同 | 需额外注意 cloud-init 是否会在下次启动时覆盖/锁定密码,可用 `cat /etc/cloud/cloud.cfg \ | grep -A5 lock_passwd检查,必要时在/etc/cloud/cloud.cfg.d/下添加禁用规则,或touch /etc/cloud/cloud-init.disabled` |
六、硬件品牌差异:Dell / HP
结论:OS 层操作(GRUB recovery / passwd)与硬件品牌完全无关,通用。 差异只在远程管理接口(拿到控制台权限的方式)。
Dell — iDRAC 操作步骤
- 浏览器访问
https://<iDRAC IP>登录 - 进入 Overview → Virtual Console,或点击 Launch Virtual Console
- 启动远程 KVM 窗口,等同于坐在机器前操作
- 若服务器已开机,先在 iDRAC 中重启(Power → Reset System / Warm Boot)
- 重启过程中点击窗口获取焦点,在 GRUB 菜单出现时按
Shift/Esc - 后续步骤与本地操作完全一致:recovery mode →
mount -o remount,rw /→passwd→reboot
Dell 注意点:
- Virtual Console 需要 iDRAC Express 及以上 License,纯 Basic 版可能无法使用,需提前在 iDRAC 主页的 License 页面确认
- 需要 Live USB 方案时,可在 Virtual Console → Connect Virtual Media 直接挂载 ISO 文件(本地或网络路径),无需插U盘
- 老款 iDRAC7/8(R730 以前)多为 Java 插件方式,新款 iDRAC9(R740 以后)为纯 HTML5,操作界面差异较大,建议分批次记录
HP — iLO 操作步骤
- 浏览器访问
https://<iLO IP>登录 - 进入 Remote Console & Media,选择 HTML5 Console 启动
- 先重启服务器(Power → Momentary Press / Reset)
- 在控制台窗口中操作 GRUB 菜单,流程与 Dell 完全一致
- 需要 Live USB 时,使用 Virtual Drive / Image File CD-ROM/DVD 功能挂载 ISO
HP 注意点:
- Remote Console 功能通常 iLO Standard 版即可用,但 Virtual Media 部分型号需要 iLO Advanced License
- iLO4(Gen9 及更早)与 iLO5(Gen10+)界面差异较大,建议分别记录
BIOS/Boot Menu 按键提醒
服务器品牌的 Boot Menu / BIOS Setup 按键(如 Dell 的 F2/F11、HP 的 F9/F11)与 GRUB 菜单按键(Shift/Esc,Ubuntu 层面统一)是两个不同阶段,操作时注意区分,不要弄混。
Secure Boot
Dell、HP 服务器默认支持 UEFI Secure Boot,且签名信任链默认兼容 Ubuntu 官方签名的 GRUB/内核,一般无需关闭即可进入 recovery mode。仅在自行编译内核、安装非官方驱动导致签名问题时,才需要临时在 BIOS 中关闭 Secure Boot。
七、快速参考表
| 场景 | 使用方法 |
|---|---|
| 能拿到控制台/远程KVM,GRUB可正常进入 | 方法一:GRUB Recovery Mode |
| GRUB被密码保护/菜单彻底进不去 | 方法二:Live USB + chroot |
| 硬件RAID(PERC/Smart Array) | 无需额外处理,正常挂载即可 |
| 软件RAID(mdadm) | Live环境需先 mdadm --assemble --scan |
| mdadm + LVM | 额外执行 vgscan / vgchange -ay |
| Dell服务器 | 走iDRAC Virtual Console,注意License |
| HP服务器 | 走iLO Remote Console,注意License |
| 24.04 + cloud-init管理的账户 | 检查 /etc/cloud/cloud.cfg 是否会覆盖密码设置 |