在 Windows 11 上启用 WSL
首先需要了解:
- WSL 是 Windows 的运行平台
- Ubuntu 是运行在 WSL 中的 Linux 系统
- 安装流程应明确分为两步:
- 在 Windows 中启用 WSL 平台
- 在 WSL 中安装 Ubuntu 发行版
WSL 至少有 3 个层次
1 | Windows 11 |
GitHub:[microsoft/WSL: Windows Subsystem for Linux]
在 Windows 11 中启用 WSL
在安装任何 Linux 发行版之前,需要先确保 Windows 已正确启用 WSL 运行环境。
1. 检查 WSL 当前状态
打开 命令提示符 / PowerShell(管理员),执行:
1 | wsl --status |
可能出现类似输出:
1 | 默认版本: 2 |
说明:
- 当前系统尚未启用完整的 WSL2 运行条件
- 需要开启 Windows 相关功能并确保 BIOS 虚拟化已打开
2. 启用 Windows 功能
打开:
1 | 控制面板 → 程序 → 启用或关闭 Windows 功能 |
勾选以下选项:
- ✅ Windows Subsystem for Linux
- ✅ Windows 虚拟机监控程序平台
说明:
- 部分 Windows 11 版本(如家庭版)可能看不到 “Hyper-V”,这是正常的
- WSL2 并不要求你启用 Hyper-V 管理器界面,只要底层虚拟化能力可用即可
完成后 重启系统。
3. 再次检查 WSL 状态
重启后执行:
1 | wsl --status |
如果输出类似:
1 | 默认版本: 2 |
说明:
- WSL 平台已经可以正常使用
- 但此时 尚未安装任何 Linux 发行版
可以通过以下命令验证:
1 | wsl --list --verbose |
输出示例:
1 | 适用于 Linux 的 Windows 子系统没有已安装的分发。 |
这表示:WSL 平台已就绪,但还没有安装 Ubuntu / Linux。
在 WSL 平台中安装 Ubuntu
完成 WSL 平台准备后,接下来才是安装真正的 Linux 系统。
4. 查看可安装的 Linux 发行版
1 | wsl --list --online |
示例输出:
1 | NAME FRIENDLY NAME |
5. 安装 Ubuntu
以安装 Ubuntu 为例:
1 | wsl --install Ubuntu |
执行过程包括:
- 下载 Ubuntu RootFS
- 创建虚拟磁盘(ext4.vhdx)
- 初始化 Linux 系统
安装完成后会提示:
1 | 已成功安装分发。它可通过 “wsl.exe -d Ubuntu” 启动 |
6. 初始化 Ubuntu
也就是创建 Linux 用户。首次启动 Ubuntu 时,会进行 Linux 系统初始化:
1 | Create a default Unix user account: |
注意:
- Linux 用户名 必须小写
- 不能使用大写字母
示例:
1 | wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。 |
完成后会看到欢迎信息:
1 | Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 5.15.x-microsoft-standard-WSL2) |
说明:
- Ubuntu 已成功安装
- Linux 正在通过 WSL2 运行
- Windows 仅作为宿主系统存在
手动下载 Linux 版本
Microsoft 官方 WSL 仓库中用于描述受支持发行版及其下载地址的配置文件:DistributionInfo.json
这个文件里记录了 WSL 所支持的 Linux 发行版,挑选一个下载即可。这里比如选择了 Ubuntu-24.04。将这个 wsl 文件下载到一个本地文件夹中,这可以看成一个软件安装包。其本质上是一个 WSL 发行版的 rootfs 打包文件,类似于容器镜像,用于初始化 Linux 根文件系统。
安装 wsl 到指定文件夹
通过这个命令来安装刚下载的 Linux 发行版:
1 | wsl --install --from-file D:\wsl\rootfs\ubuntu-24.04.3-wsl-amd64.wsl --location D:\wsl\ubuntu --name ubuntu-24.04 |
wsl --install:表示安装 wsl 的 Linux 发行版--from-file:后面跟着 wsl 的路径,表示从本地 wsl 文件安装--location:表示安装到的位置,这里安装到了D:\wsl\ubuntu这个位置--name:Linux 发行版的名称
这样,Linux 就直接安装到了 D 盘的指定文件夹,而前面下载的 wsl 文件,在安装完成之后就可以删除。
常用命令
1 | wsl --list --verbose # 查看可用的 WSL 发行版 |
在 Windows 命令行
1 | C:\Users\username>wsl pwd |
创建 /etc/wsl.conf,禁用 Windows 访问 Linux 文件系统:
1 | [automount] |
这样可以 加速 WSL 访问 Windows 文件系统,避免不必要的同步。
使用 wsl --shutdown 释放 WSL 资源:
1 | wsl --shutdown |
访问 WSL 目录
在 Windows 资源管理器 中访问 WSL 目录:
- 打开 资源管理器 - 地址栏
\\wsl$,看到 WSL 安装的所有 Linux 发行版,比如Ubuntu。 - 进入
\\wsl$\Ubuntu\home\yourname,像管理普通文件一样操作 WSL 里的文件。
在 WSL 中遇到 ls 命令显示中文文件名出现 ?????? 的问题,通常是由于字符编码或语言环境(Locale)设置不正确导致的。以下是解决方法:
自定义配置
语言配置
检查并设置正确的 Locale
WSL 默认可能未配置中文语言环境,需要手动启用:
1 | # 查看当前 locale 设置 |
重启 WSL 后生效(关闭终端重新打开)。
迁移 WSL 位置
将 WSL 从 C 盘迁移到 D 盘。
当前版本
1 | >wsl --list --verbose |
关闭 wsl、注销、导出为归档文件
1 | wsl --shutdown |
导入并启动
1 | wsl --import Ubuntu "D:\software\WSL\Ubuntu" "D:\software\WSL\ubuntu_backup.tar" --version 2 |
.wslconfig 是用户级、可选、默认不存在、只有自己“手动创建”才会出现。
如果要配置 swap 存储位置,可以手动创建 C:\Users\<用户名>\.wslconfig:
1 | [wsl2] |
现在电脑内容基本大于 16GB,所以可以直接关闭 swap:
1 | [wsl2] |