Contents

WSL2

参考资料

简介

WSL(Windows Subsystem for Linux)是 Windows 操作系统上运行 Linux 程序的兼容层,使得用户无需安装虚拟机即可直接在 Windows 上运行 Linux 应用程序。用户可以在 Windows 命令提示符或 PowerShell 中访问这些 Linux 工具。

WSL1 与 WSL2 的区别

WSL1

  • 采用 Windows 内核与 Linux 内核之间的翻译层
  • 将 Linux 系统调用转换为对 Windows 内核的调用
  • 在文件系统和网络性能方面存在一定限制

WSL2

  • 在 Windows 内核中嵌入完整的 Linux 内核
  • 通过虚拟化技术将 Linux 系统与 Windows 系统隔离
  • 在文件系统和网络性能方面有显著提升

安装步骤

1. 启用 Linux 子系统

在 CMD 中执行:

1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

2. 启用虚拟机功能

以管理员身份打开 PowerShell,执行:

1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

之后重启系统。

3. 下载 Linux 内核更新包

下载地址:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

4. 安装 Linux 发行版

安装过程中需要设置用户名和密码。

5. 迁移到非系统盘

安装完成后,建议将 WSL 迁移到 C 盘以外的位置。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 1. 关闭 WSL
wsl --shutdown

# 2. 查看要迁移的子系统名称
wsl -l

# 3. 导出并打包
wsl --export 子系统名称 任意位置\export.tar

# 4. 卸载原分发
wsl --unregister 子系统名称

# 5. 导入到目标位置
wsl --import 子系统名称 迁移后的路径 export.tar所在路径 --version 2

# 6. 设置默认登录用户
Ubuntu config --default-user 用户名

卸载

1
2
3
4
5
# 导出备份
wsl --export 子系统名称 任意位置\export.tar

# 卸载
wsl --unregister 子系统名称

常见问题

WSL2 配置

在 WSL2 中使用 Docker 需要注意,配置 systemd 支持:

1
sudo service docker stop

注意:在 WSL2 中直接使用 Docker Desktop 的方式存在诸多限制,如果需要完整的 Docker 功能,建议使用 Docker Desktop 自带的 WSL2 后端。

参考:

与 VMware 冲突

WSL2 和 VMware 可能会产生冲突,这是因为两者都需要启用虚拟化功能。

参考:https://www.jianshu.com/p/20ae65d1b7a1

解决思路

  • 在 BIOS 中确保虚拟化技术(VT-x/AMD-V)已启用
  • 如果需要同时使用 WSL2 和 VMware,尝试更新到最新版本以获得更好的兼容性
  • 在 Windows 功能中根据需要切换 Hyper-V 的启用状态

拓展与后续学习建议

  • WSL2 高级配置:学习配置 wsl.conf 和 .wslconfig 文件,优化 WSL 性能和网络
  • 与 Docker 集成:深入了解 Docker Desktop + WSL2 后端的使用方式
  • 文件访问优化:WSL2 与 Windows 文件系统之间的性能差异较大,学习将项目放在合适的位置
  • 跨系统开发:掌握在 WSL2 中进行开发、使用 VSCode Remote-WSL 等实践技巧
  • 图形界面:学习在 WSL2 中运行图形应用程序(需要 X Server 或 WSLg)