
重置密码前的准备:这些细节别忽略,不然白忙活
在动手之前,有几个小细节你可得注意,我之前帮同事弄的时候,就因为他忽略了这些,结果卡在中间差点放弃。
确认你的虚拟机是正常关闭的。如果之前是强制断电或者崩溃状态, 先正常启动一次,哪怕进不了系统也没关系,主要是让虚拟机状态恢复稳定。我有次处理强制关机后的虚拟机,结果GRUB菜单直接报错,后来才发现是文件系统损坏,还得先修复才能重置密码,多花了半小时。
搞清楚你的Kali虚拟机用的是什么启动模式——UEFI还是Legacy(传统BIOS)。这两种模式进入GRUB菜单的方式不一样,选错了就会像我另一个朋友那样,按了半天键盘没反应,还以为电脑坏了。怎么看?你可以在虚拟机设置里找“固件类型”,一般新电脑默认UEFI,旧电脑可能是Legacy,记不住的话两种方式都试试也行。
准备好5-10分钟的时间,过程中别着急。我第一次操作的时候,想着快点搞定,结果在修改启动参数时手滑删错了字符,导致系统启动失败,又得从头来。慢一点,反而能一次成功。
这里我整理了不同Kali版本和启动模式的关键差异,你可以对着看自己属于哪种情况:
Kali版本 | 启动模式 | GRUB菜单触发键 | 核心参数修改 |
---|---|---|---|
2023.x及以上 | UEFI | 启动时按 Shift 键 | 将 ro quiet splash 改为 rw init=/bin/bash |
2020.x-2022.x | Legacy | 启动时按 Esc 键 | 删除 quiet splash ,添加 single |
2019.x及以下 | Legacy | 自动显示菜单(无需按键) | 将 ro 改为 rw single |
(表格说明:不同版本和启动模式的关键差异,你可以根据自己的情况对应操作,避免走弯路)
超详细分步教程:从启动到重置全流程,每个步骤都讲透
接下来就是核心步骤了,我会把每个操作都拆解开,你跟着做就行。记得操作的时候仔细看屏幕提示,我会把自己踩过的坑标出来,帮你避坑。
第一步:启动虚拟机,抓住3秒窗口期进入GRUB菜单
你先打开虚拟机软件(VMware、VirtualBox都行),启动你的Kali虚拟机。这时候别干别的,眼睛盯着屏幕——系统启动时会先加载硬件信息,然后很快会出现GRUB菜单(就是那个黑底白字,显示“Kali GNU/Linux”选项的界面)。
关键操作
:GRUB菜单出现的时间很短,通常只有3秒左右,你得在这3秒内按下对应的按键(参考上面表格里的“GRUB菜单触发键”)。比如你用的是2023版UEFI模式,就按Shift键;旧版本Legacy模式按Esc键。如果错过了也别急,等系统启动失败后重启虚拟机再来一次,我最多试过3次才抓住窗口期,很正常。 我踩过的坑:之前帮人操作时,他用的是VirtualBox,默认启动时会全屏,结果GRUB菜单在全屏状态下被遮挡了,按了半天没反应。后来才发现,启动时先别全屏,窗口模式下更容易看到菜单,这点你也注意下。
第二步:选中启动项,按“e”进入编辑模式
GRUB菜单出现后,你会看到几个选项,一般第一个是“Kali GNU/Linux”(正常启动),第二个是“Advanced options for Kali GNU/Linux”(高级选项)。新手 选第二个,里面有“恢复模式”的选项,安全性更高,我自己平时也习惯用这个。
选中你要的选项后,别按Enter!按键盘上的“e”键——这会进入启动参数编辑模式,接下来要修改的关键参数就在这里。进入编辑模式后,屏幕会显示一长串代码,大概长这样:
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
search no-floppy fs-uuid set=root xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
linux /boot/vmlinuz-6.1.0-kali9-amd64 root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash
initrd /boot/initrd.img-6.1.0-kali9-amd64
你不用看懂每一行,重点找以“linux /boot/vmlinuz-…”开头的那一行——这行就是系统启动的核心参数,我们要改的就是这一行末尾的内容。
第三步:修改启动参数,把“只读”改成“读写”模式
找到“linux /boot/vmlinuz-…”那一行后,用方向键把光标移到这一行末尾(别移错行,不然白改)。这时候你会看到末尾有类似“ro quiet splash”的参数,这些参数的意思是“只读模式启动,安静启动,显示动画”,我们要把它改成“读写模式”,这样才能修改密码。
不同版本的修改方法
(对照表格来):
改完之后,检查一遍有没有输错字符——我第一次改的时候多打了一个空格,结果系统启动时报“参数错误”,后来才发现是手滑。确认没问题后,按“Ctrl+X”或者“Fn+F10”启动系统(不同电脑按键可能不一样,屏幕下方会有提示)。
第四步:进入单用户模式,执行passwd命令修改密码
启动后,系统不会进入图形界面,而是直接进入命令行模式,屏幕上会显示“root@kali:/#”,这就说明你成功进入单用户模式了,现在拥有最高权限(root权限)。
接下来输入修改密码的命令:passwd root
(注意passwd后面有空格,root是用户名)。按Enter后,系统会提示你“New password:”(输入新密码),这时候你输入你想设置的新密码——重要提示:输入密码时屏幕上不会显示任何字符(不是键盘坏了),这是Linux的安全机制,输完直接按Enter就行。
然后系统会让你“Retype new password:”(再次输入密码),再输一遍刚才的密码,按Enter。如果看到“password updated successfully”(密码更新成功)的提示,就说明改好了!
我踩过的坑
:有次我设置的密码太简单(比如123456),系统提示“密码太弱”,但其实可以强制设置——你只要在提示后再输一遍密码,按Enter就行,虽然不推荐弱密码,但应急情况下先用着没问题,之后再改复杂的。
第五步:重启系统,用新密码登录
密码改好后,输入reboot -f
命令重启系统(-f参数是强制重启,避免卡在关机界面)。等待系统重启后,到登录界面时,用户名输入“root”,密码输入你刚才设置的新密码,应该就能成功登录了!
如果登录成功,记得先测试一下权限是否正常——打开终端,输入sudo su
,如果不需要密码直接进入root模式,就说明重置成功了。这时候你可以把新密码记在安全的地方,别下次又忘了,我现在都用密码管理器存这些,省心多了。
Kali官方文档里其实也提到了单用户模式重置密码的方法(链接:https://www.kali.org/docs/,rel=”nofollow”),但写得比较简洁,新手可能看得云里雾里,我这个步骤应该比官方文档更接地气。
如果你按这些步骤操作,90%以上的忘记密码问题都能解决。 如果遇到特殊情况(比如GRUB菜单损坏、文件系统错误),可能需要额外处理,这时候别慌,可以在评论区告诉我你的具体问题,咱们一起想办法。你成功重置后,也欢迎回来告诉我效果,让我知道这个方法帮到你了~
其实VMware和VirtualBox用起来真没太大区别,你完全不用纠结用哪个软件,核心的重置步骤都是一样的。我之前帮人用VMware操作时,和自己用VirtualBox改密码,整个流程走下来,该进GRUB菜单还是得进,改启动参数的方法也没差别,最后输passwd命令重置密码那步更是一模一样。要说不一样,也就两个小细节得注意下,不然你可能会像我另一个朋友那样,明明步骤对了,却因为软件差异卡半天。
一个是GRUB菜单的显示位置,VMware默认窗口模式下,那个黑底白字的菜单通常在屏幕顶部,字比较小但清晰;VirtualBox的菜单可能在屏幕中间,字稍微大一点,不过不管在哪儿,只要看到“Kali GNU/Linux”那行字,就说明找对地方了。另一个是重启快捷键,VMware里你改完密码想重启,直接按“Ctrl+R”就行, VirtualBox得按“Host键+R”——那个Host键一般是右Ctrl键,你看虚拟机窗口底部状态栏,会标着“Host”和对应的按键,别记错了。不过说真的,就算记混了也没关系,大不了点虚拟机软件菜单栏里的“重启”按钮,手动点一下也一样能重启,不用非得记快捷键。
我之前帮朋友用VirtualBox改密码,他一开始还紧张,说“我这软件和你说的不一样咋办”,结果跟着步骤走,进GRUB、改参数、输passwd命令,全程下来和我用VMware操作时没半点区别,连提示的英文都差不多。你就记住,不管用哪个软件,核心都是抓住GRUB菜单那几秒,改对启动参数,最后用passwd命令重设密码,这几步做对了,管它是VMware还是VirtualBox,密码都能改好。整个过程也就5-10分钟,你按之前说的步骤一步步来,保准没问题。
如果没抓住GRUB菜单的3秒窗口期怎么办?
你别急,这时候可以先重启虚拟机——等系统启动到登录界面(哪怕进不去),然后点击虚拟机软件的“重启”按钮(别直接关电源),重启后重新观察GRUB菜单。我之前帮同事操作时,他第一次也错过了,重启2次后就抓住了。如果还是不行,可以在虚拟机设置里把“启动时显示GRUB菜单”的等待时间调长(VMware在“选项-高级”里,VirtualBox在“系统-启动顺序”里),调至10秒就很容易抓住了。
UEFI和Legacy模式进入GRUB的方式有什么具体区别?
主要是触发键和菜单显示略有不同。UEFI模式下,GRUB菜单通常在启动时自动显示(如果没显示,按Shift键),菜单文字可能带“UEFI”标识;Legacy(传统BIOS)模式下,菜单显示时按Esc键,菜单文字更简洁。我之前遇到过Legacy模式用户按Shift没反应,换成Esc就成功了。记不住的话,启动时先按Shift,没反应就重启按Esc,两种都试试基本能解决。
修改密码后提示“Authentication failure”(认证失败)怎么办?
这时候先检查你输入的密码是不是正确——Linux输入密码时屏幕不显示字符,可能你不小心多输或少输了字符(比如按了空格)。我有次帮人改完密码,他登录时把“123456”输成“12345”,结果提示失败。如果确认密码没错,可能是单用户模式下文件系统没挂载成读写模式,这时候需要重新进入单用户模式,先输入mount -o remount,rw /
(重新挂载根目录为读写),再执行passwd root
重设密码,一般就能解决。
VMware和VirtualBox操作步骤有区别吗?
核心步骤完全一样,只有2个小细节不同:一是GRUB菜单的显示位置,VMware默认窗口模式下菜单在屏幕顶部,VirtualBox可能在中间;二是重启快捷键,VMware按“Ctrl+R”,VirtualBox按“Host键+R”(Host键通常是右Ctrl)。我用这两款软件都操作过,改密码的关键步骤(进GRUB、改参数、passwd命令)完全一致,你按文章步骤来就行,不用区分软件。
重置root密码会删除虚拟机里的文件吗?
不会!重置密码只是修改系统里的密码配置文件(/etc/shadow),不会动你的文档、工具、配置等数据。我帮过十几个朋友重置密码,从没遇到过文件丢失的情况。不过有个例外:如果你的虚拟机之前因为强制关机损坏了文件系统(比如文章里提到的情况),这时候重置密码前需要先修复文件系统(输入fsck /dev/sda1
,sda1是系统分区,具体看你的分区名),修复过程可能会删除损坏的临时文件,但个人数据文件是安全的。