跳到主要内容

安装WSL子系统教程


安装WSL子系统教程


1. 前提条件与准备工作

  • 操作系统要求:
    • Windows 10:要求版本 2004 及 Build 19041 以上,或
    • Windows 11
  • 网络环境:部分地区需要设置代理。
  • 管理员权限:安装及部分配置需要以管理员身份运行 PowerShell 或 CMD。
  • 存储空间及磁盘规划:WSL 会在系统盘或你指定的目录中保存 Linux 文件系统,提前规划好存储位置与空间。

2. WSL 安装方法

2.1 一键安装(推荐)

适用于 Windows 10 版本 2004、Build 19041 及以上,以及 Windows 11;旧系统按官方手动安装说明处理。步骤如下:

  1. 打开 PowerShell(管理员模式):
    在开始菜单搜索 “PowerShell”,右键选择“以管理员身份运行”。
  2. 执行安装命令:
    wsl --install
    此命令会自动启用 WSL 相关组件、虚拟机平台,并默认安装最新的 WSL 版本(通常为 WSL2)和默认 Linux 发行版(一般为 Ubuntu)。
  3. 重启电脑:安装完成后系统会提示重启以完成配置。

2.2 手动安装

对于需要更多自定义选项的用户,手动安装步骤如下:

(1)启用 WSL 和虚拟机平台功能

在管理员模式下打开 PowerShell,依次执行:

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

执行后重启计算机。

(2)安装 WSL2 内核更新包

旧版 Windows 组件式安装按 WSL 手动安装说明 选择匹配架构的内核包。使用商店版 WSL 时通常通过 wsl --update 更新,不需要把旧式内核包当作所有安装的必经步骤。

(3)设置默认 WSL 版本为 WSL2

再次打开 PowerShell(无需管理员模式也可),执行:

wsl --set-default-version 2

(4)安装 Linux 发行版

有两种方式:

  • 通过 Microsoft Store:搜索 Ubuntu、Debian 等,选择版本(如 Ubuntu 22.04 LTS),点击“获取”并完成安装;与下方命令行安装二选一,无需重复安装同一发行版。
  • 命令行安装:查看支持的在线发行版列表:
    wsl --list --online
    安装指定版本(示例名称需要出现在上面的在线列表中):
    wsl --install -d Ubuntu-22.04

3. Linux 发行版安装及首次使用

  1. 首次启动:安装完成后,从“开始菜单”启动对应 Linux 发行版。
  2. 创建用户:系统会提示你为 Linux 系统创建用户名(使用发行版允许的普通用户名)和密码,这样你就可以使用 sudo 提权操作。
  3. 更新系统:
    sudo apt update && sudo apt upgrade
  4. 安装常用软件:根据需要安装 git、vim、python3 等:
    sudo apt install git vim python3

4. WSL 版本切换:WSL1 与 WSL2

WSL 中各发行版可以独立设置为 WSL1 或 WSL2。查看所有已安装发行版及其版本:

wsl -l -v

输出示例:

 NAME            STATE           VERSION
* Ubuntu-22.04    Running         2
  Ubuntu-20.04    Stopped         2
  Debian          Stopped         1

切换版本

  • 将发行版切换为 WSL2:
    $Distro = "Ubuntu-22.04" # 改为 wsl -l -v 中的实际名称
    wsl --set-version $Distro 2
    例如:
    wsl --set-version Debian 2
  • 将发行版切换为 WSL1(如有需求):
    $Distro = "Ubuntu-22.04"
    wsl --set-version $Distro 1
  • 设置默认安装版本:在安装新发行版时,可以用下面命令设置默认版本:
    wsl --set-default-version 2

转换前备份发行版和项目文件。转换耗时与数据量有关,也可能因兼容性或磁盘空间失败;--set-default-version 只改变以后新安装发行版的默认值,不会转换已有实例。


5. 附加功能与进阶用法

5.1 Windows 与 WSL 文件共享

  • WSL 文件系统访问:
    在 WSL 中可通过 /mnt/c/ 等路径访问 Windows 磁盘。例如访问 C:\Users\YourName:
    cd /mnt/c/Users/YourName
  • 在 Windows 中访问 WSL 文件:
    可使用 File Explorer 直接访问:在地址栏输入 \\wsl$,会显示所有已安装的 WSL 发行版及其文件系统。
  • 同步代码与项目文件:
    同一路径是访问同一份文件,不是自动同步副本。主要用 Linux 工具构建的项目通常放在 WSL 的 Linux 文件系统中,通过 Windows 的 \\wsl$ 或 explorer.exe . 访问;跨文件系统操作的性能和权限语义需要另行考虑。

5.2 WSL GUI 应用(WSLg)

