用启动U盘修改服务器密码,核心思路是绕过原系统登录,进入一个独立的Linux或Windows PE环境,挂载服务器硬盘,直接修改本地账号数据库。 这个过程不需要原密码,也不影响系统数据,是服务器密码忘了最常用的自救手段。
服务器密码忘了怎么办?先分清系统类型
处理密码重置前,先确认服务器跑的是什么系统,不同系统的处理路径完全不同,用错方法会浪费时间,甚至可能弄坏引导。
| 服务器系统类型 | 常见发行版/版本 | 密码存储文件 | 推荐工具 |
|---|---|---|---|
| Linux | CentOS 7/8、Ubuntu 18.04+、Debian | /etc/shadow | SystemRescue、Ubuntu Live |
| Linux | 较老版本 CentOS 6 | /etc/shadow | 同上 |
| Windows Server | 2012 R2、2016、2019 | SAM 文件 | Windows PE + NTPWEdit |
| 虚拟化环境 | VMware ESXi、Hyper-V | 需单独处理 | 管理后台快照 |
如果你自己拿不准系统是什么,最保险的方案是优先按Linux流程准备U盘,绝大多数服务器(包括云主机物理机)都采用Linux内核,而且Linux的启动U盘制作相对简单,兼容性也更好。
启动U盘修改服务器密码怎么操作?完整Linux实操
准备工作:制作急救启动U盘
你可以用一台能正常开机的电脑,下载一个Linux急救系统镜像,行业共识推荐使用 SystemRescue 或 Ubuntu Server Live ISO,制作U盘的工具可以用 Rufus(Windows下)或 balenaEtcher(跨平台),U盘容量不必太大,2GB以上即可。
- 用Rufus将镜像写入U盘,注意选择“DD镜像模式”(指以原始数据方式写入U盘),而不是“ISO镜像模式”(指解压安装文件方式写入),否则可能出现启动后无法加载急救系统的问题。
- 制作完成后,U盘里会包含一个完整的Linux急救环境,可以启动到命令行界面。
修改密码核心步骤:挂载分区并chroot
-
从U盘启动服务器
将U盘插入服务器USB口,开机时按F11(戴尔服务器)或F12(华为服务器)或Esc或F9(惠普服务器)进入启动菜单,选择你的U盘作为第一启动项,如果服务器有板载BMC管理口,可以在网页远程控制台里操作,避免来回跑机房。 -
识别系统盘分区
进入急救系统后,打开终端,先执行:lsblk
这个命令会清晰列出所有磁盘分区,你的服务器系统盘一般是
sda(如果服务器有阵列卡,可能是
cciss或nvme开头,对应的是硬件RAID整列或NVMe固态硬盘),如果跑了lsblk看不明白,可以再执行:fdisk -l
找到大小和系统分区结构最匹配的那块盘,一般主分区(
/boot所在分区)是/dev/sda1,根分区是/dev/sda2或/dev/sda3。 -
挂载根分区
将根分区挂载到急救系统的/mnt目录:mount /dev/sda2 /mnt
如果你的根分区是LVM逻辑卷(在CentOS/RedHat系列中常见),需要先激活逻辑卷:
vgchange -ay mount /dev/mapper/ol-root /mnt
如果看到类似
unknown filesystem type 'LVM2_member'的报错(意味着系统分区是LVM结构,不能直接挂载),就需要用pvscan和vgchange -ay先激活逻辑卷,业内专家指出,多数情况下云服务器和实体服务器的新装系统都默认使用LVM,所以这一步要格外小心。 -
绑定必要目录并切换根环境
这是关键一步,直接执行passwd是没用的因为你此时还运行在U盘的系统里,没有切到服务器硬盘的系统里,需要执行:mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys chroot /mnt
chroot之后,你的终端就好像是直接运行在服务器的硬盘系统上一样。 -
重置密码
在 chroot 环境里,直接执行:passwd root
输入两遍新密码,如果服务器有多个管理员账号,也可以执行
passwd 用户名来改指定账号的密码。 -
处理SELinux(CentOS/RHEL系列)
如果你的系统开启了SELinux(默认开启),重置完密码后还要执行:touch /.autorelabel
这个命令会在下次开机时自动重新标记文件安全上下文(防止因安全上下文错乱导致密码框无法正常登录或其他服务异常),然后退出 chroot(按
Ctrl+D或输入exit),重启服务器,拔掉U盘。
常见问题:启动U盘修改服务器密码的操作变体
| 场景 | 关键差异 | 额外操作 |
|---|---|---|
根分区不是 /dev/sda2 |
磁盘命名可能不同 | 用 lsblk 确认后再挂载 |
| LVM逻辑卷结构 | 需要激活vg | 执行 vgchange -ay |
| 使用SELinux的系统 | chroot后环境受限 | 创建 /.autorelabel 文件 |
| Ubuntu系统(无SELinux) | 无安全上下文问题 | 无需额外操作,直接重启 |
ubuntu和Debian系列系统默认不启用SELinux,你要做的就是挂载分区,chroot,passwd 改密码,再重启即可,少一步SELinux的标记操作,更简单。
服务器系统进不去怎么用u盘改密码?Windows Server方案
Windows Server的密码重置思路与Linux完全不同不用改SAM文件(Windows安全账号管理数据库),而是用WinPE盘启动,借助工具直接清空或修改密码。
操作路径
- 准备一个Windows PE启动U盘,推荐使用 微PE工具箱 或 优启通 制作。
- 从U盘启动进入PE系统。
- 安装 NTPWEdit 工具(一个开源离线的Windows密码编辑器),或者使用PE系统里自带的“密码修改”小工具。
- 打开工具,选择Windows目录所在的盘符(通常是C盘),工具会自动定位到SAM文件。
- 点击“开始”,软件会列出所有用户账号,选择你要修改的账号,直接输入新密码并保存。
注意:Windows Server 2012 R2 及之后的版本,默认账号不一定是
Administrator,可能是Admin,如果列出的账号没有明确标注,建议开启“显示被禁用账号”选项,再逐个尝试。
Windows Server重设密码后要注意的事
- 如果服务器启用了 BitLocker 驱动器加密,PE工具无法直接读取SAM文件,会提示找不到或无法加载,这种情况需要你先通过恢复密钥解锁磁盘,再走上述步骤。
- 密码重置后,服务器原有的计划任务和开机自启动服务不受影响,但你如果有RDP远程桌面连接记录,旧的连接会话会失效,这是正常现象。
启动u盘修改服务器密码核心注意事项
硬盘阵列驱动不识别
服务器通常配备硬件RAID卡(如PERC、LSI),急救U盘核心版本较旧时,可能无法识别RAID组和虚拟磁盘,导致在 lsblk 里看不到任何硬盘卷,遇到这种情况,不要急着以为是硬盘坏了。
- 尝试在BIOS里把 SATA 模式从 RAID 切换为 AHCI(如果数据盘不在RAID里),但这会对原系统有风险,不建议生产环境操作。
- 更稳妥的方式:更换一个更新版本的急救Linux发行版,新内核包含更多阵列卡驱动。
数据安全要放在第一位
密码重置不涉及数据分区的写操作,理论上不会丢数据,但你仍然是直接挂载了系统盘并使用了 chroot,如果误操作了 /mnt/boot 或误删了 /etc/shadow,会导致无法开机。注意:整个过程不要碰除 passwd 之外的任何命令,尤其不要执行 mkfs 或 rm -rf。
| 风险行为 | 后果严重性 | 避免方法 |
|---|---|---|
| 误格式化分区 | 极高,数据全丢 | 执行前用 lsblk 多次确认盘符 |
|
误删 | 高,系统无法认证任何用户 | 只用 passwd 命令 |
| 挂载错分区 | 中,重置的是另一个系统的密码 | 核对分区大小和挂载点 |
| 未处理LVM直接挂载 | 低,会报错但不会损坏数据 | 提前激活逻辑卷 |
云服务器场景的特殊处理
如果你用的是简米云、酷番云等云服务器,不需要U盘,云控制台自带的“重置实例密码”功能比启动U盘更安全,且操作后必须重启实例才会生效,如果云服务器连单用户模式都进不去,且控制台重置也失败,多数情况下是因为云安全组禁用了相关端口或者系统文件损坏,这跟密码本身关系不大,不建议盲目用U盘折腾。
末了:启动U盘修密码这件事本身
其实我知道你此刻可能很慌服务器密码忘了,网站和业务全都停在那里,前台客户催,领导也盯着,我可以告诉你的是,这台服务器通常不会因为你忘了密码就宣判死刑。只要你还能物理接触服务器(或者有远程控制台的权限(指能通过网络访问服务器厂商的管理芯片界面,如戴尔iDRAC、惠普iLO),并且系统盘没有损坏,启动U盘就是一把最可靠的万能钥匙。 按上面的Linux流程一步一步来,耐心一点。
最终防线:如果你实在搞不定LVM分区或阵列驱动,最简单的出路是联系服务器的品牌售后(戴尔、浪潮、华为都有付费支持服务),或找数据恢复公司做“绕密”处理,代价是花钱,但数据安全有保障。
Q&A:关于启动U盘和服务器密码重置的常见疑惑
用启动U盘修改服务器密码,会影响服务器上的网站数据和数据库吗?
不会,密码重置只修改系统用户密码文件(如/etc/shadow),不涉及数据库文件或者网站源码,但要注意,如果你错误挂载了数据盘而不是系统盘,然后修改了数据盘上另一个系统的密码,那只影响那个系统的登录凭据,数据本身仍然完好,不用过度担心。
启动U盘需要多大容量?用普通家用U盘行不行?
急救系统镜像一般只有几百MB,所以U盘容量在2GB到8GB之间就足够,普通家用USB 2.0 U盘也能启动,但制作镜像时写入速度稍慢,操作时加载急救系统会久一点,大约30秒到1分钟,不会影响密码修改的安全性,建议用USB 3.0的U盘。
修改完密码后,服务器原来的SSH密钥登录(指通过证书验证身份、无需输入密码的远程登录方式)还能用吗?
可以,SSH密钥独立于用户密码存储在 /root/.ssh/authorized_keys 文件中,重置密码不影响密钥文件的权限和内容,但如果你的服务器开了 PasswordAuthentication no(意思是禁止密码登录),那修完密码后依然不能用密码远程登录,原因是你没有修改SSH配置文件,此时要用密钥登录,或者检查一下selinux的标记是否正常处理,否则登录过程可能异常卡住。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/668669.html




