← 返回笔记总目
Tech Notes · 01

WSL2安装与配置笔记

作者:若瑾 · 2026-09-18 · 踩坑实录

让我最终选择WSL的主要原因是AI编程工具的兼容性。之前在Codex里开发一个中文网站时,文件里的中文被改成了乱码,后来安装了PowerShell 7才解决。这类问题并非个例:多数Agent在Windows环境下容易遇到编码、路径、终端等方面的兼容问题。另外,各个Agent会在Windows的user文件夹里生成大量缓存、配置和临时文件,目录容易变得杂乱。把开发环境放进WSL这样一个相对独立的环境里,可以避开这些问题。

WSL2说明

1.什么是WSL 2

WSL全称Windows Subsystem for Linux,顾名思义:

让你在Windows里直接运行Linux。

WSL 2是它的第二代。不需要装双系统,也不需要单独开传统虚拟机,就能在Windows 11里获得一个完整的Linux环境。

对新手来说比较友好,因为可以:

  • 大多人的设备依然是Windows,且对其也更为熟悉
  • 文件更好取用,不需要烦琐地互传
  • 玩坏就算,没有负担
  • 方便安装各种Linux环境下的开发工具,不被cmd与PowerShell绊脚
  • 连接VS Code非常方便

2.WSL 2能做什么

WSL 2的常见用途包括:

  1. 学习与接触Linux
  2. 开发环境的搭建
  3. 运行Git、Python、curl、wget等常用工具
  4. 运行在Linux下使用更适合的软件
  5. 和VS Code搭配进行开发

如果之后打算接触Python、前端开发、后端开发、Git/GitHub、Docker,WSL 2都能派上用场。


3.WSL 2和WSL 1的区别

一个版本号的区别,实际体验天差地别。

WSL 1的特点

  • 没有完整的Linux内核
  • 文件读写和兼容性存在局限
  • 部分Linux程序无法正常运行

WSL 2的特点

  • 使用真正的Linux内核
  • 对Linux软件的兼容性更好
  • Docker、各类开发工具和脚本更容易运行
  • 性能通常更好,尤其是Linux原生任务

结论

对Windows用户来说:

直接使用WSL 2,不必考虑WSL 1。

安装

说明:本文以Ubuntu-24.04作为演示发行版。

0.安装前的准备

开始安装前,先确认电脑满足基本条件。

基本条件

  1. 系统推荐Windows 10及以上,最好是Windows 11
  2. 拥有管理员权限
  3. 已开启虚拟化
  4. 网络可正常链接公网(甚至外网)

1.更新WSL内核&设置默认版本

开启虚拟化后一般需要重启一次。重启之后,在管理员权限的PowerShell下执行:

# 更新WSL到最新版本(包含内核更新)
wsl --update

# 设置默认使用WSL 2(不是WSL 1)
# Windows 10用户需要执行此命令,否则默认使用WSL 1
wsl --set-default-version 2

如果wsl --update下载速度较慢,可以二选一:

  1. 改用命令:wsl --update --web-download
  2. 去GitHub手动下载:地址

注意不要忘记将默认版本设置为2。


2.安装发行版Ubuntu

2.1查看可安装的发行版

wsl --list --online

这条命令会列出当前支持在线安装的Linux发行版。列表中可以看到多个可选项,选择自己喜欢的,下文以Ubuntu为例。

2.2安装Ubuntu-24.04

wsl --install -d Ubuntu-24.04

2.3设置管理员账户和密码

安装完成后会提示创建新用户,按提示输入用户名和密码即可。

注意:用户名以字母或下划线开头,后面可接字母、下划线和数字。然后按Ctrl + D退出即可(原因见下文)。


3.迁移发行版镜像到指定目录

通过命令行安装的发行版默认在系统盘,我对C盘空间管理极其敏感,因此需要将镜像迁移到其他盘,多了这一步。如果恰巧财力雄厚,C盘空间大出天际可以跳过。

3.1在目标位置建立文件夹

按自己的习惯设置目录结构,下文路径仅供参考。

  • 文件目录:D:\wsl
  • 发行版:Ubuntu-24.04
  • 对应路径:D:\wsl\Ubuntu-24.04

3.2将已安装的Ubuntu导出为tar压缩包

先确认发行版名称,并关闭WSL:

# 列出已安装的WSL发行版名称、运行状态和版本号
wsl -l -v