WSLg 要求 WSL 2,以及 Windows 10 Build 19044 及以上或 Windows 11,并需要相应 GPU 驱动。配置方法如下:

  1. 确保 WSL 更新至最新版本:执行
    wsl --update
  2. 启动 GUI 应用(以下用简单的 X11 应用测试):
    sudo apt install x11-apps
    xeyes

WSLg 会自动启动并显示 Linux GUI 应用,无需额外配置 X 服务器。

5.3 代理设置

如果你处于网络环境受限或想加快下载速度,可以设置代理。

(1)区分 Windows 系统代理与终端代理

Windows 设置中的系统代理,与当前终端的 http_proxy / https_proxy 环境变量不是一回事;应用是否采用它们取决于自身实现。只想影响当前 PowerShell 及其子进程时,例如:

$env:http_proxy = "http://127.0.0.1:7890"
$env:https_proxy = "http://127.0.0.1:7890"

端口按代理软件实际的 HTTP / mixed 监听端口修改。这不会自动设置所有 Windows 服务,也不等于 WSL 已获得可用代理地址。

(2)在 WSL 中连接 Windows 代理

WSL 2 的 NAT 模式下,Linux 中的 127.0.0.1 通常指向 WSL 自己。先在 WSL 中查询默认网关,再测试 Windows 代理是否在该地址可访问:

PROXY_HOST=$(ip -4 route show default | awk 'NR==1 {print $3}')
PROXY_PORT=7890
printf 'Windows proxy host: %s\n' "$PROXY_HOST"

确认地址非空、端口正确,并且 Windows 代理允许来自该虚拟网络的连接,再设置:

export http_proxy="http://${PROXY_HOST}:${PROXY_PORT}"
export https_proxy="$http_proxy"
curl --proxy "$http_proxy" --connect-timeout 10 -I https://example.com

镜像网络模式可以通过 127.0.0.1 访问 Windows 服务;支持 autoProxy 的环境也可按微软说明继承 Windows HTTP 代理信息。应先确认网络模式,不能将同一地址写法套给所有 WSL 2 环境。HTTPS 目标使用 HTTP 代理时,代理 URL 仍可为 http://。

完整排查可参见WSL 2 通过 Windows v2rayN 代理上网。

(3)APT 单次代理

确认上面的 HTTP 代理可用后,可以只为一次 APT 操作指定:

sudo apt -o Acquire::http::Proxy="$http_proxy" -o Acquire::https::Proxy="$http_proxy" update

需要长期配置时再编辑 /etc/apt/apt.conf.d/99proxy,使用已经验证的实际地址;NAT 网关地址变化后要同步调整。不要把未验证的 127.0.0.1 固定写入所有实例。

5.4 多实例安装(同一版本多个副本)

WSL 允许你导入同一 Linux 发行版的多个副本,便于隔离不同任务。操作步骤如下:

  1. 导出已有实例
    假设已安装 Ubuntu-20.04,用以下命令导出为 .tar 文件:
    wsl --export Ubuntu-20.04 D:\wsl-backups\ubuntu-20.04.tar
  2. 导入为新实例
    用新名称(例如 Ubuntu-Dev)创建副本:
    wsl --import Ubuntu-Dev D:\WSL\Ubuntu-Dev D:\wsl-backups\ubuntu-20.04.tar --version 2
  3. 启动新实例
    使用下面命令启动新导入的实例:
    wsl -d Ubuntu-Dev

这样你就可以在同一台机器上同时运行多个独立的 Linux 环境。


6. 常用命令与管理技巧

  • 查看已安装发行版及版本:
    wsl -l -v
  • 启动指定发行版:
    $Distro = "Ubuntu-22.04"
    wsl -d $Distro
  • 设置默认发行版(直接运行 wsl 时启动的系统):
    $Distro = "Ubuntu-22.04"
    wsl --set-default $Distro
  • 切换 WSL 版本:
    $Distro = "Ubuntu-22.04"
    wsl --set-version $Distro 2
  • 更新 WSL 内核:
    wsl --update
  • 关闭所有运行中的 WSL 实例:先保存工作,它会终止所有发行版中的进程,也可能影响依赖 WSL 的应用:
    wsl --shutdown
  • 注销某个发行版:wsl --unregister 会永久删除该实例的文件系统,与停止运行不同。先导出并验证备份,再核对目标名称:
wsl --unregister 发行版名称

导出前确保备份目录存在且目标文件名未被占用,先停止相关写入或正常停机以保证数据一致性;导入目录应专用于新实例。先验证新副本能启动、数据完整,再考虑处理旧实例。

参考:WSL 安装、基础命令、网络模式与代理、WSLg。


文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
赏
评论

评论将在接近此处时加载,也可点击立即加载。

  目录