一、历史背景

从今往前推十多年,微软因Linux免费、开源抢了Windows不少市场份额和营收,于是该公司CEO Steve Ballmer 还曾公开宣称 Linux 是「癌症」。但随着技术转移动互联网,云计算,微软为了与VMware等虚拟化厂商竞争,它在Hyper-V虚拟化平台上增加了对Linux的原生支持,用HV虚拟化跑Linux,这种方式需要消耗大量的系统资源,并且宿主机(Host OS)与Linux虚拟机(Guest OS)两者数据传输也很麻烦,于是在2017年,发布了适用于Linux的windows子系统,全名叫Windows Subsystem for Linux,简称WSL。在2019年,微软又基于HV架构,推出了WSL第二版叫,WSL2。

二、WSL2是什么?

WSL2(Windows Subsystem for Linux 2)是微软开发的第二代Windows子系统,允许用户在Windows系统上原生运行Linux环境。它是WSL1的升级版本,通过更深入的架构改进提升了性能、兼容性和功能性。

三、WSL2的核心作用

  1. 无缝运行Linux应用 直接在Windows上执行Linux命令行工具、脚本和应用程序(如Python、GCC、Docker等),无需双系统或安装第三方虚拟化软件如vmware workstation,Visualbox。

  2. 高性能

    • 基于轻量级虚拟机(Hyper-V)运行完整的Linux内核,文件I/O和系统调用性能显著优于WSL1。

    • 尤其适合需要大量文件操作的任务(如代码编译、数据库操作)。

  3. 与Windows深度交互

    • 访问Windows文件系统(通过/mnt/c等路径),双向调用Windows和Linux程序。

    • 支持GPU加速(CUDA/DirectML)和网络端口互通。

  4. 简化运维与学习

    • 运维人员可在Windows上直接使用Linux工具(如grepawkssh)。

    • 学习Linux命令和脚本的便捷平台。

四、WSL2与WSL1功能对比

功能/特性 WSL 1 WSL 2
架构 基于兼容层的模拟,无完整Linux内核 基于完整的Linux内核,使用轻量级虚拟机(Hyper-V)
性能 相对较低,文件系统操作较慢 性能显著提升,尤其在I/O密集型操作中(如文件系统操作)
系统调用支持 不完全支持Linux系统调用,兼容性有限 完全支持Linux系统调用,兼容性更好
文件系统 Linux应用程序文件存储在Windows文件系统中 使用虚拟磁盘(VHDX)存储Linux文件系统,性能更好
文件系统访问 通过跨平台共享的Windows文件系统进行访问 使用虚拟机内的ext4文件系统,性能更优
内核支持 没有Linux内核,模拟Linux系统调用 包含完整的Linux内核,支持Docker等容器应用
硬件支持 只能访问Windows硬件资源 支持更多硬件功能,如GPU加速、网络功能等
兼容性 只能运行较简单的Linux命令和工具 支持更广泛的Linux应用程序和服务
Docker支持 不支持 完全支持,可以运行Docker容器
内存和CPU使用 依赖于Windows内存管理 使用虚拟机独立管理内存和CPU,具有更高的性能
启动速度 启动较快 启动时间稍长,但性能更强
网络功能 不完全支持网络功能 支持完整的网络功能,支持容器网络配置
跨Windows和Linux文件系统性能 性能较好,适合频繁访问Windows文件系统 性能较差,访问Windows文件系统较慢
systemd支持 不支持 支持
IPv6支持 支持 支持
与VMware/VirtualBox兼容性 兼容 不兼容较老版本的VMware和VirtualBox

五、安装WSL2子系统要求

  • Windows 10 x64 1903之后的版本或arm64 2004之后的版本。

  • Windows 11。

  • x64/arm64都可以,但如果是arm64,刚要求Linux虚拟机也是arm架构的。

  • 家庭版,专业版,教育版,企业版都可以。

  • 硬件甚至是虚拟化嵌套也无问题。

六、安装WSL2

点击“控制面板”,“程序和功能”,“启用或关闭Windows功能”,勾选“适用于Linux的Windows子系统”,“虚拟机平台”,再点“确定”。

image-20250512211918781

程序安装完后,点“立即重新启动”。

如果只选择第一项“适用于Linux的Windows子系统”,不勾选“虚拟机平台”,则安装的是wsl初版。

image-20250512212054105

七、安装Linux系统

WslRegisterDistribution failed with error: 0x800701bc 错误解决办法

PS C:\Users\david> wsl --update
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。
PS C:\Users\david>

先查询WSL 2支持哪些Linux系统

PS C:\Windows\system32> wsl --list --online
以下是可安装的有效分发的列表。
请使用“wsl --install -d <分发>”安装。

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

PS C:\Users\david> wsl --install -d ubuntu
正在下载: Ubuntu
[==========================49.6%   ]

PS C:\Users\david> wsl --install -d ubuntu
正在下载: Ubuntu
正在安装: Ubuntu
[==========================97.7%=========================  ]

PS C:\Users\david> wsl --install -d ubuntu
正在下载: Ubuntu
正在安装: Ubuntu
wsl: 此计算机上不支持嵌套虚拟化。==========================]
已成功安装分发。它可通过 “wsl.exe -d Ubuntu” 启动

PS C:\Users\david> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

PS C:\Users\david> wsl -d Ubuntu
wsl: 此计算机上不支持嵌套虚拟化。
Provisioning the new WSL instance Ubuntu
This might take a while...
Create a default Unix user account: david
New password:
Retype new password:
passwd: password updated successfully
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Mon May 12 22:59:00 CST 2025

  System load:  0.0                 Processes:             32
  Usage of /:   0.1% of 1006.85GB   Users logged in:       0
  Memory usage: 7%                  IPv4 address for eth0: 172.18.178.23
  Swap usage:   0%


This message is shown once a day. To disable it please create the
/home/david/.hushlogin file.
david@DESKTOP-5604J48:/mnt/c/Users/david$ 

david@DESKTOP-5604J48:/mnt/c/Users/david$ more /etc/os-release
PRETTY_NAME="Ubuntu 24.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
david@DESKTOP-5604J48:/mnt/c/Users/david$ ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 10.255.255.254/32 brd 10.255.255.254 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:ce:03:32 brd ff:ff:ff:ff:ff:ff
    inet 172.18.178.23/20 brd 172.18.191.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fece:332/64 scope link
       valid_lft forever preferred_lft forever
       

安装OracleLinux8.7版本

PS C:\Windows\system32> wsl --install -d OracleLinux_8_7

八、其它扩展

离线下载地址

https://aka.ms/wslubuntu
https://wslstorestorage.blob.core.windows.net/wslblob/Ubuntu2404-240425.AppxBundle
https://aka.ms/wslubuntu2204
https://aka.ms/wsl-kali-linux-new
https://aka.ms/wsl-oraclelinux-8-5
https://aka.ms/wsl-oraclelinux-7-9




Add-AppxPackage .\app_name.appx

Appx 包下载完成后,您可以通过双击 appx 文件开始运行新的分发。(在此步骤完成之前,该命令不会显示发行版已安装)。wsl -l

如果您使用的是 Windows Server,或者在运行上述命令时遇到问题,您可以在 Windows Server 文档页面上找到替代安装说明,通过将文件更改为 zip 文件来安装文件。.appx

安装分配后,请按照说明为新的 Linux 分配创建用户帐户和密码。


声明:欢迎大家光临本站,学习IT运维技术,转载本站内容,请注明内容出处”来源刘国华教育“。如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。