# 关闭所有正在运行的WSL实例,避免迁移时文件占用
wsl --shutdown
wsl --export Ubuntu-24.04 D:\wsl\Ubuntu-24.04\Ubuntu-24.04.tar
# 把名为Ubuntu-24.04的发行版导出为一个tar备份文件,保存到D盘指定位置

注意检查:XXX.tar导出后,建议确认以下几点(后续还要用到):

  • 导出确实成功
  • XXX.tar文件确实存在
  • 文件大小不是0 KB

3.3注销原来的发行版(位于系统盘的那个)

注销会删除原发行版及其中的全部数据。请先确认上一步导出成功、备份文件存在且大小正常,再执行下面的命令;重新导入并确认数据完整前,不要删除备份。

wsl --unregister Ubuntu-24.04

3.4将压缩包重新导入WSL

wsl --import Ubuntu-24.04 D:\wsl\Ubuntu-24.04 D:\wsl\Ubuntu-24.04\Ubuntu-24.04.tar --version 2

这条命令的作用:将之前导出的Ubuntu备份导入到指定目录,并指定以WSL 2运行。各参数的含义:

  • 第一个Ubuntu-24.04:导入后的发行版名称
  • D:\wsl\Ubuntu-24.04:新的安装位置,之后的数据都会存放在这里
  • D:\wsl\Ubuntu-24.04\Ubuntu-24.04.tar:作为导入源的备份文件
  • --version 2:指定导入为WSL 2

导入后,指定目录下会出现一个虚拟磁盘映像文件(ext4.vhdx),整个Ubuntu-24.04文件系统都存储在其中。

3.5启动Ubuntu

# 启动
wsl -d Ubuntu-24.04

# 检查
wsl -l -v

除了上述方法,也可以直接下载发行版的镜像文件再导入WSL,具体方法可自行探索。


4.进入Ubuntu之后的配置

4.1更新软件源

Ubuntu默认源位于国外,国内访问速度较慢。换成阿里源或清华源后,更新和下载会快很多(以下以阿里源为例)。

注意:Ubuntu 24.04起,软件源改用deb822格式,配置文件位置从原来的/etc/apt/sources.list变为/etc/apt/sources.list.d/ubuntu.sources,写法也和旧格式不同。

输入以下命令,用nano打开源文件(nano操作简单,适合新手):

sudo nano /etc/apt/sources.list.d/ubuntu.sources
  • 删除文件中的默认源
  • 将下面的阿里源内容(Ubuntu 24.04 LTS专用,来自阿里云镜像站)复制粘贴进去(在Ubuntu终端中右键即可粘贴)
  • 注意:deb822格式支持以#开头的整行注释;不同源配置段之间保留空行,不要把注释放在字段值后面
Types: deb
URIs: https://mirrors.aliyun.com/ubuntu
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb
URIs: https://mirrors.aliyun.com/ubuntu
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
  • 粘贴完成后,按Ctrl+O保存,按Enter确认,再按Ctrl+X退出
  • 执行以下命令使新源生效
# 更新软件包列表
sudo apt update

# 升级系统软件
sudo apt upgrade -y

4.2安装基础工具curl、wget、git、build-essential

sudo apt install -y curl wget git build-essential

5.安装过程中的补充说明

如何检查Windows 11版本

虽然已经在使用Windows 11,仍建议检查一下版本,避免系统过旧导致问题。

方法1:用“运行”窗口查看
  1. 按Win + R,输入winver
  2. 点击“确定”,弹出窗口会显示类似信息:Windows 11、版本22H2、23H2、24H2、OS内部版本
方法2:在设置里查看
  1. 打开设置 → 系统 → 关于
  2. 查看Windows规格中的版本与操作系统内部版本

不必追求最新版本,但尽量不要过旧;如果更新过程中需要重启,请先保存工作文件。

如何确认电脑是否开启虚拟化

WSL 2依赖虚拟化。如果未开启,WSL 2可能无法安装或启动。

方法1:任务管理器
  1. 按Ctrl + Shift + Esc打开任务管理器(简化界面先点“详细信息”展开)
  2. 切换到性能选项卡,选择CPU
  3. 在右侧查看虚拟化一项:已启用即已开启,已禁用则未开启
方法2:用命令查看系统信息

在普通的PowerShell或命令提示符中运行systeminfo,向下滚动找到虚拟化相关的内容,例如“虚拟化已在固件中启用”、“Hyper-V要求”。如果显示已启用,一般可以继续安装WSL 2。

如果未开启虚拟化,如何处理?

