Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

1. WSL介绍

WSL(Windows Subsystem for Linux) 是微软在 Windows 10/11 上推出的功能,允许用户直接在 Windows 中运行原生 Linux 二进制程序,无需虚拟机或双系统。它分为两个版本:

  • WSL1:通过兼容层将 Linux 系统调用转换为 Windows 内核调用,轻量但性能较低。
  • WSL2:基于轻量级虚拟机(Hyper-V),运行完整的 Linux 内核,性能接近原生。

应用场景:开发(如运行 Bash、Python)、测试跨平台应用、学习 Linux 等。WSL2 已成为主流,推荐需要高性能的场景使用。

2. 先决条件

2.1. 操作系统要求

  • 最低版本

    • WSL1:Windows 10 版本 1607(Anniversary Update) 或更高。
    • WSL2:Windows 10 版本 1903(Build 18362) 或更高(推荐 2004 或更新版本)。
    • Windows 11:原生支持 WSL2,无需额外配置。
  • 检查 Windows 版本

    1
    winver

    1
    systeminfo | find "OS Version"

2.2. 硬件要求

  • 64 位 CPU(不支持 32 位系统)。
  • 虚拟化支持(仅 WSL2 需要):
    • Intel CPU:需启用 VT-x(Intel Virtualization Technology)。

    • AMD CPU:需启用 AMD-V(SVM Mode)。

    • 检查虚拟化是否开启

      1
      systeminfo | find "Hyper-V Requirements"

      如果显示 **”已检测到虚拟机监控程序”**,则已启用;否则需进入 BIOS/UEFI 开启。

2.3. 启用 Windows 功能

2.3.1. UI交互操作

  1. 控制面板 -> 程序 -> 程序和功能 -> 启用或关闭Windows功能

  2. 勾选适用于Linux的Windows子系统后点击确定

  3. 重启系统,使更改生效。

2.3.2. 命令行操作

  1. 以管理员身份运行PowerShell, 并执行以下命令:
1
2
3
4
5
# 启用 WSL 功能(适用于 WSL1 和 WSL2)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# 启用虚拟机平台(仅 WSL2 需要)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 重启系统,使更改生效。

2.4. 判断系统是否支持WSL2

1
wsl --status

注意:如果是x64的系统,需要在x64版本的powershell下执行,不能在x86版本的powershell下执行。

查看输出结果:

  • 如果看到类似以下输出,并且版本号是 2.x.x,说明你的系统不仅支持WSL 2,而且WSL 2的核心组件已安装并正在使用。

    1
    2
    3
    4
    默认版本:2
    ...
    WSL 版本: 2.0.9.0
    ...
  • 如果你看到 默认版本:2,但下方有警告说“需要更新内核”或“WSL 2 需要启用 Windows 功能”,则说明系统支持WSL 2,但组件未安装完整。可以执行以下命令更新wsl,安装完整的以来组件。

    1
    wsl --update
  • 如果命令失败或未显示版本 2 的信息,则可能你的系统根本不支持WSL 2(极老的Win10版本),或者WSL功能完全未启用。

3. 安装方法

3.1. Microsoft Store安装

打开Microsoft Store,搜索Ubuntu,选择一个合适的版本(如Ubuntu 24.04.1 LTS),点击安装

【说明】:推荐使用此方法安装,通过Microsoft Store下载非常快。命令行安装时如果没有梯子,下载速度会很慢。

3.2. 命令行安装

以管理员身份运行PowerShell, 并执行以下命令:

1
2
# 此命令将启用运行WSL并安装Linux的Ubuntu分发所需的功能(默认是最新版本)。
wsl --install

或者使用一下命令安装特定的Ubuntu版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1. 查看所有可用的子系统版本
wsl --list --online
以下是可安装的有效分发的列表。
使用“wsl.exe --install <Distro>”安装。

NAME FRIENDLY NAME
AlmaLinux-8 AlmaLinux OS 8
AlmaLinux-9 AlmaLinux OS 9
AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10
AlmaLinux-10 AlmaLinux OS 10
Debian Debian GNU/Linux
FedoraLinux-42 Fedora Linux 42
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
SUSE-Linux-Enterprise-15-SP7 SUSE Linux Enterprise 15 SP7
Ubuntu Ubuntu
Ubuntu-24.04 Ubuntu 24.04 LTS
archlinux Arch Linux
kali-linux Kali Linux Rolling
openSUSE-Tumbleweed openSUSE Tumbleweed
openSUSE-Leap-15.6 openSUSE Leap 15.6
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_10 Oracle Linux 8.10
OracleLinux_9_5 Oracle Linux 9.5


