首页 > 解决方案 > 如何在 Windows 上运行多个 WSL2 实例?

问题描述

我已经安装了 WSL2 并在其上部署了两台机器:

可以在我的 win10 机器上运行多个Ubuntu-20.04实例吗?

标签: ubuntuwindows-subsystem-for-linuxwsl-2

解决方案


是的,完全有可能。这是我推荐的步骤。在 PowerShell 中(您也可以使用 cmd):

  • 在您想要使用 WSL 图像的方便位置创建一个目录。当然,我命名我WSL的。这不必在您的 C:\ 驱动器上。

  • 创建两个子目录,imagesinstances. 再一次,名字真的取决于你。

  • wsl -l -v只是为了确认您当前的发行版名称。

  • 使用类似的东西备份您现有的 20.04 发行版wsl --export Ubuntu images\2021-02-05_Ubuntu20.04_snapshot.tar(当然,假设您的发行版名为“Ubuntu”)。

  • 使用该快照创建一个新实例,使用类似wsl --import Ubuntu20.04_clone instances\Ubuntu20.04_clone images\2021-02-05_Ubuntu20.04_snapshot.tar --version 2. 完成后,您应该会在目录中看到一个ext4.vhdx文件instances\Ubuntu20.04_clone。这--version是可选的,但表明您可以在需要时并排创建 WSL1 和 WSL2 实例。(例如,如果您需要访问 NTFS 文件系统,WSL1 会快得多。)

  • 使用 启动该实例wsl ~ -d Ubuntu20.04_clone。或者重新启动 Windows 终端(假设您正在使用它),应该会自动检测到新实例。

  • 默认情况下,新实例将以 root 身份启动。您需要通过/etc/wsl.conf使用以下内容创建一个来设置您的用户名:

    [user]
    default=me
    

    ...当然,替换您的用户名。

  • 退出、终止(通过wsl --terminate Ubuntu20.04_clone)并重新启动该分发,并确认您的环境正在按预期运行。

  • 现在您已确认您的新实例正常运行,以下步骤是可选的,但建议执行。(有关另一种方法,请参阅此 Reddit 线程中 u/Zoredache 的评论(复数) )。

    • wsl --unregister <distroname>通过原始分布将旧图像“重置”为干净状态。

    • 使用Start->Run从 Windows 开始菜单重新运行“应用程序”(技术上它是“应用程序执行别名”),然后键入Ubuntu。这将重新运行配置步骤并创建您的默认用户/密码/等。(感谢@JackoBongo 对此评论中的建议)。

    • 为方便起见,我建议继续并将/etc/wsl.conf上述内容添加到此实例中。这将使您不必在每次添加或替换实例时都这样做。注意:如果您打算将此图像分发给其他用户,请不要这样做;只是如果你是为自己做这件事。

    • 使用上述命令将此“干净副本”备份wsl --export到类似2021-02-05_Ubuntu20.04_default.tar. wsl --import如果您想启动一个新的 Ubuntu 20.04 来测试一些东西,而不用担心您的正常工作环境中的应用程序/定制会妨碍您,那么这个“干净”版本现在可以成为您的起点。

    • 由于您已经在运行多个发行版(CentOS 和 Ubuntu),那么我猜您已经在使用类似 Windows Terminal 的东西了。但是,如果您通过开始菜单使用“Ubuntu”条目启动 Ubuntu,那么您可能希望将克隆的vhdx文件复制回新安装的干净版本。您会在%userprofile%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc(或类似的)中找到“默认”版本。


推荐阅读