当前位置: 首页 > news >正文

告别WSL1!手把手教你将WSL升级到WSL2,并更新Linux内核到最新版(2024保姆级教程)

2024终极指南:从WSL1无缝迁移至WSL2并升级Linux内核

如果你还在使用WSL1,可能会遇到Docker运行缓慢、文件系统操作卡顿等问题。WSL2带来了完整的Linux内核支持,性能提升显著。本文将带你完成从WSL1到WSL2的完整迁移,并确保你的Linux内核是最新版本。

1. 为什么应该从WSL1升级到WSL2

WSL1和WSL2虽然都是Windows Subsystem for Linux的实现,但它们的架构差异巨大:

  • WSL1:通过转换层将Linux系统调用转换为Windows NT内核调用
  • WSL2:基于轻量级虚拟机运行真正的Linux内核

性能对比:

特性WSL1WSL2
文件系统IO
Docker支持有限完整
系统调用兼容性部分完整
内存占用中等
启动速度稍慢

提示:如果你主要使用Linux工具链进行开发或需要运行Docker,WSL2是更好的选择。

2. 升级前的准备工作

在开始升级前,请确保:

  1. Windows 10版本1903或更高,或Windows 11
  2. 管理员权限
  3. 至少4GB内存(推荐8GB以上)
  4. 已安装WSL1并配置了至少一个Linux发行版

检查当前WSL版本:

wsl --list --verbose

输出示例:

NAME STATE VERSION * Ubuntu-20.04 Running 1

3. 启用WSL2所需功能

WSL2需要启用两个Windows功能:

  1. 以管理员身份打开PowerShell
  2. 执行以下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 重启计算机

验证虚拟机平台是否启用:

Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

4. 设置WSL2为默认版本

更新WSL内核组件:

  1. 下载最新WSL2内核更新包:

    • 官方链接:Microsoft WSL2内核更新
    • 备用链接:TechGeekNext镜像
  2. 运行下载的安装包(如wsl_update_x64.msi

  3. 设置WSL2为默认版本:

wsl --set-default-version 2

5. 转换现有发行版到WSL2

列出已安装的发行版:

wsl --list --verbose

转换指定发行版:

wsl --set-version <发行版名称> 2

例如:

wsl --set-version Ubuntu-20.04 2

转换过程可能需要几分钟,取决于发行版大小。

6. 验证升级结果

确认转换成功:

wsl --list --verbose

输出应显示VERSION为2:

NAME STATE VERSION * Ubuntu-20.04 Running 2

检查Linux内核版本:

uname -a

输出示例:

Linux DESKTOP-ABC123 5.15.90.1-microsoft-standard-WSL2 #1 SMP Fri Jan 27 02:56:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

7. 常见问题解决

7.1 "WSL 2 requires an update to its kernel component"错误

解决方案:

  1. 确保已安装最新内核更新包
  2. 检查Windows更新
  3. 重启计算机

7.2 转换过程卡住

尝试:

  1. 重启WSL服务:
wsl --shutdown
  1. 清理WSL缓存:
wsl --terminate <发行版名称>
  1. 重新尝试转换

7.3 内存占用过高

WSL2默认会使用最多50%的物理内存。如需限制:

在用户目录下创建或修改.wslconfig文件:

[wsl2] memory=4GB swap=2GB

然后重启WSL:

wsl --shutdown

8. 高级配置与优化

8.1 使用systemd

WSL2默认不启用systemd。如需启用:

  1. 编辑/etc/wsl.conf
[boot] systemd=true
  1. 退出并重启WSL:
wsl --shutdown

8.2 跨平台文件访问

WSL2访问Windows文件:

cd /mnt/c/Users/YourUsername

Windows访问WSL2文件: 在文件资源管理器中输入:

\\wsl$\Ubuntu-20.04\home\username

8.3 网络配置

WSL2使用NAT网络。获取IP地址:

ip addr show eth0

从Windows访问WSL2服务:

wsl hostname -I

9. 保持内核更新

微软会定期发布WSL2内核更新。检查更新:

  1. 查看当前内核版本:
uname -a
  1. 定期检查并下载最新内核更新包
  2. 关注微软WSL文档获取更新信息

10. 回滚到WSL1

如需回滚:

wsl --set-version <发行版名称> 1

或者设置默认版本为1:

wsl --set-default-version 1

在实际项目中,我发现WSL2对Docker开发的支持明显更好,特别是使用Docker Desktop时性能提升显著。文件系统操作也不再是瓶颈,特别是处理大量小文件时。

http://www.jsqmd.com/news/535821/

相关文章:

  • 模型推理框架vllm-3——KVCache管理器 - Big-Yellow
  • 告别环境混乱:Anaconda Python版本升级与虚拟环境实战指南
  • 避坑指南:小程序文本审核接口msgSecCheck的5个高频错误及解决方案
  • 【内存心法】别用玄学猜栈大小了!撕碎 RTOS 堆栈溢出的遮羞布,用 ARM MPU 构筑硬件级“死亡红区”与绝对沙箱
  • 【数据结构与算法】第5篇:线性表(一):顺序表(ArrayList)的实现与应用
  • s2-pro效果展示:同一参考音频复刻不同文本的跨语种语音输出
  • 气象防灾实战:如何用QGIS制作暴雨等值面预警地图(含历史数据对比)
  • M5-FPC1020A指纹模块嵌入式集成与I²C驱动实践
  • 小型团队离线部署大模型指南:别先追参数,先把“能长期跑”的系统搭起来
  • 3种部署方式:如何快速搭建你的MiroFish群体智能预测引擎
  • 深度解析现代聊天界面设计:从UI模板到实战实现
  • 别再手动挖洞了!用Seay代码审计工具5分钟自动化扫描DVWA靶场漏洞
  • 2026年深圳首台(套)重大技术装备扶持计划申报指南
  • 2026年3月25日技术资讯洞察:开源芯片革命、Postgres文件系统与AI Agent安全新范式
  • StructBERT情感分类模型效果展示:招聘JD情感倾向与雇主品牌分析
  • Linux系统管理命令大全与实战技巧
  • 从‘丑’到‘美’:用自定义导航栏拯救你的微信小程序颜值(附完整代码与避坑点)
  • 2026开年贵阳装修指南:五家现代简约风设计实力派深度横评 - 2026年企业推荐榜
  • TensorRT性能调优实战指南:从问题诊断到优化落地
  • PyTorch 2.8镜像应用场景:电商企业自建商品视频生成私有化系统案例
  • STM32F429 FreeRTOS - 集成Cmbacktrace实现高效故障回溯
  • 轻量级容器化部署:llama.cpp推理服务的弹性扩展实践指南
  • DIY USB 3.0 HUB全流程:从GL3523芯片选型到PCB布线避坑指南
  • MiniCPM-V-2_6基础教程:Ubuntu20.04环境下的快速部署与配置指南
  • MacBook扩展屏新思路:把闲置的Windows台式机变成无线绘图板或演示监视器
  • 基于ChatTTS的自定义PT文件文字转语音实战指南
  • Python开发者开源入门全攻略:从环境配置到第一个PR的30天实战指南
  • Oracle 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
  • 深度学习的python基础2:从numpy到torch.tensor
  • 清音刻墨Qwen3智能字幕对齐:开箱即用的字幕生成工具