# 安装指定的版本
wsl --install -d Ubuntu-24.04

3.3. 导入已备份的子系统

1. 导入已备份子系统

1
2
wsl --import <新发行版名称> <安装路径> <备份文件路径>
# 例如: `wsl --import Ubuntu-spencer C:/WSL/Ubuntu-24.04 D:/wsl_backup/ubuntu2404.tar`

2. 设置默认用户

通过 wsl –import 导入的发行版,其默认用户是 root,这会导致在安装 VS Code 和 WSL 扩展时遇到一些权限问题。

1
2
3
4
# 进入导入的Linux系统
wsl -d <发行版名称>
# 如
wsl -d Ubuntu-spencer

修改/etc/wsl.conf配置。vim /etc/wsl.conf,输入以下内容,把spencer替换成自己的用户名。

1
2
[user]
default=spencer

重启 WSL

1
2
wsl --shutdown
wsl -d Ubuntu-spencer

4. 打开Linux子系统

首次启动需要设置用户名和密码,设置好后可以看到Ubuntu启动成功。如下所示:

说明:用户名建议只用小写,否则可能会失败。

5. WSL常用命令

5.1. 安装与管理

  • 安装默认 WSL 发行版(默认 Ubuntu):

    1
    wsl --install
  • 安装特定发行版(如 Debian):

    1
    wsl --install -d Debian
  • 列出可用发行版

    1
    wsl --list --online # 或 `wsl -l -o`

5.2. 发行版操作

  • 列出已安装的发行版

    1
    wsl --list --verbose  # 或 `wsl -l -v`
  • 启动发行版

    1
    wsl -d <发行版名称>  # 例如 `wsl -d Ubuntu`
  • 设置默认发行版

    1
    wsl --set-default <发行版名称>
  • 终止发行版

    1
    wsl --terminate <发行版名称>
  • 卸载发行版

    1
    wsl --unregister <发行版名称>

5.3. WSL 版本管理

  • 设置默认 WSL 版本(1 或 2):

    1
    wsl --set-default-version 2
  • 将发行版转换为 WSL 2

    1
    wsl --set-version <发行版名称> 2

5.4. 运行命令

  • 直接运行 Linux 命令(不进入交互式 Shell):

    1
    wsl <命令>  # 例如 `wsl ls -l`
  • 以特定用户身份运行

    1
    wsl -u <用户名>  # 例如 `wsl -u root`

5.5. 文件系统访问

  • 从 Windows 访问 Linux 文件
    • 路径:\\wsl$\<发行版名称>\
    • 或在资源管理器中输入 \\wsl$
  • 从 Linux 访问 Windows 文件
    • 路径:/mnt/c/(对应 C:\)。

5.6. 导出与导入

  • 导出发行版为备份文件

    1
    2
    wsl --export <发行版名称> <备份文件路径>
    # 例如: `wsl --export Ubuntu-24.04 D:/wsl_backup/ubuntu2404.tar`
  • 导入发行版

    1
    2
    wsl --import <新发行版名称> <安装路径> <备份文件路径>
    # 例如: `wsl --import Ubuntu-spencer C:/WSL/Ubuntu-24.04 D:/wsl_backup/ubuntu2404.tar`
  • 应用场景

    • 备份 WSL 系统
    • 迁移 WSL 到新电脑
    • 创建自定义发行版副本
  • 注意事项

    • 导出过程可能需要几分钟,取决于发行版大小
    • 导入时会创建新的发行版,不会覆盖现有发行版
    • 导入后默认用户为 root,可以使用 <发行版名称> config --default-user <用户名> 更改默认用户
    • 确保目标路径有足够磁盘空间

5.7. 其他实用命令

  • 关闭所有 WSL 实例

    1
    wsl --shutdown
  • 查看 WSL 版本信息

    1
    wsl --version

6. 参考文档

https://learn.microsoft.com/zh-cn/windows/wsl/install

评论