答案1
让我们换一种思路。这仍然基于我的理论上一个答案,而是尝试以不同的方式来确定发生了什么。
由于您已经autoruns.exe
安装了(来自评论),您可能已经拥有其余的SysInternals 套件以及。如果没有,请安装它, 或者至少Procmon
。 然后:
- 跑步
procmon.exe
- 筛选->筛选...(或Ctrl+ L,或图标)
- 创建一个小路过滤哪个包含
\\wsl
- 添加列表的过滤器,以及好的对话
- 通过图标、Ctrl+L或编辑->清晰显示
寻找正在访问的东西\\wsl.localhost\kali-linux\...
。
我最终发现,出于某种原因,华硕 Armory Crate 正在尝试访问一些老的(不再在我的系统上)包括 Kali 在内的发行版。我将尝试卸载(并可能重新安装)以查看是否可以消除此问题。但我真的不知道 Armory Crate 为什么这样做。现在我想知道它是否在您的系统上也是同样的过程。
答案2
简短回答:Windows 中的某些内容可能正在尝试访问 中的文件\\wsl.localhost\kali-linux
。只要访问该路径,分发就会启动,至少在 Windows 11 上是这样。
更多详情:
我最近自己也遇到了类似的情况,但我不确定您是否遇到了同样的事情。
就我的情况来说,我有:
- 安装多个发行版
- 其中一个是专门的 Debian 发行版,带有本地稳定 Diffusion 安装
debugShell=true
中设置.wslconfig
。这是 WSL 版本中的一项功能0.51.2以后每当 WSL2 VM 启动(或重新启动)时都会显示一个单独的调试 shell。
我注意到,当我没有执行任何与 WSL 相关的事情时,调试 shell(以及 WSL2 VM)就会启动,通常是在启动 Windows 后不久。然后我注意到,当我通过浏览器 Vivaldi 启动时,这种情况也发生了。唯一启动的发行版是 Stable Diffusion 发行版。
如果我重命名发行版(通过注册表破解),它将不再启动。如果我将其重新命名,它将在启动 Vivaldi 时启动。
我最终发现,我使用 Vivaldi 直接将文件 (Stable Diffusion) 检查点下载到发行版中,使用路径\\wsl.localhost\<distro>
。当 Vivaldi 启动时,我相信它会快速扫描列表中的每个文件,以查看它是否仍然存在。此操作导致发行版启动。
在您的例子中,您提到 Kali 在关闭后立即重新启动,我假设这意味着某个东西在 Kali 中打开了一个文件并在关闭时尝试重新打开它(分发停止)。
如果你有 Windows 11,你可以安装Microsoft Store 上的预览版本获得 Kali 启动的确切“视觉指示”。创建或编辑%userprofile%\.wslconfig
(这是您的视窗配置文件(不是 WSL)具有以下内容:
[wsl2]
debugShell=true
然后wsl --shutdown
。下次 Kali 自行启动时,您将看到一个调试控制台窗口。您不需要对它执行任何操作——它只是 Kali 启动的视觉指示。当它出现时,您可以将其关闭。
我希望这能给你一些提示确切时间Kali 正在启动,基于此,也许可以知道是什么导致了它。