WSL2:Windows上运行Linux的完整指南

对于许多开发者来说,在Windows上拥有一个"原汁原味"的Linux环境,曾经需要安装虚拟机或双系统。如今,微软推出的WSL2(Windows Subsystem for Linux 2),让这一切变得无比简单。它不仅是开发利器,更是学习Linux、运行容器应用的高效工具。

本文将带你全面了解WSL2------它是什么、如何启用、对系统有什么影响,以及当不再需要时如何彻底禁用。


一、WSL2是什么?为什么它比WSL1更强?

WSL2是微软对第一代WSL的彻底升级。它不再依赖"翻译"系统调用,而是通过轻量级虚拟机运行一个真正的Linux内核,因此具备了:

1. 完整的系统调用兼容性:可运行Docker、FUSE等需要深度内核交互的应用;

2. 卓越的文件I/O性能:在Linux文件系统(ext4)中读写速度接近原生,跨OS操作也大幅提升;

3. 紧密的Windows集成 :可从资源管理器直接访问Linux文件(路径为\\wsl$\<发行版>),Linux中也能调用.exe程序;

4. 资源按需使用:内存和CPU仅在运行Linux程序时占用,闲置时自动释放,比传统虚拟机轻量得多。

可以说,WSL2既保留了Windows的便利性,又提供了近乎原生的Linux体验。


二、一步一步启用WSL2(附命令详解)

✅ 1. 系统要求

1)Windows 10(2004版,内部版本19041以上)或Windows 11

2)64位处理器,并在BIOS中开启硬件虚拟化(VT-x/AMD-V)

📝 2. 操作步骤

1)启用WSL功能

管理员身份打开cmd,执行:

复制代码
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

接着启用虚拟机平台(WSL2的核心依赖):

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

重启电脑

💡 更简单的方法:直接运行wsl --install,系统会自动完成上述所有步骤并默认安装Ubuntu。若想自定义发行版,可继续往下看。

2)设置WSL2为默认版本

重启后,在cmd中运行:

复制代码
wsl --set-default-version 2

如果提示需要安装Linux内核更新包,按提示下载安装即可。

3)安装你喜欢的Linux发行版

通过微软商店搜索"Ubuntu"、"Debian"、"Kali Linux"等并安装;或在PowerShell中列出可用的发行版:

复制代码
wsl --list --online

然后执行安装,例如:

复制代码
wsl --install -d Ubuntu-24.04
4)启动并初始化

安装完成后,从开始菜单启动该发行版,首次运行会提示创建普通用户和密码(非Windows账户,独立管理)。

5)验证版本

查看当前已安装的发行版及其WSL版本:

复制代码
wsl --list --verbose

若某个发行版显示为"1",可手动升级:

复制代码
wsl --set-version <发行版名称> 2

至此,一个完整的Linux环境已经在你的Windows中"落地生根"。


三、启用WSL2后,对Windows系统有什么影响?

很多用户担心启用WSL2会拖慢系统或带来兼容性问题。下面我们来客观分析。

1. 资源占用(内存、CPU、磁盘)

1)内存 :WSL2采用动态内存管理,默认最大占用物理内存的50%或8GB(取小)。当Linux程序空闲时,内存会自动释放。你也可以通过.wslconfig文件限制上限。

2)CPU:仅在运行Linux程序时产生负载,闲置时几乎为零。

3)磁盘 :每个发行版会生成一个.vhdx虚拟磁盘文件,存放在用户目录下(如C:\Users\用户名\AppData\Local\Packages\...\LocalState),大小会随文件增多自动扩容。若需要回收空间,可使用wsl --export/--import进行压缩。

2. 系统安全与隔离

WSL2运行在轻量级虚拟机中,与Windows内核完全隔离,安全性高于WSL1。Linux文件使用ext4格式,Windows无法直接修改(只能通过\\wsl$访问),避免了权限混乱。
防火墙方面,WSL2使用NAT网络模式,对外访问受Windows防火墙保护,默认情况下外部无法直接访问WSL内服务(需配置端口转发)。

