第六周的任务看起来简单,就是一句“在Windows上装好WSL2和Ubuntu”,但真正动手的时候,牵扯出来的问题远比你想象的多。从内核版本不匹配、apt源慢到想摔键盘,到systemd起不来、CUDA识别不到显卡、U盘插进去找不到设备——这一路下来,我几乎把网上能踩的坑都踩了一遍。这篇博文就是我这次完整折腾WSL2装Ubuntu的过程记录,把选型思路、操作步骤、踩坑点一次性讲清楚,目标是让看完的人能照着做,从零跑起来,别再走我走过的弯路。
先说清楚这篇文章适合谁:在Windows上做开发,但Linux环境绕不开的人;被虚拟机卡到怀疑人生、想找个轻量替代方案的人;还有那些必须在Linux下跑Docker、CUDA、ROS2、嵌入式工具链,但又不想放弃Windows日常使用的人。这篇文章会尽可能把“为什么这样做”也讲透,不是单纯给你扔一串命令。
1. 为什么这周我选择了WSL2而不是虚拟机或双系统
WSL2全称是Windows Subsystem for Linux 2,本质是一个运行在轻量级虚拟机里的真正Linux内核。它和第一代WSL最大的区别,就是不再靠Windows自己模拟Linux系统调用,而是直接跑了一个完整的Linux内核,所以兼容性高得多,很多原来必须在真机Linux上跑的东西,在WSL2里也能正常工作。
很多人一听“虚拟机”就皱眉,觉得那玩意儿又重又慢,但WSL2和我印象里那种VMware开箱要等半天的体验完全不同。WSL2背后用的是微软自家的Hyper-V虚拟化平台,虚拟机和Windows系统之间是深度集成的,启动一个发行版往往只需要几秒钟,内存占用也比完整虚拟机小得多,平时不吃CPU的时候几乎感觉不到它在跑。更关键的是,WSL2支持直接调用Windows上的NVIDIA显卡驱动,这意味着CUDA、cuDNN这类重计算依赖也能在WSL2里跑,这是老一代WSL完全做不到的。
为了说清楚差异,我把自己实际用过的几种方案列了个对比:
| 方案 | 启动速度 | 内存占用 | 图形界面 | GPU支持 | 与Windows文件互访 | 适合场景 |
|---|---|---|---|---|---|---|
| WSL2 | 秒级 | 低(按需分配) | 可用WSLg | 支持CUDA | 极方便(\wsl$) | 日常开发、Docker、服务端环境 |
| 传统虚拟机(VMware/VirtualBox) | 分钟级 | 高(固定分配) | 完整桌面 | 配置复杂 | 一般(共享文件夹) | 需要完整Linux桌面的场景 |
| 双系统 | 分钟级(切换需重启) | 原生占用 | 完整桌面 | 原生 | 需额外挂载分区 | 极致性能、长期沉浸Linux |
| WSL1 | 秒级 | 低 | 有限 | 不支持 | 方便 | 简单的命令行工具链 |
真实体验下来,如果你是做服务端开发、嵌入式交叉编译、AI模型训练或推理验证,WSL2是最平衡的选择。它保留了Windows的日常使用习惯,又能让你在需要的时侯进入一套完整的Linux环境。而且开发过程中经常要做实验、改环境、重装系统,WSL2的“随时重置、随时重来”特性,比双系统舒坦太多了。
这一周我选它的另一个原因,是周围几个朋友都在用WSL2跑ROS2和AI框架,实际反馈都是“能用、够稳、不折腾”。如果你还在纠结——直接上WSL2,至少先用它把开发环境跑起来,真遇到解决不了的问题再考虑换方案也不迟。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装前必须准备好的三件事
WSL2的安装看着简单,但有三个前置条件如果你没做好,后面会反复报错。这一节我按照实际操作顺序,把准备工作拆开讲清楚。
2.1 确认Windows版本与虚拟化支持
WSL2要求Windows 10版本2004及以上(Build 19041以上),Windows 11则完全支持。老版本的Windows 10也可以通过手动方式安装WSL2,但推荐直接升级系统,不然很多功能更新你会跟不上。
在“设置 > 系统 > 系统信息”里能看到当前版本号。如果你的Build版本低于19041,建议先把系统更新到最新,再继续往下走。
虚拟化支持是另一个关键点。WSL2依赖CPU虚拟化技术,Intel的VT-x或者AMD的SVM必须在BIOS里开启。检查方法很简单:在Windows搜索框输入“任务管理器”,打开后切到“性能”选项卡,点CPU,看右下角“虚拟化”那一栏是否为“已启用”。如果是“已禁用”,需要重启电脑进BIOS,在“Advanced”或者“Security”相关菜单里找“Intel Virtualization Technology”或“SVM Mode”,设为Enabled再保存重启。
这个坑特别多人踩过。装了WSL2,第一次启动报错0x80370102,大概率就是BIOS虚拟化没开,或者开了Windows Hypervisor相关的功能但没生效。
2.2 启用Windows功能
在Windows搜索框输入“启用或关闭Windows功能”,打开后勾选以下两项:
虚拟机平台适用于Linux的Windows子系统
勾选后系统会提示重启电脑,这一步不要跳过,别想着“先看看能不能装”。不重启,后续执行wsl --install大概率会报错或者直接卡住。
命令行用户也可以直接用PowerShell执行:
powershell复制dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
两段执行完,重启。这里特别注意:虚拟机平台这个功能必须开,很多教程只提WSL子系统却漏掉它,结果就是装了WSL2却起不来。
2.3 下载WSL2内核更新包并设置默认版本
Windows 10(Build 19041到19044之间的版本)通常需要手动下载安装WSL2 Linux内核更新包,Windows 11则一般不用。但为了兼容性,我建议无论哪个版本,都到微软官方文档里的“WSL2 Linux内核更新包”链接下载并安装一次。
安装完成后打开PowerShell,执行下面的命令把WSL2设为默认版本:
powershell复制wsl --set-default-version 2
出现“操作成功完成”的提示就说明没问题。这一步的意义是:以后你用wsl --install -d Ubuntu装任何发行版,系统都会默认用WSL2启动,而不是老的WSL1。
到这里,准备工作就算全部做完了。如果这一步报错“WSL 2 需要更新其内核组件”,去下载安装内核更新包就能解决;如果提示“请启用虚拟机平台 Windows 功能”,回到2.2确认那两个功能是否真的勾选并重启了。
3. 从零开始安装Ubuntu,一行命令与手动安装都要会
准备工作完成之后,正式安装Ubuntu反而变成了最轻松的部分。但我会同时介绍两种方式,因为不同的人面对的网络环境和使用习惯不一样。
3.1 一行命令快速安装
从2020年后的Windows版本开始,微软推荐直接用命令行安装:
powershell复制wsl --install -d Ubuntu-22.04
执行前建议先看一下当前支持的发行版列表:
powershell复制wsl --list --online
系统会自动下载并安装Ubuntu 22.04 LTS,安装完成会提示你创建用户名和密码。用户名不要瞎起,它会在WSL2里变成你的家目录名,比如我起的dev,对应的家目录就是/home/dev,后续所有以家目录为基座的软件配置都会关联它。
安装完后通过下面命令确认版本:
powershell复制wsl -l -v
输出结果里,Ubuntu那行后面的VERSION列如果是2,就说明用的是WSL2。
3.2 离线安装包的思路
如果你的电脑没法从微软商店正常下载,或者你需要在多台机器上离线部署,这时候可以走离线包路线。去微软商店对应的Ubuntu页面找到APPX或MSIXBUNDLE格式的下载链接,用浏览器或下载工具拉下来,然后把文件放到本机,在PowerShell里用Add-AppxPackage命令安装。
安装包下载这块有个经验:文件体积通常几百MB,下载一次后建议存到移动硬盘或U盘里做个备份,以后装新机器直接装包就行,不用再依赖在线商店。装好之后,第一次启动Ubuntu会有一个初始化的解压过程,解压完会让你设置Linux用户名和密码。
这一步有个细节容易被忽略:安装完成但忘记创建账号的时候,不要直接关掉窗口,等它出现“Enter new UNIX username”提示时,输入一个合法用户名。如果因为操作失误没创建成功,最简单的做法就是等安装完,在PowerShell里执行ubuntu2204.exe重新进入初始化流程,或者用wsl --unregister删掉重装。
3.3 装完立刻要做的系统更新
装好Ubuntu后不要急着配环境,先执行系统更新:
bash复制sudo apt update
sudo apt full-upgrade -y
这一步会同步软件源索引并把基础软件包升级到最新版本。第一次执行时,如果感觉apt下载速度特别慢,大概率是官方源在国内访问不理想。这时候可以换成国内镜像源,比如清华、阿里云的Ubuntu镜像源,操作方式是把/etc/apt/sources.list里的源地址整体替换。
以Ubuntu 22.04为例,替换后的/etc/apt/sources.list开头一段大概长这样:
bash复制deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
替换之后先执行sudo apt update,再升级核心软件包。这里有一个容易踩的坑:不同Ubuntu版本的代号不一样,22.04是jammy,24.04是noble,换源时千万不要把镜源头里的代号弄错了,否则apt会报无法定位软件包,甚至源直接失效。
4. systemd、中文输入法与网络配置,这三关必须过
装完Ubuntu只是开始,真正影响日常使用体验的是系统级配置。中文输入法、后台服务管理、网络联调,任何一个弄不好,都足以劝退新手。这节我详细拆解这三个最核心的配置点。
4.1 开启systemd,让WSL2更像独立Linux
默认情况下,WSL2里是不跑systemd的,很多Linux服务管理命令像systemctl enable docker这样会直接报错“System has not been booted with systemd as init system”。这个限制在旧版本里非常让人抓狂,你得手动用service命令去起服务,麻烦又不直观。
现在微软官方已经支持WSL2里的systemd,开启方式很简单。编辑/etc/wsl.conf:
bash复制sudo nano /etc/wsl.conf
填入以下内容:
conf复制[boot]
systemd=true
保存退出,然后在Windows的PowerShell里执行:
powershell复制wsl --shutdown
重新进入WSL2,执行ps -p 1 -o comm=看一下,输出systemd就说明成功了。现在你可以放心用systemctl enable --now docker这类命令来管理服务,几乎所有按Linux标准流程写的教程都能直接在WSL2里跑,不用再各种魔改。
4.2 配置中文输入法,在WSL2里也能正常打中文
WSL2默认的图形支持(WSLg)在较新版本里做得已经不错,Gnome等图形应用能直接开,但中文输入法默认是没有的。我实测下来,用fcitx5配合中文字体是最稳的方案。
第一步,安装fcitx5和中文输入法引擎:
bash复制sudo apt install fcitx5 fcitx5-chinese-addons fonts-noto-cjk
第二步,设置环境变量。编辑~/.bashrc,在末尾追加:
bash复制export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
第三步,安装完字体后建议在Windows侧也装一套中文语言包或中文字体,不然WSLg里显示中文可能变成方块。更省事的做法是在Ubuntu里直接安装fonts-noto-cjk,这个包会提供完整的中文黑体字体,覆盖大部分使用场景。
最后启动fcitx5:
bash复制fcitx5 &
如果系统里没有其他输入法框架,默认会自动注册为当前输入法。在图形应用里按Ctrl+Space应该就能切换到中文输入法。我试过在WSLg里打开一个小程序测试,中文输入流畅,候选词和Windows下的搜狗输入法相比差距不大。
有些朋友习惯装搜狗输入法Linux版,它依赖fcitx框架,思路和上面一致。但搜狗的Linux版安装包更新频率不高,如果你主要是为了开发时偶尔打几个中文字,fcitx5加自带拼音已经完全够用,没必要折腾额外的商业输入法。
4.3 网络配置、端口转发与USB设备直通
WSL2默认采用NAT网络模式,Win10和WSL2之间通过虚拟交换机通信。平时从Windows访问WSL2里的服务,比如在WSL2里跑了一个8080端口的Web服务,Windows浏览器直接访问localhost:8080就能通,这是微软做好的端口转发,不需要额外配置。
但有两个问题经常出现。第一个是WSL2每次重启后IP地址可能会变,之前用固定IP联调脚本的人会突然连不上。解决思路是不要在脚本里写死IP,尽量用localhost访问,或者用wsl hostname -I动态获取当前IP再灌入脚本里。
第二个问题是局域网内的其他设备无法直接访问WSL2里的服务。解决方案是在Windows上用netsh添加端口转发规则,假设你想让局域网能访问WSL2的22端口:
powershell复制netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=22 connectaddress=<WSL2的IP>
同时还得在Windows防火墙里放行2222端口。转发规则配好后,局域网设备就能通到这个端口了。
关于WSL2读取U盘,这是很多人问过的问题。默认情况下,Windows先识别U盘并分配盘符,WSL2这边可以通过/mnt/e或/mnt/f直接访问Windows挂载出来的盘。比如U盘在Windows里是E盘,在WSL2里执行:
bash复制ls /mnt/e
就能看到U盘内容。但你要在WSL2里直接操作U盘里的Linux文件系统、做烧录镜像等操作,这种挂载方式就不太够用了。微软官方推荐用usbipd-win工具做USB设备直通,把U盘、串口设备(比如开发板的调试串口)直接绑到WSL2里。具体步骤是先在Windows下载安装usbipd,管理员PowerShell里执行usbipd bind,然后在WSL2里执行usbipd attach --wsl,之后U盘就会在WSL2里以类似/dev/sdb的设备文件出现,可以mount、可以dd,和原生Linux体验一致。
这里有个经常被忽略的问题:如果你在WSL2里接入USB转串口设备(比如CH340、CP2102芯片),需要先在WSL2里安装对应的驱动库。Ubuntu内核通常已经包含这些芯片的驱动模块,但有时需要确认模块是否加载成功,用lsmod | grep ch341查一下,如果模块没加载,先执行modprobe ch341。
5. 进阶开发场景:Docker、CUDA、ROS2与科学计算环境
当WSL2的日常使用变得顺手之后,很多人会把它当成真正的Linux环境来跑各种重负载开发。很多人关心的Docker、CUDA、ROS2问题,我在这周的实际使用中也全部过了一遍。
5.1 Docker的两种玩法
WSL2里跑Docker有两种主流方式。第一种是装Docker Desktop,在Windows上跑一个带图形界面的Docker管理工具,直接启用WSL2后端,发行版里就能直接用docker命令,这种方式对新手最友好,镜像和容器由Docker Desktop统一管理。
第二种是在WSL2里原生安装Docker CE,不依赖Windows端。既然systemd已经开启,安装流程和官方文档几乎一模一样:
bash复制curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable --now docker
然后把当前用户加入docker组,避免每次敲sudo:
bash复制sudo usermod -aG docker $USER
退出当前shell重新登录,docker ps就能正常使用了。我在实际使用中更喜欢第二种方式,因为整个环境都在WSL2内部,不依赖Windows侧单独跑一个后台服务,资源占用更干净,也方便以后把整个发行版导出迁移。
需要注意,科学计算库比如libfftw这类依赖包,在WSL2里直接用apt install libfftw3-dev就能装,和原生Linux没有任何区别,这也是WSL2相对WSL1最大的优势之一。
5.2 CUDA和GPGPU:在WSL2里跑模型推理
AI领域的同学最关心的是:WSL2到底能不能用GPU?答案是能,而且体验相当不错。WSL2支持GPU直通,只要Windows端安装的NVIDIA驱动版本足够新,WSL2里就能直接识别到显卡。
先检查Windows端显卡驱动版本和GPU状态。在WSL2里执行:
bash复制nvidia-smi
正常情况下会输出显卡型号、驱动版本、显存占用等信息。如果你看到“NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver”,说明驱动版本过旧,去Windows更新到支持WSL2的驱动版本即可。
接下来是安装CUDA Toolkit。这里要注意,WSL2里装的CUDA Toolkit版本和Windows驱动没有严格绑定,你可以直接在WSL2里按照CUDA官方文档下载对应WSL-Ubuntu版本的runfile或者deb包安装。以CUDA 11.8为例,下载对应安装包后:
bash复制sudo sh cuda_11.8.0_linux.run --toolkit --silent
安装完把CUDA路径写入~/.bashrc:
bash复制export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
验证一下:
bash复制nvcc --version
能输出版本号说明安装成功。之后你就能在WSL2里直接跑PyTorch、TensorFlow的GPU版本,或者编译那些依赖CUDA的底层框架。我这次顺手试了一个叫mambavision的视觉框架,按其官方步骤配置好CUDA相关依赖后,训练推理跑得很稳。
这里补充一个容易踩的坑:如果你在Windows上也装了CUDA Toolkit,不要把Windows的CUDA环境变量带到WSL2里,WSL2应该用自己Linux侧的CUDA路径。很多人在WSL2里nvcc --version版本不对,八成是这个原因。
5.3 ROS2、嵌入式工具链和更多玩法
由于WSL2具备完整的Linux内核,ROS2这类依赖复杂、对内核版本有要求的框架也能正常运行。我按照ROS2官方文档,在Ubuntu 22.04里配置了ROS2 Humble,启动节点、话题通信都正常。不过有一个注意事项:ROS2的DDS默认会用到多播,WSL2在NAT模式下偶尔会出现节点发现失败的情况,碰到这种问题可以尝试把WSL2的镜像网络模式打开,在.wslconfig里加入networkingMode=mirrored。
嵌入式开发也是一样,交叉编译工具链、OpenOCD、JLink等工具都能在WSL2里跑。比如之前提到的USB直通,配合OpenOCD直接烧录开发板完全可行。很多嵌入式开发者的日常工作流从传统的虚拟机方案切到WSL2,整个编译烧录流程会快一个档次。
还有一点顺便说一下:像Codex这类命令行AI编程工具,Ubuntu下安装使用也完全没有问题。WSL2就相当于一个随时可用的Windows内置Linux终端,很多需要在Linux跑的CLI工具,直接在这个环境里装就行,不需要再额外开虚拟机。
6. 删除、重置与备份迁移,折腾者的最后一堂课
WSL2最大的好处之一就是“随便折腾,坏了就重置”。但前提是你得知道正确的删除、备份和迁移方法,不然稀里糊涂丢数据就麻烦了。
先看当前已安装的发行版:
powershell复制wsl -l -v
想完全删除某个发行版:
powershell复制wsl --unregister Ubuntu-22.04
这个命令会把这个发行版连同里面的所有文件一起删掉。如果你只是想重置系统配置而不丢数据,更好的做法是先备份:把当前的WSL2发行版导出成一个tar包,等重置后再导入。
导出命令(在PowerShell中执行):
powershell复制wsl --export Ubuntu-22.04 D:\wsl-backup\ubuntu-22.04-backup.tar
备份文件会比较大(几个GB很常见),建议放到空间充足的盘。需要恢复时:
powershell复制wsl --import Ubuntu-22.04 D:\wsl\Ubuntu-22.04 D:\wsl-backup\ubuntu-22.04-backup.tar
导入完成后,默认会以root身份进入,可以在Ubuntu里执行sudo nano /etc/wsl.conf设置默认用户,或者直接编辑注册表项。这里有个经验:导入的发行版默认用户名可能变成root,不方便日常使用,建议导入后先执行wsl --manage相关设置,或者干脆在导入前想好用户名规划。
另外强烈建议在Windows用户目录下建一个.wslconfig文件,用来限制WSL2的内存和CPU占用。默认情况下WSL2会使用本机总内存的50%作为上限,如果电脑只有16GB内存,这还挺影响Windows侧体验的。.wslconfig内容示例:
conf复制[wsl2]
memory=8GB
processors=4
swap=4GB
配置好之后执行wsl --shutdown再重新启动,设置就会生效。这一步是我所有同事都会做的配置,没人希望开几个WSL窗口,Windows自己反而卡成PPT。
7. 常见问题速查与避坑手册
这一节整理我这周遇到或者帮别人排查过的高频问题,做成速查表,方便你遇到同类问题时快速定位。
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 安装时提示“WSL 2 需要更新其内核组件” | 未安装WSL2内核更新包 | 下载并安装微软官方WSL2内核更新包,然后重开终端 |
| 启动报0x80370102 | BIOS虚拟化未开启 | 进BIOS开启Intel VT-x或AMD SVM,并确认“虚拟机平台”功能已启用 |
| 启动报0x80070005 | 系统服务异常或无权限 | 以管理员身份运行PowerShell,重新加载LxssManager相关服务 |
| apt update速度极慢 | 使用了官方源 | 换成国内镜像源,注意Ubuntu版本代号不要写错 |
| systemctl命令报错“System has not been booted with systemd” | systemd未开启 | 编辑/etc/wsl.conf加入[boot] systemd=true,重启WSL |
| 切换root失败,提示密码错误 | 忘记sudo密码 | 安装时设置的用户密码就是sudo密码,sudo passwd root可以重新设置root密码 |
| WSL2里无法读取U盘 | 设备未直通或盘符未挂载 | 先用/mnt/e等方式访问,高级需求用usbipd-win工具 |
| SSH连接不上 | openssh-server未安装或端口冲突 | 确认安装了openssh-server,检查sshd_config,并处理Windows防火墙放行 |
| 端口服务局域网无法访问 | WSL2 NAT模式限制 | 配合netsh端口转发规则,并配置Windows防火墙 |
| WSL2里nvidia-smi报错 | Windows显卡驱动过旧 | 更新Windows侧驱动到最新版本,WSL2内不需要额外装驱动 |
| Docker无法启动 | systemd未开启或docker服务未启动 | 先确认systemd,再执行sudo systemctl enable --now docker |
| 图形界面显示中文乱码 | 缺少中文字体 | 安装fonts-noto-cjk,并确保Windows侧也有中文字体 |
| 磁盘占用越来越大 | WSL2虚拟磁盘不会自动收缩 | 定期执行wsl --shutdown,然后用diskpart或Optimize-VHD收缩虚拟盘 |
| 从局域网访问WSL2内SSH不成功 | 需要同时配置Windows防火墙 | 在netsh转发基础上,开放Windows防火墙对应入站端口 |
关于“Ubuntu怎么切换到超级管理员”,这个问题也经常有人问。在WSL2里执行sudo -i会直接切到root身份;执行su -再加root密码也可以。我个人的建议是日常用普通用户,只有需要时才用sudo,尽量不要整天挂在root下,不然哪天误删文件都不知道是怎么发生的。
最后再说一个很多人容易忽略的坑:不要在WSL2里用/mnt/c路径做大量的文件读写,特别是编译、npm install、git仓库这类高频IO操作。因为/mnt/c走的是Windows文件系统,跨系统访问性能比Linux原生文件系统差很多。正确做法是把项目放在WSL2内部的家目录下,比如~/projects,需要和Windows共享时再通过\\wsl$路径去访问。这一步做对了,整个编译体验会有质的提升。
8. 实操结束后,我的一些个人体会
这周从准备到完全跑通,前前后后大概花了两天时间。最大的教训是:WSL2安装本身不难,难的是“你以为装好了,其实没装对”。很多问题都是因为Windows功能没启用、BIOS虚拟化没开、或者系统版本太旧这些基础原因反复出现。
我的经验是,遇到问题先按顺序检查三件事:系统版本是否满足、两个Windows功能是否启用、BIOS虚拟化是否开启。这三关过了,后面基本就是顺水推舟的事。整体环境跑通之后,再折腾CUDA、Docker、USB直通这些进阶功能,你就会感觉到WSL2的便利之处——它不是一个马里奥游戏里的仿真器,而是一个真正长在Windows里的Linux,坏了大不了删掉重装,完全不影响Windows本体。
如果你打算长期用WSL2,我强烈建议现在就做两件事:第一,把当前所有配置用wsl --export导出一份备份;第二,在Windows用户目录下建好.wslconfig限制资源占用。前者是保险,后者是养生。很多人的WSL2用着用着越来越卡,其实就是没限制好内存,Windows和Linux两边互相抢资源。
后续如果你要继续深入,可以试着在WSL2里配一套完整的VS Code Remote环境,用Remote-WSL插件把编辑器直接接进来,这样你既能享受Linux工具链,又不用放弃Windows上那套成熟的编辑器。再往后就可以把ROS2、Docker Compose、K8s全家桶都塞进来。到了这个阶段,WSL2在你手里就不再只是一个“Linux模拟器”,而是一个真正的主力开发环境。
