WSL 安装部署与常见问题详解

WSL(Windows Subsystem for Linux)是微软官方提供的 Windows 子系统,允许用户在 Windows 系统上原生运行 Linux 二进制可执行文件。

目录

一、WSL 简介
二、安装 WSL 2(Windows 11 / Windows 10 最新版)
三、安装 WSL 2(旧版 Windows 10)
四、安装任意 Linux 发行版
五、WSL 基本配置与优化
六、常见问题与解决方案
七、WSL 与 Docker 的结合使用
八、卸载与重装
九、进阶技巧

WSL(Windows Subsystem for Linux)是微软官方提供的 Windows 子系统,允许用户在 Windows 系统上原生运行 Linux 二进制可执行文件。与传统虚拟机不同,WSL 与 Windows 共享同一个内核,启动速度极快(通常只需 1-2 秒),占用资源也更少。

WSL 目前有两个主要版本:

  • WSL 1:基于 Linux 系统调用转换层,性能较好,但文件系统性能有限,不支持完整的 Linux 内核功能。
  • WSL 2:基于完整的 Linux 内核虚拟机,文件系统性能大幅提升(可达 3-6 倍),支持完整的 Linux 内核功能(如 Docker、完整的系统调用)。

推荐使用 WSL 2。

二、安装 WSL 2(Windows 11 / Windows 10 最新版)

如果你的 Windows 10 版本 >= 19041 或使用 Windows 11,安装过程极为简单。

2.1 一键自动安装

管理员身份打开 PowerShell 或 Windows Terminal,执行以下命令:

wsl --install

此命令会自动:

  • 启用 WSL 和虚拟机平台功能
  • 下载并安装最新的 Ubuntu(默认发行版)
  • 安装 WSL 内核更新包

安装完成后,重启计算机。首次启动时会提示你创建 Linux 用户账户和密码。

2.2 仅安装 WSL 内核(不自动安装发行版)

wsl --install --no-distribution

此命令只安装 WSL 2 内核,适合需要手动选择发行版的用户。

三、安装 WSL 2(旧版 Windows 10)

如果 Windows 10 版本 < 19041,需要手动开启相关功能。

3.1 手动开启 WSL 和虚拟机平台

# 启用 WSL
dism.exe /online /enable-namespace:Microsoft-Windows-Subsystem-Linux /all
# 启用虚拟机平台
dism.exe /online /enable-namespace:VirtualMachinePlatform /all
# 重启后设置 WSL 默认版本为 2
wsl --set-default-version 2

3.2 从 Microsoft Store 安装 Linux 发行版

打开 Microsoft Store,搜索 “Linux”,选择你喜欢的发行版(Ubuntu、Debian、Fedora 等),点击安装。

3.3 验证 WSL 2 内核版本

wsl --status
wsl --list --verbose

确保 VERSION 列显示为 2。

四、安装任意 Linux 发行版

4.1 列出可用发行版

wsl --list --online

常见发行版包括:Ubuntu、Debian、Ubuntu-22.04、Ubuntu-24.04、OracleLinux、Fedora。

4.2 安装指定发行版

# 安装 Ubuntu 24.04
wsl --install --distribution Ubuntu-24.04
# 安装 Debian
wsl --install --distribution Debian
# 安装 Fedora
wsl --install --distribution Fedora

4.3 导入现有发行版(从 tar 归档)

# 导出现有发行版
wsl --export Ubuntu-24.04 Ubuntu-24.04.tar
# 导入到新位置
wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 Ubuntu-24.04.tar --version 2
# 设置默认用户
ubuntu24.04 config --default-user username

五、WSL 基本配置与优化

5.1 WSL 配置文件

WSL 的全局配置文件位于:

%USERPROFILE%\.wslconfig

示例内容:

[wsl2]
memory=8GB
processors=4
paging=.5
swap=4GB
kernel=D:\WSL\kernel
localhostForwarding=true
dnsTunneling=true
autoMemoryReclaim=gradual

5.2 发行版内配置文件

每个发行版的配置文件位于 /etc/wsl.conf:

[network]
hostname=wsl
systemd=true
[automount]
enabled=true
options="metadata,umask=22,fmask=11"
mountFsTab=true
[interop]
enabled=true

5.3 更换 WSL 2 默认 Linux 内核

[wsl2]	kernel=D:\WSL\kernel-5.15.153.1

5.4 访问 Windows 文件

cd /mnt/c/Users/YourName/Documents
# 或在 Windows 中:
# \\wsl$\Ubuntu-24.04\home\username

六、常见问题与解决方案

问题 1:WSL 安装后无法启动,报错 “The operation timed out”

原因:网络问题导致 WSL 内核或发行版下载失败。

解决:手动下载 wsl_update_x64.msi 或离线导入发行版 tar 包。

问题 2:WSL 2 运行缓慢,CPU/内存占用高

解决:在 %USERPROFILE%\.wslconfig 中添加 memory=4GB processors=2 等资源限制。

问题 3:WSL 与 Windows 文件互操作速度极慢

解决:将项目文件放在 WSL 文件系统中,使用 VSCode Remote-WSL 插件开发。

问题 4:wsl –install 报错 “WSL_E_INSTALLATION_DISTRO_INVALID”

解决:使用 wsl --list --online 查看正确的发行版名称。

问题 5:WSL 2 无法关闭

解决wsl --shutdown 然后 wsl --terminate Ubuntu

问题 6:WSL 2 中无法使用 systemctl

解决:编辑 /etc/wsl.conf 添加 [boot] systemd=truewsl --shutdown

问题 7:Git/npm 代理设置正确但无法访问

解决:WSL 2 有独立网络栈,需单独配置代理。

问题 8:WSL 与 Windows 时间不同步

解决timedatectl set-local-rtc 1

七、WSL 与 Docker 的结合使用

在 WSL 2 中安装 Docker Desktop 或直接安装 Docker Engine:

sudo apt update && sudo apt install docker.io docker-compose
sudo service docker start
sudo usermod -aG docker $USER

八、卸载与重装

wsl --unregister Ubuntu
wsl --unregister

九、进阶技巧

9.1 在 Windows Terminal 中配置 WSL

在 Windows Terminal 设置中添加 WSL 配置段。

9.2 Git 文件权限

git config --global core.fileMode false

9.3 迁移 WSL 2 到其他盘

wsl --export Ubuntu-24.04 ubuntu.tar
wsl --unregister Ubuntu-24.04
wsl --import Ubuntu-24.04 D:\WSL ubuntu.tar --version 2

这样,你就完成了 WSL 的完整配置。祝你使用愉快!

评论

发表回复