如何在 Windows 上 运行 多个 WSL2 实例?
How to run multiple WSL2 instances on Windows?
我已经安装了WSL2并在上面部署了两台机器:
- CentOS
- Ubuntu-20.04
可以在我的 win10 机器上 运行 Ubuntu-20.04 实例的多个实例吗?
是的,完全有可能。这是我推荐的步骤。在 PowerShell 中(您也可以使用 cmd):
在您想要使用 WSL 图像的方便位置创建一个目录。当然,我把我的名字命名为 WSL
。这不必位于您的 C:\ 驱动器上。
创建两个子目录,images
和 instances
。同样,名称真的由您决定。
wsl -l -v
只是为了确认您当前的发行版名称。
使用 wsl --export Ubuntu images21-02-05_Ubuntu20.04_snapshot.tar
之类的东西备份您现有的 20.04 发行版(当然,假设您的发行版名为“Ubuntu”)。
使用类似 wsl --import Ubuntu20.04_clone instances\Ubuntu20.04_clone images21-02-05_Ubuntu20.04_snapshot.tar --version 2
的快照创建一个新实例。完成后,您应该会在 instances\Ubuntu20.04_clone
目录中看到一个 ext4.vhdx
文件。 --version
是可选的,但表明您可以根据需要并排创建 WSL1 和 WSL2 实例。 (例如,如果您需要访问 NTFS 文件系统,WSL1 会快得多。)
使用 wsl ~ -d Ubuntu20.04_clone
启动该实例。或者重新启动 Windows 终端(假设您正在使用它),应该会自动检测到新实例。
默认情况下,新实例将以 root 身份启动。您需要使用以下内容创建 /etc/wsl.conf
来设置您的用户名:
[user]
default=me
...当然,替换您的用户名。
退出、终止(通过 wsl --terminate Ubuntu20.04_clone
),然后重新启动该分发,然后确认您的环境正在按预期运行。
现在您已经确认您的新实例正常运行,以下步骤是可选的,但建议执行。 (有关替代方法,请参阅 this Reddit thread 中 u/Zoredache 的评论(复数))。
通过 wsl --unregister <distroname>
原始发行版将旧图像“重置”为干净状态。
Re-运行 Windows 开始菜单中的“应用程序”(从技术上讲,它是一个“应用程序执行别名”)开始->运行 并输入 Ubuntu。这将重新运行 配置步骤并创建您的默认user/password/etc。 (感谢@JackoBongo 在评论中对此的建议)。
为方便起见,我建议继续将 /etc/wsl.conf
添加到此实例中,如上所述。这将使您不必在每次添加或替换实例时都这样做。注意:如果您打算将此图像分发给其他用户,请不要这样做;只是如果你是为自己做的。
使用上面的 wsl --export
命令备份这个“干净的副本”,类似于 2021-02-05_Ubuntu20.04_default.tar
。如果你想启动一个新的 Ubuntu 20.04 来测试一些东西而不用担心你的 apps/customizations 从你的正常工作环境挡路。
既然您已经 运行 多个发行版(CentOS 和 Ubuntu),那么我猜您已经在使用 Windows 终端之类的东西了。但是,如果您通过开始菜单使用“Ubuntu”条目启动 Ubuntu,那么您可能希望将克隆的 vhdx
文件复制回新安装的干净版本。您会在 %userprofile%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
(或类似的东西)中找到“默认”版本。
GitHub(我的项目)上还有一个用于管理多个 WSL2 实例的 GUI。可能会为您节省一点时间。
我已经安装了WSL2并在上面部署了两台机器:
- CentOS
- Ubuntu-20.04
可以在我的 win10 机器上 运行 Ubuntu-20.04 实例的多个实例吗?
是的,完全有可能。这是我推荐的步骤。在 PowerShell 中(您也可以使用 cmd):
在您想要使用 WSL 图像的方便位置创建一个目录。当然,我把我的名字命名为
WSL
。这不必位于您的 C:\ 驱动器上。创建两个子目录,
images
和instances
。同样,名称真的由您决定。wsl -l -v
只是为了确认您当前的发行版名称。使用
wsl --export Ubuntu images21-02-05_Ubuntu20.04_snapshot.tar
之类的东西备份您现有的 20.04 发行版(当然,假设您的发行版名为“Ubuntu”)。使用类似
wsl --import Ubuntu20.04_clone instances\Ubuntu20.04_clone images21-02-05_Ubuntu20.04_snapshot.tar --version 2
的快照创建一个新实例。完成后,您应该会在instances\Ubuntu20.04_clone
目录中看到一个ext4.vhdx
文件。--version
是可选的,但表明您可以根据需要并排创建 WSL1 和 WSL2 实例。 (例如,如果您需要访问 NTFS 文件系统,WSL1 会快得多。)使用
wsl ~ -d Ubuntu20.04_clone
启动该实例。或者重新启动 Windows 终端(假设您正在使用它),应该会自动检测到新实例。默认情况下,新实例将以 root 身份启动。您需要使用以下内容创建
/etc/wsl.conf
来设置您的用户名:[user] default=me
...当然,替换您的用户名。
退出、终止(通过
wsl --terminate Ubuntu20.04_clone
),然后重新启动该分发,然后确认您的环境正在按预期运行。现在您已经确认您的新实例正常运行,以下步骤是可选的,但建议执行。 (有关替代方法,请参阅 this Reddit thread 中 u/Zoredache 的评论(复数))。
通过
wsl --unregister <distroname>
原始发行版将旧图像“重置”为干净状态。Re-运行 Windows 开始菜单中的“应用程序”(从技术上讲,它是一个“应用程序执行别名”)开始->运行 并输入 Ubuntu。这将重新运行 配置步骤并创建您的默认user/password/etc。 (感谢@JackoBongo 在评论中对此的建议)。
为方便起见,我建议继续将
/etc/wsl.conf
添加到此实例中,如上所述。这将使您不必在每次添加或替换实例时都这样做。注意:如果您打算将此图像分发给其他用户,请不要这样做;只是如果你是为自己做的。使用上面的
wsl --export
命令备份这个“干净的副本”,类似于2021-02-05_Ubuntu20.04_default.tar
。如果你想启动一个新的 Ubuntu 20.04 来测试一些东西而不用担心你的 apps/customizations 从你的正常工作环境挡路。既然您已经 运行 多个发行版(CentOS 和 Ubuntu),那么我猜您已经在使用 Windows 终端之类的东西了。但是,如果您通过开始菜单使用“Ubuntu”条目启动 Ubuntu,那么您可能希望将克隆的
vhdx
文件复制回新安装的干净版本。您会在%userprofile%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
(或类似的东西)中找到“默认”版本。
GitHub(我的项目)上还有一个用于管理多个 WSL2 实例的 GUI。可能会为您节省一点时间。