Gra*_*ray 5 windows-subsystem-for-linux wsl2
运行 Windows 10(版本 21H1 19043.1415)。
我前段时间启用了所需的 Windows WSL 功能。从那时起,我多次使用 Linux 软件包在 WSL1 和 WSL2 之间来回切换。
我使用 Docker 一段时间了。Docker 最近的更新似乎将 Windows 上的 Docker 从 WSL1 转换为 WSL2。
Ubuntu 刚刚从 PC 上卸载。检查 WSL 的状态:
wsl --list --verbose
Run Code Online (Sandbox Code Playgroud)
返回的状态显示:
| 姓名 | 状态 | 版本 |
|---|---|---|
| docker-桌面-数据 | 已停止 | 2 |
| docker-桌面 | 已停止 | 2 |
问: Linux 的 Windows 子系统版本 Ubuntu 20.04 是否可以安装为 WSL1?这意味着 PC 的 WSL1 和 WSL2 都处于活动状态?
是的。Windows 10 可以同时激活 WSL1 和 WSL2。
在探索 Microsoft 的 WSL 基本命令后,我了解到 Linux 的 Windows 子系统版本可以轻松地从 WSL1 转换为 WSL2,反之亦然。
https://docs.microsoft.com/en-us/windows/wsl/basic-commands
下面演示了 Ubuntu(或其他发行版)如何从 WSL1-WSL2 来回转换。所有命令都是在 Windows 终端(新的 PowerShell)中给出的命令。要转换的 PowerShell 命令是:
wsl --set-version ubuntu 1
wsl --set-version ubuntu 2
Run Code Online (Sandbox Code Playgroud)
Ubuntu(刚刚)从 Microsoft Store(再次)重新安装。用户名和密码已创建。尚未完成 sudo 更新/升级。检查 WSL 状态并显示新安装(正在运行)的 Ubuntu 已安装为 WSL2。
PS C:\Users\prior> wsl --list --verbose
Run Code Online (Sandbox Code Playgroud)
| 姓名 | 状态 | 版本 |
|---|---|---|
| docker-桌面-数据 | 已停止 | 2 |
| docker-桌面 | 已停止 | 2 |
| 乌班图 | 跑步 | 2 |
然后Ubuntu从WSL2转换为WSL1。再次检查了状态。这表明 Ubuntu 转换为 WSL1 并停止了。
PS C:\Users\prior> wsl --set-version ubuntu 1
Run Code Online (Sandbox Code Playgroud)
转换正在进行中,这可能需要几分钟...转换完成。
PS C:\Users\prior> wsl --list --verbose
Run Code Online (Sandbox Code Playgroud)
| 姓名 | 状态 | 版本 |
|---|---|---|
| docker-桌面-数据 | 已停止 | 2 |
| docker-桌面 | 已停止 | 2 |
| 乌班图 | 已停止 | 1 |
Ubuntu 已从 Windows 启动应用程序列表中重新启动。再次检查 WSL 状态。返回的状态显示 Ubuntu 正在作为 WSL1 运行。Docker 应用程序仍然是 WSL2。
PS C:\Users\prior> wsl --list --verbose
Run Code Online (Sandbox Code Playgroud)
| 姓名 | 状态 | 版本 |
|---|---|---|
| docker-桌面-数据 | 已停止 | 2 |
| docker-桌面 | 已停止 | 2 |
| 乌班图 | 跑步 | 1 |
Docker 已启动并检查了 WSL 状态。很明显,WSL1 和 WSL2 文件都可以在 Windows 10 中处于活动状态并运行。
PS C:\Users\prior> wsl --list --verbose
Run Code Online (Sandbox Code Playgroud)
| 姓名 | 状态 | 版本 |
|---|---|---|
| docker-桌面-数据 | 跑步 | 2 |
| docker-桌面 | 跑步 | 2 |
| 乌班图 | 跑步 | 1 |
然后出于好奇,将Ubuntu转换回WSL2然后启动。检查状态并显示到 WSL2 的转换有效。Ubuntu 和 Docker 是 WSL2 并且正在运行。
PS C:\Users\prior> wsl --set-version ubuntu 2
Run Code Online (Sandbox Code Playgroud)
转换正在进行中,这可能需要几分钟...有关与 WSL 2 的主要差异的信息,请访问https://aka.ms/wsl2 转换完成。
PS C:\Users\prior> wsl --list --verbose
Run Code Online (Sandbox Code Playgroud)
| 姓名 | 状态 | 版本 |
|---|---|---|
| docker-桌面-数据 | 跑步 | 2 |
| docker-桌面 | 跑步 | 2 |
| 乌班图 | 跑步 | 2 |
显然,每当切换 WSL1 或 WSL2 子系统时,都无需卸载并重新安装 Linux。
| 归档时间: |
|
| 查看次数: |
5128 次 |
| 最近记录: |