我正在尝试在我的 PC (Windows 10) 中安装适用于 Linux 的 Windows 子系统。我通过以管理员身份运行它打开了一个“命令提示符”窗口,并在wsl --install
不更改初始默认文件夹的情况下运行C:\Windows\system32
。因此,WSL 默认安装在此位置。
后来,我通过转到Settings -> Apps & Features -> Windows Subsystem for Linux Update -> Uninstall卸载了 WSL 。
然后,我下载并安装了 WSL 更新C:\users\myaccount
。但是,当我从开始菜单运行 WSL 时,它仍然会转到C:\Windows\system32
.
有没有办法将此 WSL 安装的默认位置移动到C:\users\myaccount
. 此外,我注意到从Settings -> Apps & FeaturesC:\Windows\system32
卸载 WSL 后,WSL 仍在文件夹中。
重要的是要了解 WSL 安装涉及多个组件,并且您是否可以“移动”或更改它们的安装位置对于每个组件都不同:
该
wsl.exe
命令是您主要询问的内容,在最近的版本中内置于 Windows。您没有(也不能)wsl.exe
通过任何Windows 功能或应用程序和功能设置实际安装或卸载实际应用程序。它在您安装 Windows 时出现。Linux 的基本 Windows 子系统(在某种程度上是“lxss”),它也作为“Windows 功能”内置在 Windows 中。作为 Windows 功能,它可以启用或禁用,但据我所知,不能卸载。正如您在我的帖子中看到的那样,这占用的磁盘空间非常小。
WSL2 虚拟机平台,它也是一个 Windows 功能。
与所有其他 Windows 功能一样,不,您不能更改文件所在的位置。大多数将在
System32
. 启用该功能时您在该目录中的事实与此无关。我不记得
C:\Windows\System32\lxss
安装 Windows 时目录中有哪些文件。Windows 未内置的其他组件包括:
WSL2 Linux 内核。这实际上是卸载“Windows Subsystem for Linux Update”时删除的内容。我同意它的名称令人困惑。
这个官方内核也安装在与其他 WSL 二进制文件一起的子目录中,位于
C:\Windows\System32\lxss\tools
. 虽然您无法更改安装此内核的文件夹,但如果您愿意,可以将其移动到另一个目录,并在Windows(不是 Linux)用户配置文件目录中创建一个文件,命名.wslconfig
为以下内容:您还可以编译其他内核并将它们放置在您喜欢的任何位置,指向您要在
.wslconfig
.一个或多个 WSL 发行版。
当您使用
wsl --install -d <distro>
或从 Microsoft Store 安装分发时,它默认安装在%USERPROFILE%\AppData\Local\Packages\<PackageName>
. 这些可以通过导出并重新导入来“移动”。从 PowerShell:
您还需要通过此答案
/etc/wsl.conf
中讨论的文件在该复制实例中设置默认用户名。也可以强制将分发文件从您的
AppData
文件夹移动到另一个位置,然后更新注册表对应的注册表位置 (HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss
)。但是,我没有对此进行测试,也没有看到其他人尝试过。如果你想试一试,请确保你有wsl --export
上面的备份。如果更改特定分布的位置是目标,这可能是最快和最安全的方法:
所有 4 项操作都是即时的。