无法在 WSL 中取消注册 Debian

无法在 WSL 中取消注册 Debian

我刚刚格式化了我的 PC 并尝试重新安装我的 Debian 发行版。

格式化之前,我运行了wsl --export获取 Debian 的 TAR 文件。再次安装 Windows 后,我在选项功能 GUI 中启用了 WSL,重新启动,然后运行wsl --import

现在,似乎导入的发行版无法被正确识别。

PS C:\Users\username> wsl -l -v
  NAME                   STATE           VERSION
* Debain                 Stopped         2
  docker-desktop-data    Stopped         2
  docker-desktop         Running         2
PS C:\Users\username> wsl --unregister debian
Unregistering.
There is no distribution with the supplied name.
Error code: Wsl/Service/WSL_E_DISTRO_NOT_FOUND
PS C:\Users\username> wsl --unregister Debian
Unregistering.
There is no distribution with the supplied name.
Error code: Wsl/Service/WSL_E_DISTRO_NOT_FOUND
PS C:\Users\username> wsl
Failed to attach disk 'E:\vm\wsl\debian\ext4.vhdx' to WSL2: The system cannot find the path specified.
Error code: Wsl/Service/CreateInstance/MountVhd/ERROR_PATH_NOT_FOUND

我也尝试过在中间重启 Windows。我还尝试过取消选中“可选功能”中的 WSL 框,重启 Windows,重新选中它,然后再次重启 Windows。但毫无效果。

系统信息(ThinkPad E14,Gen 4):

Device name [REDACTED]
Processor   12th Gen Intel(R) Core(TM) i7-1260P   2.10 GHz
Installed RAM   24.0 GB (23.7 GB usable)
Device ID   [REDACTED]
Product ID  [REDACTED]
System type 64-bit operating system, x64-based processor
Pen and touch   No pen or touch input is available for this display
Edition Windows 11 Pro
Version 22H2
Installed on    ‎12/‎02/‎2023
OS build    22621.1105
Experience  Windows Feature Experience Pack 1000.22638.1000.0

答案1

虽然(从评论来看)本例中的问题是使用时将“Debian”拼写错误(拼写为“Debain”)wsl --import,但我要指出的是,这是一个好的事故。

总的来说,我建议不是使用wsl --import名为 的 WSL 发行版Debian,或者任何可能由可从商店安装的现有发行版使用的“库存”名称(即“ubuntu”、“ubuntu-22.04”、“Kali-Linux”、“Alpine”等)。

以“Debian”命名的发行版应该保留给 Debian 安装程序实际创建的发行版(它基于一个通用的WSL 发行版启动器--import参考实现)。此发行版与ed 发行版有几个主要区别:

  • 安装程序会自动生成一些额外的注册表项。
  • 安装程序(和以前版本中的卸载程序)修复了目录中分发的位置C:\Users\<username>\AppData\Local\Packages\<PackageName>
  • 安装程序在该包文件夹中创建一些额外的元数据。

虽然参考发行版启动器可能处理“distro-launcher-distro”的特殊情况,它不是“预期”的,我相信在wsl --importing 时使用不同的发行版名称更安全。

例如,我在用户发行版前面加上了ntd_(代表 NotTheDr01ds),因此我的“工作” Ubuntu 被称为:

ntd_Ubuntu_22.04_WSL2

这也意味着我只需运行以下命令即可启动 Ubuntu 22.04 的临时“发行版启动器”版本:

ubuntu2204.exe

我可以将它用作某些新软件或配置的测试,然后在完成后就可以“将其扔掉” wsl --unregister ...

相关内容