在Kali Linux虚拟机重置后忘记root密码,最直接的办法是进入GRUB单用户模式,用passwd root重新设置密码,整个过程只需几分钟,不用重装系统。
很多人会遇到这样的场景:虚拟机跑了快照,或者执行了恢复初始状态的操作,开机后才发现root密码已经不是自己记忆中的那个,尤其是Kali这类系统,平时经常需要用root权限做渗透测试,密码丢了等于工具门被人反锁,好在这类问题在虚拟机环境下有成熟的解决路径,下面这几种方法按推荐度排序,实操性强,能帮你快速开门。
重置后root密码忘了怎么办?三种方法对比
重置后的Kali虚拟机,root密码丢失本质上只是认证文件被初始化或损坏,系统本身并没有坏,只要能接触GRUB引导菜单,就能通过单用户模式改掉密码,下面三种方法,第一种最常用,第二种适合特殊情况,第三种是最后的保底方案。
单用户模式重置kali密码
这是绝大多数教程采用的方案,原理是在内核启动参数里追加single或init=/bin/bash,让系统跳过正常的登录流程,直接进root shell,在VMware、VirtualBox里都适用,不依赖外部介质。
具体操作如下:
- 重启虚拟机,在开机画面出现时快速按
Shift键(部分机器按Esc),进入GRUB菜单。 - 选中第一行默认内核,按
e键进入编辑模式。 - 找到以
linux开头的那一行,在行尾空格后追加single,如果你想直接进入bash,也可以追加rw init=/bin/bash。 - 按
Ctrl+X或F10启动,系统会进入单用户模式,此时你已经是root身份。 - 如果根目录是只读的,先执行
mount -o remount,rw /,让文件系统可写。 - 执行
passwd root,按提示输入两遍新密码。 - 如果刚才用的是
single,执行reboot重启;如果用init=/bin/bash,执行exec /sbin/init回到正常启动流程。
这套操作在Kali 2019到2024的多个版本上都验证过,属于内核原生的功能,只要GRUB菜单能出来,成功率很高,业内专家指出,这种方法的本质是绕过systemd的默认target,直接让内核把控制权交给你,所以几乎不受改版影响。
用live系统挂载root文件系统
如果你因为某些原因进不了GRUB,或者单用户模式卡死,可以用一个Kali的live ISO启动虚拟机,然后手动挂载磁盘修改密码。
操作路径如下:
- 在虚拟机设置里指向Kali的ISO镜像,开机时进入live桌面环境。
- 打开终端,执行
sudo fdisk -l查看磁盘分区,Kali根分区一般是/dev/sda1或/dev/nvme0n1p1。 - 执行
sudo mount /dev/sda1 /mnt挂载根分区。 - 执行
sudo mount --bind /dev /mnt/dev和sudo mount --bind /proc /mnt/proc,这是为了在chroot环境里正常使用系统调用。 - 执行
sudo chroot /mnt,此时你已经在原系统的root环境里。 - 直接运行
passwd root设置新密码。 - 退出chroot,卸载所有挂载,重启虚拟机。
如果你手头没有live镜像,也可以临时挂载Kali安装盘,选择“Live”模式即可,方法二比方法一多几个步骤,但胜在不需要依赖原系统的引导完整性。
重装Kali虚拟机
不到万不得已不建议走这条路,重置后密码忘了并不可怕,但重装会清空之前装的工具、脚本和配置,代价太大,只有当磁盘分区损坏、GRUB完全无法修复时才考虑。
重装前一定要备份虚拟机目录里的vmdk或qcow2文件,至少留个快照,与其重装,不如先从快照恢复,看看密码是不是在某个时间点还是可用的。
| 方法 | 难度 | 耗时 | 数据保留 | 适用场景 |
|---|---|---|---|---|
| 单用户模式 | 低 | 1-2分钟 | 完全保留 | GRUB正常,能进引导菜单 |
| live系统挂载 | 中 | 5-10分钟 | 完全保留 | GRUB损坏或单用户模式无效 |
| 重装系统 | 高 | 30分钟以上 | 全部丢失 | 方法全部失败 |
重置密码时容易踩的四个坑
步骤看起来简单,但实际操作中很多人会卡在中间,这些坑我基本都踩过,列出来帮你避雷。
坑1:GRUB菜单一闪而过
Kali虚拟机默认GRUB等待时间很短,尤其是重置过引导设置的机器,解决办法是在VMware虚拟机设置里把固件类型改成BIOS,或者开机时以更快的速度反复按Shift键,如果还是不行,可以修改虚拟机配置文件(.vmx)中的bios.forceSetupOnce = "TRUE",让固件设置界面先出现,从那里进GRUB。
坑2:输入single后卡在登录界面
有些版本的内核行后面还要加上systemd.unit=rescue.target才会稳定进入单用户模式,如果single无效,重启后换成rw init=/bin/bash,这个参数兼容性更广,输入single时要保证它和前面的参数之间有空格,否则会被当成文件名。
坑3:passwd命令报“read-only file system”
这是因为根分区只读挂载了,在单用户模式下,先执行mount -o remount,rw /,然后再运行passwd,如果仍然提示只读,检查一下是否在GRUB参数里遗漏了rw,用init=/bin/bash时可以直接加rw,省得后面再手动挂载。
坑4:新密码生效后登录不了
多发生在虚拟机快照回滚之后,密码文件被重新覆盖,请确认你修改的是当前启动的分区,如果系统里有多个Linux安装在同一个磁盘上,sda1可能不是目标根分区,用lsblk确认分区类型为,再挂载修改。
不同虚拟化平台下的重置差异
重置root密码这件事,在虚拟机里比物理机更简单,因为你能改启动参数,但不同虚拟机平台有一些细节差异。
- VMware Workstation:开机时按
Esc可以调用启动菜单,但进入GRUB需要按Shift,VMware默认固件可以是BIOS或EFI,EFI模式下GRUB菜单可能藏在Boot Manager中,需要先选Boot Manager再找Linux引导条目,这就是常说的场景中最常见的误区。vmware kali linux 密码忘了
- VirtualBox:默认BIOS模式,GRUB菜单出现前按
Shift即可,VirtualBox的虚拟磁盘速度较慢,按Shift的时机可以放宽一些。 - QEMU/KVM:用
virt-manager时点击“强制重启”,然后在串口或VNC里操作,QEMU默认不启用图形GRUB,需要用Ctrl+Alt+2进入串口终端,编辑内核参数时要注意串口输入速度,容易漏字。
这些平台差异不会改变密码重置的本质,但如果你在某个平台上卡住,优先考虑固件类型和启动按键是否按对。
kali虚拟机重置系统后密码丢失怎么解决?常见问题解答
问题1:Kali虚拟机重置后root密码忘了,但按Shift进不了GRUB怎么办?
先确认虚拟机的启动顺序是否把硬盘放在最前,有些平台默认从光驱启动,然后在VMware设置里把固件类型从EFI切换为BIOS试试,如果连GRUB都看不到,直接用live ISO启动,用挂载磁盘的方法改密码,这条路不受GRUB限制。
问题2:单用户模式下设置密码,结果重启后还是无法用新密码登录?
这种情况多半是修改错了分区,或者修改完密码后没有正常同步到磁盘,执行passwd后,使用sync命令强制同步写入,检查一下你编辑的GRUB条目是否带有ro参数,如果在只读状态下重启,修改可能丢失,重新按上述步骤操作,这次先用mount -o remount,rw /。
问题3:重置root密码会不会把普通用户kali的密码也改掉?
不会。passwd root只修改root账户的认证信息,普通用户kali的密码保持不变,如果普通用户密码也忘了,可以用同样的单用户模式执行passwd kali来重置,行业共识认为,直接编辑/etc/shadow文件的方式风险较大,它可能破坏密码哈希格式,建议始终使用passwd命令修改。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/752334.html





