Windows11中 WSL2全方位安装与实战指南

目录里

    • 前言
    • [1 WSL简介](#1 WSL简介)
      • [1.1 什么是 WSL](#1.1 什么是 WSL)
      • [1.2 WSL 与虚拟机、双系统的对比](#1.2 WSL 与虚拟机、双系统的对比)
    • [2 安装 WSL2的 前置条件](#2 安装 WSL2的 前置条件)
    • [3 安装 WSL2的步骤](#3 安装 WSL2的步骤)
      • [3.1 一键安装命令](#3.1 一键安装命令)
      • [3.2 初始化配置](#3.2 初始化配置)
      • [3.3 首次进入系统](#3.3 首次进入系统)
    • [4 WSL2 的使用](#4 WSL2 的使用)
      • [4.1 启动和关闭 WSL](#4.1 启动和关闭 WSL)
      • [4.2 WSL 与 Windows 的文件交互](#4.2 WSL 与 Windows 的文件交互)
      • [4.3 WSL 基础命令清单](#4.3 WSL 基础命令清单)
    • [5 WSL2 的常见问题以及解决办法](#5 WSL2 的常见问题以及解决办法)
      • [问题 1:启动提示"未启用虚拟机器平台"或"0x80370102"错误](#问题 1:启动提示“未启用虚拟机器平台”或“0x80370102”错误)
      • [问题 2:终端显示中文乱码](#问题 2:终端显示中文乱码)
      • [问题 3:WSL 无法访问网络(无法执行 apt update)](#问题 3:WSL 无法访问网络(无法执行 apt update))
      • [问题 4:忘记了 Linux 的用户名或密码](#问题 4:忘记了 Linux 的用户名或密码)
    • 结语
    • 参考资料

前言

在过去很长一段时间里,开发者往往面临着"鱼与熊掌不可兼得"的窘境:Windows 拥有卓越的图形界面和丰富的日常办公软件,而 Linux 则是程序开发、服务器部署和科学计算的天然温床。为了同时拥有这两个环境,我们不得不折腾复杂的虚拟机(VM)或是存在风险的双系统。

随着微软"拥抱开源"战略的推进,Windows Subsystem for Linux (WSL) 应运而生。它不是简单的模拟器,而是一个让 Linux 二进制程序原生运行在 Windows 上的兼容层。经过数年的迭代,WSL2 更是引入了完整的 Linux 内核。本文将带你深度领略 WSL 的魅力,从底层原理到安装实战,再到进阶技巧,助你打造一套完美的跨平台开发环境。

1 WSL简介

1.1 什么是 WSL

WSL 全称为 Windows Subsystem for Linux,即"适用于 Linux 的 Windows 子系统"。它是微软开发的一项技术,允许用户在不安装第三方虚拟机软件(如 VMware、VirtualBox)的情况下,直接在 Windows 10 或 Windows 11 上运行 Linux 环境。

目前的 WSL 主要分为两个版本:

  • WSL 1:通过翻译层将 Linux 系统调用转换为 Windows NT 系统调用,不需要虚拟化,但兼容性有限。
  • WSL 2 :这是目前的推荐版本。它内置了一个由微软优化的完整 Linux 内核,基于高度优化的轻量级虚拟机(Hyper-V)技术运行,实现了真正的 Linux 系统调用兼容性,并极大提升了文件系统的读写性能。

1.2 WSL 与虚拟机、双系统的对比

在 WSL 出现之前,我们通常有两种选择:双系统或传统虚拟机。下表详细对比了这三种方案:

特性 WSL 2 (推荐) 传统虚拟机 (VMware/VB) 双系统 (Windows + Linux)
启动速度 极快(秒级启动) 较慢(需加载整个系统) 取决于硬件(需重启切换)
资源占用 动态分配内存,开销极低 预分配内存,开销巨大 运行哪个系统占哪个资源
系统交互 无缝集成,文件直接互通 需配置共享文件夹,较麻烦 完全隔离,交互极难
硬件支持 支持 GPU 加速 (CUDA) 虚拟显卡,性能较差 原生硬件驱动,性能最强
易用性 命令行为主,集成度高 完整桌面,但操作笨重 需反复重启,影响连续性

总结: WSL 结合了 Windows 的便利和 Linux 的强大生态。它适合那些既需要使用 Office、Adobe 等 Windows 软件,又需要使用 Git、Docker、Python、C++ 等 Linux 开发工具链的开发者。

2 安装 WSL2的 前置条件

在正式开始安装之前,我们需要确保电脑的硬件和软件环境满足基本要求,否则可能会出现安装失败或无法启动的情况。

2.1 Windows 系统版本

WSL 2 对系统版本有一定的要求。

  • Windows 10:版本号需在 1903 或更高,且内部版本需为 18362 或更高。
  • Windows 11:全系列支持。
  • 检查方法 :按下 Win + R,输入 winver 并回车。如果版本过低,请先通过 Windows 更新进行系统升级。

2.2 硬件与内存要求

  • 处理器:支持虚拟化技术(Virtualization Technology)。大多数近 10 年内的 Intel 和 AMD CPU 都支持。
  • BIOS 设置:必须在 BIOS/UEFI 设置中开启"虚拟化开关"(通常标记为 VT-x 或 AMD-V)。如果未开启,WSL 将无法启动。
  • 内存:建议至少 8GB 内存。虽然 WSL 很轻量,但在编译大型项目或运行容器时,内存依然是性能保障。

2.3 功能设置

安装 WSL 需要在 Windows 功能中开启相关支持。这里提供两种方法:

设置方法一:图形界面操作
  1. 按下 Win + R,在运行框输入 optionalfeatures 并回车。
  2. 在弹出的"启用或关闭 Windows 功能"窗口中,找到并勾选以下两项:
    • 适用于 Linux 的 Windows 子系统
    • 虚拟机器平台
  3. 点击确定,等待 Windows 安装相关组件。
设置方法二:命令行(高效快捷)

如果你更喜欢简洁的操作,可以以管理员身份打开 PowerShell,依次执行以下命令:

  1. 启用 WSL 功能:

    PowerShell

    复制代码
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  2. 启用虚拟机器平台功能:

    PowerShell

    复制代码
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重要提示: 完成上述设置(无论是方法一还是方法二)后,必须重启电脑才能使配置生效。

3 安装 WSL2的步骤

重启电脑后,我们就可以正式开始安装 Linux 发行版了。

3.1 一键安装命令

现代版本的 Windows 已经极大简化了安装流程。请以管理员身份打开「Windows 终端」或「PowerShell」。

如果你直接输入 wsl --install,系统会默认安装 Ubuntu。但为了更好的管理,我们推荐指定版本和安装路径。执行以下命令:

复制代码
wsl --install -d Ubuntu-24.04 --location D:\WSL\Ubuntu
  • -d Ubuntu-24.04:指定安装 Ubuntu 24.04 LTS。这是目前最新的长期支持版,稳定且软件包丰富。
  • --location D:\WSL\Ubuntu :这是一个非常实用的参数。默认情况下,WSL 会安装在 C 盘。随着你安装的软件和存放的数据增多,C 盘空间会迅速告急。通过此命令,你可以将整个 Linux 系统安装到非系统盘(如 D 盘)。

3.2 初始化配置

安装过程会下载几百兆的资源包,速度取决于你的网络环境。下载完成后,系统会自动弹出一个新的黑色终端窗口。

  1. 设置用户名 :系统提示 Enter new UNIX username:。输入一个你喜欢的名称(建议小写,不要包含中文或空格)。
  2. 设置密码 :提示 New password:。输入时屏幕不会显示任何字符(这是 Linux 的安全特性),输完回车即可。
  3. 确认密码:再次输入密码并回车。

看到 Installation successful! 字样后,恭喜你,你已经成功踏入了 Linux 的世界。

3.3 首次进入系统

进入系统后,第一件事通常是更新软件包索引。在 Ubuntu 终端中执行:

Bash

复制代码
sudo apt update && sudo apt upgrade -y

sudo 代表以管理员权限执行,系统会要求你输入刚才设置的密码。

4 WSL2 的使用

学会安装只是第一步,掌握如何高效地在 Windows 和 WSL 之间切换和协作才是关键。

4.1 启动和关闭 WSL

  • 启动方法
    1. 菜单启动:在 Windows 开始菜单搜索"Ubuntu",点击图标直接打开。
    2. 终端启动 :在任何 PowerShell 或 CMD 窗口中输入 wsl,即可快速切换到默认的 Linux 环境。如果安装了多个版本,使用 wsl -d 发行版名称
  • 关闭方法
    1. 正常退出 :在 Linux 终端输入 exit 或直接关闭窗口。此时 WSL 仍在后台运行。
    2. 彻底关闭 :如果你发现电脑变卡或 WSL 出现故障,可以在 Windows PowerShell 中输入 wsl --shutdown。这会强制停止所有运行中的 WSL 实例。

4.2 WSL 与 Windows 的文件交互

这是 WSL 优于虚拟机最核心的功能------无缝的文件系统互通

  • 在 Linux 中访问 Windows 文件

    Windows 的磁盘会被自动挂载到 Linux 的 /mnt/ 目录下。

    • C 盘路径:/mnt/c

    • D 盘路径:/mnt/d

      例如,你想进入 D 盘的 Work 文件夹,只需执行 cd /mnt/d/Work

  • 在 Windows 中访问 Linux 文件

    这是很多新手忽略的功能。你可以在 Windows 文件资源管理器的地址栏直接输入 \\wsl$ 并回车。你会看到一个网络驱动器,里面完整地展示了 Linux 系统内部的文件。你可以像操作普通文件夹一样,在两者之间进行复制、粘贴和拖拽。

4.3 WSL 基础命令清单

为了方便大家快速上手,这里整理了一份最常用的操作指令表:

操作 命令 (在 Windows 执行) 命令 (在 Linux 执行)
查看安装了哪些系统 wsl -l -v -
更新软件库 - sudo apt update
安装常用工具 - sudo apt install <软件名>
查看当前路径 - pwd
列出文件 - ls -al
编辑文件 - nano <文件名>vim
检查 WSL 版本 wsl --version -

5 WSL2 的常见问题以及解决办法

即使操作正确,环境的复杂性也可能导致各种"奇葩"报错。以下是四个最高频的问题及对策。

问题 1:启动提示"未启用虚拟机器平台"或"0x80370102"错误

  • 原因:这通常是因为 BIOS 中的虚拟化技术(VT)未开启,或者 Windows 功能勾选后没有生效。
  • 解决
    1. 重启电脑进入 BIOS,确保 Intel Virtualization TechnologySVM Mode 设置为 Enabled
    2. 再次检查 optionalfeatures 中"虚拟机器平台"是否勾选。
    3. 尝试在 PowerShell 执行 bcdedit /set hypervisorlaunchtype auto 并重启。

问题 2:终端显示中文乱码

  • 原因:Linux 默认语言环境可能未设置为 UTF-8。
  • 解决
    1. 在 WSL 终端中执行:sudo dpkg-reconfigure locales
    2. 在列表中找到 en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8
    3. 使用空格选中它们,按回车。
    4. 在下一个界面选择 zh_CN.UTF-8 作为默认语言,重启终端。

问题 3:WSL 无法访问网络(无法执行 apt update)

  • 原因:WSL 2 使用虚拟网卡,有时会与 Windows 防火墙或第三方加速器产生冲突。
  • 解决
    1. 重置网络 :管理员打开 PowerShell 执行 wsl --shutdown,然后执行 netsh winsock reset
    2. 修改 DNS :在 WSL 内编辑 /etc/resolv.conf,将 nameserver 修改为 8.8.8.8114.114.114.114

问题 4:忘记了 Linux 的用户名或密码

  • 原因:长时间未用或设置时过于草率。
  • 解决
    1. 在 Windows 终端输入 wsl -u root。这会以最高权限直接进入 Linux,不需要密码。
    2. 执行 passwd <你的用户名>,然后按提示输入两次新密码。
    3. 退出重新进入即可。

结语

WSL 的出现,彻底改变了 Windows 上的开发体验。它既保留了 Windows 强大的图形生态和办公能力,又赋予了开发者近乎原生的 Linux 性能。通过本文的指引,相信你已经成功搭建了自己的 Linux 子系统。

然而,这只是开始。在接下来的进阶学习中,你还可以尝试在 WSL 中配置 Docker 容器、使用 VS Code 的 Remote-WSL 插件进行丝滑的代码编写,甚至是运行图形化的 Linux 应用。Linux 的世界广阔无垠,而 WSL 正是连接你与那个世界的最佳桥梁。


参考资料

  1. https://learn.microsoft.com/en-us/windows/wsl/
  2. https://github.com/microsoft/WSL
相关推荐
文静小土豆2 小时前
标签和选择器(Label和 Selector)
linux·前端
攻城狮在此2 小时前
MobaXterm下载安装及SSH远程连接(交换机/路由器/服务器)
linux·运维·服务器·网络
mounter6253 小时前
【LSF/MM内核前沿】Linux 内存回收推倒重来?解析 MGLRU 与传统 LRU 的“统一之战”
linux·运维·服务器·网络·内核·内存回收
Exquisite.3 小时前
k8s的Pod管理
linux·运维·服务器
IMPYLH3 小时前
Linux 的 env 命令
linux·运维·服务器·数据库
抠脚学代码3 小时前
Linux开发--> UBoot学习
linux·学习·uboot
奇妙之二进制3 小时前
后端常见分层模型
linux·服务器
拾贰_C3 小时前
【Ubuntu | Nvidia 】nvidia 驱动安装
linux·运维·ubuntu
zzzsde3 小时前
【Linux】EXT文件系统(2)
linux·运维·服务器