我已经安装了WSL2并在上面部署了两台机器:
- CentOS ubuntu - 20.04
可以运行Ubuntu-20.04的多个实例在我的win10机器上的实例?
是的,完全有可能。以下是我推荐的步骤。在PowerShell中(你也可以使用cmd):
-
在您想要使用WSL图像的方便位置创建一个目录。当然,我把我的命名为
WSL
。不需要放在你的C: drive. -
创建
images
和instances
两个子目录。再说一遍,名字完全由你决定。 -
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实例。可能会节省你一点时间。