方法1:图形化界面
  1. 按Win + R,输入optionalfeatures,回车打开“Windows功能”窗口
  2. 勾选以下选项(注意不要漏选,虚拟机相关的选项我都勾选了):
    • 适用于Linux的Windows子系统
    • 虚拟机平台
    • 虚拟机监控程序平台
    • Windows Hypervisor Platform(部分系统可能没有此项)
    • Hyper-V(如果你的Windows版本支持)
  3. 点击“确定”,等待系统安装所选功能(约1-3分钟,视电脑配置而定)
  4. 安装完成后会提示“需要重启电脑才能生效”,点击“立即重启”(必须重启,否则后续步骤会失败)
方法2:命令行
# 启用“适用于Linux的Windows子系统”
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# 启用“虚拟机平台”(WSL2需要)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# /all:同时启用该功能依赖的父功能
# /norestart:启用功能后不会立即重启

执行完成后必须重启电脑,否则后续步骤很可能失败。

至此,安装教程结束

使用

一些集成和使用方法,方便更好地使用WSL。

文件放在哪:/mnt还是/home

WSL中可以通过/mnt访问Windows的盘符(例如/mnt/c对应C盘),但实际使用中存在两个问题:跨文件系统的读写性能较慢,路径引用也可能出现异常。因此我把项目文件都放在WSL的/home用户目录下使用。

这样做的代价是:所有文件都存储在虚拟磁盘(ext4.vhdx)中,如果WSL环境损坏,里面的数据也会受到影响。不过配合Git定期推送保存,相当于始终保留一份远程备份,这个问题基本可以解决。

在VS Code中连接WSL

1.在Windows中安装VS Code和WSL扩展

先在Windows中安装VS Code,再打开左侧的扩展面板,搜索并安装Microsoft发布的WSL扩展。

VS Code的界面运行在Windows中,项目文件、终端和开发工具运行在WSL中。因此,VS Code安装在Windows侧即可,项目需要的Git、Node.js、Python等工具则安装在Ubuntu中。

2.从左下角连接Ubuntu

  1. 点击VS Code左下角的远程连接图标,打开远程窗口菜单。
  2. 选择Connect to WSL using Distro...(使用发行版连接到WSL),再选择Ubuntu-24.04。如果只有一个默认发行版,也可以直接选择Connect to WSL(连接到WSL)。
  3. 首次连接时,VS Code会自动在这个发行版中安装VS Code Server,等待连接完成即可。这是让Windows中的编辑器连接WSL的服务,不会替你安装项目需要的编译器或其他开发依赖。
  4. 连接完成后,左下角应显示WSL: Ubuntu-24.04。菜单名称可能随界面语言和版本略有不同,也可以按F1,搜索并运行WSL: Connect to WSL using Distro。

首次连接需要联网下载安装VS Code Server,可能会比之后连接慢一些。如果提示安装失败,先检查网络,再重新连接。

3.打开Linux目录下的代码仓库

在已经连接WSL的窗口中,选择文件 → 打开文件夹,找到自己的项目目录,例如:

/home/<用户名>/workspace/<仓库名>

这里的<用户名>和<仓库名>需要换成实际名称。第一次打开自己的仓库时,如果出现工作区信任提示,确认目录和内容可信后再信任。

打开后,窗口标题或资源管理器的工作区名称通常会显示类似:

仓库名 [WSL: Ubuntu-24.04]

看到Linux目录下的仓库,并且左下角显示WSL: Ubuntu-24.04,就说明当前是在WSL环境中开发。标题的具体格式、冒号后的空格可能因VS Code版本和设置而不同,以左下角的连接状态为准。

接着选择终端 → 新建终端,执行:

pwd

输出应该是自己的Linux项目路径,例如/home/ruojin/workspace/my-project,而不是Windows的C:\...路径。如果输出是/mnt/c/...,虽然终端已经运行在WSL中,项目文件仍然放在Windows盘里,可以按上一节的建议将项目放到/home下。

4.也可以从WSL终端直接打开

如果已经在Ubuntu终端中,进入项目目录后执行code .,也能直接打开连接到WSL的VS Code窗口:

# 将my-project替换为自己的仓库目录
cd ~/workspace/my-project
code .

其中.代表当前目录。首次使用同样会安装VS Code Server,之后通常可以直接打开。若提示找不到code命令,检查Windows侧是否已安装VS Code并加入PATH,然后关闭并重新打开WSL终端。

某些扩展需要安装在WSL侧才能使用。连接后,如果扩展面板出现安装到WSL: Ubuntu-24.04的按钮,按项目需要安装即可。

参考:VS Code官方WSL文档、官方入门教程。