3. 与其他虚拟化软件的共存

启用WSL2会同时开启Hyper-V的部分功能,这可能导致旧版VMware、VirtualBox无法启动。解决办法是:

1)更新VMware或VirtualBox到最新版本(它们已支持与Hyper-V共存);

2)或进入BIOS开启"Windows Hypervisor Platform"(如果存在)。

若你主要使用VMware,且不想升级,也可以将WSL2降级为WSL1(见下文)。

4. 文件系统与性能

1)推荐做法 :将项目代码放在Linux文件系统内(如/home/用户名/),以获得最佳读写性能;

2)跨OS操作 :在Linux中访问/mnt/c/(Windows C盘)时性能稍逊于WSL1,但日常使用依然流畅。

5. 系统更新与维护

WSL2的Linux内核会通过Windows Update自动更新,无需手动干预。已安装的发行版则需要用户自行执行sudo apt update && sudo apt upgrade等命令。


四、如何彻底禁用或卸载WSL2?

如果你因特定原因不再需要WSL2,可以按以下方式处理。

方案一:临时释放资源(不卸载)

仅想释放WSL2占用的内存和CPU,可以关闭所有WSL进程:

复制代码
wsl --shutdown

下次启动WSL时会重新加载。

方案二:降级为WSL1(保留发行版)

将WSL2转换为WSL1,放弃虚拟机平台特性,但继续使用Linux环境:

复制代码
wsl --set-version <发行版名称> 1
wsl --set-default-version 1

方案三:完全移除WSL2组件

1)删除所有Linux发行版 (注意备份数据)

先列出所有发行版:wsl --list

然后逐个删除:wsl --unregister <发行版名称>

2)禁用WSL功能

以管理员身份打开cmd,执行:

复制代码
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart

重启电脑。

3)(可选)卸载Linux内核更新包

在"设置 → 应用"中找到"Windows Subsystem for Linux Update"并卸载。

完成上述步骤后,WSL2所有组件将被彻底清理,系统恢复至启用前的状态。


五、总结:WSL2值得尝试吗?

对于开发者、运维人员、Linux初学者,WSL2无疑是Windows上最理想的Linux方案。它兼具原生性能和Windows的便利,资源占用远低于传统虚拟机,且与Docker、VS Code等工具深度整合,能极大提升开发效率。

当然,如果你主要使用VMware且不愿升级,或对Hyper-V有冲突,可以选择WSL1或按需临时关闭WSL2。总体来说,WSL2的利远大于弊,不妨亲自尝试一下。

相关推荐
L_09072 小时前
【Linux】实现简易 shell 程序
linux·bash
会飞的大可2 小时前
Jenkins 企业级集成实战:从规划到落地的完整指南
运维·jenkins
Are_You_Okkk_2 小时前
AI开源知识库跨部门闭环搭建,效率提升40%
大数据·运维·人工智能·架构·开源
Yupureki2 小时前
《Linux系统编程》20.常见程序设计模式
linux·服务器·c语言·c++·单例模式·建造者模式·责任链模式
M1nat0_2 小时前
Linux基础 Ext 文件系统:从磁盘硬件到目录路径的全链路解析
linux·服务器·网络·数据库
AIminminHu2 小时前
OpenGL渲染与几何内核那点事-项目实践理论补充(一-2-(3)-当你的协同CAD服务器面临“千人同屏”时:从单机优化到分布式高并发)
运维·服务器·分布式
moical2 小时前
关于docker-compose启动elasticsearch:7.17.29报"permission denied": unknown错误解决
linux
s6516654962 小时前
编译linux内核
linux
济6172 小时前
ARM Linux 驱动开发篇:阻塞与非阻塞IO详解(含等待队列+poll机制)--- Ubuntu20.04
linux·嵌入式·嵌入式linux驱动开发