如何在Windows上运行多个WSL2实例?



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

  • CentOS
  • ubuntu - 20.04

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

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

  • 在您想要使用WSL图像的方便位置创建一个目录。当然,我把我的命名为WSL。不需要放在你的C: drive.

  • 创建imagesinstances两个子目录。再说一遍,名字完全由你决定。

  • wsl -l -v只是确认您当前的分布名称。

  • 使用wsl --export Ubuntu images2021-02-05_Ubuntu20.04_snapshot.tar之类的东西备份你现有的20.04发行版(当然,假设你的发行版名为"ubuntu")。

  • 使用wsl --import Ubuntu20.04_clone instancesUbuntu20.04_clone images2021-02-05_Ubuntu20.04_snapshot.tar --version 2之类的东西使用快照创建一个新实例。完成后,您应该在instancesUbuntu20.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),并重新启动该发行版,并确认您的环境如您所期望的那样运行。

  • 现在您已经确认了新实例的正确运行,下面的步骤是可选的,但建议您执行。(关于另一种方法,请参阅u/Zoredache在这个Reddit帖子中的评论(复数)。

    • "Reset">

      通过wsl --unregister <distroname>将旧映像恢复到原始发行版的干净状态。
    • 重新运行应用程序;(从技术上讲,它是一个"应用程序执行别名")从Windows开始菜单中输入Start->Run并键入Ubuntu。这将重新运行配置步骤并创建默认用户/密码等。(感谢@JackoBongo在评论中提出的建议)

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

    • 备份这个"干净的副本";使用上面的wsl --export命令,变成类似2021-02-05_Ubuntu20.04_default.tar的东西。这个"clean"如果你想启动一个新的Ubuntu 20.04来测试一些东西,而不用担心你的应用程序/自定义从你的正常工作环境中得到的方式,版本现在可以作为你的wsl --import的起点。

    • 既然你已经在运行多个发行版(CentOS和Ubuntu),那么我猜你已经在使用像Windows终端这样的东西了。但是如果你通过"Ubuntu"菜单启动Ubuntu条目,那么您可能需要将克隆的vhdx文件复制回新安装的干净版本。你会发现"默认"%userprofile%AppDataLocalPackagesCanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc版本(或类似的)。

在GitHub(我的项目)上也有一个GUI用于管理多个WSL2实例。可能会节省你一点时间。

相关内容

  • 没有找到相关文章

最新更新