尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

WSL安装全指南:从零搭建Windows Linux子系统,解决卡顿与报错

WSL安装全指南:从零搭建Windows Linux子系统,解决卡顿与报错 很多人把 WSL 打成 WLS连官方文档看到都会会心一笑。最近后台问“Windows上安装WSL”的朋友越来越多有人是为了 Docker Desktop 换 WSL 后端有人想在 Windows 里跑 Elasticsearch、Redis、binwalk 这类 Linux 工具链也有人纯粹想在 VS Code 里写代码时有个原生 Linux 终端。WSL 的全称是 Windows Subsystem for Linux简单说就是微软官方在 Windows 里搞的一套 Linux 运行环境装上之后不需要双系统、不需要完整虚拟机就能直接跑 Ubuntu 的终端和命令。这篇文章不聊虚的就是我从零开始反复装了几十次 WSL 之后沉淀下来的完整流程包括标准安装、慢到怀疑人生的网络问题、离线安装、初始化配置以及最常见的报错修复。适合第一次接触 WSL 的新手也适合被 wsl --install 卡住的老手直接翻到对应小节抄作业。1. 为什么折腾 WSL开发者绕不开的 Linux 环境问题1.1 双系统、虚拟机与 WSL 的本质差异很多人在接触 WSL 之前已经在用 VMware 或 VirtualBox 跑 Linux 虚拟机。虚拟机方案最大的问题是资源开销每次启动要吃掉 2GB 左右的内存磁盘镜像动辄几十GB而且宿主机和虚拟机之间拖文件、共享剪贴板都需要装额外的增强工具用起来总觉得隔了一层。双系统方案更极端想切到 Linux 必须重启电脑来回折腾一次至少五分钟根本不适合日常开发中“偶尔用一下 Linux 命令”的场景。而 WSL 的定位非常明确它不是一个让你在 Windows 里运行完整 Linux 桌面的东西而是一个让你在 Windows 里直接调用 Linux 命令行工具和用户态程序的环境。启动只要两三秒内存占用通常几百兆文件系统可以直接互访体验上就像 Windows 原生多了一个终端一样。我用 WSL 最频繁的几个场景是本地跑 Elasticsearch 集群、用 binwalk 分析固件、在 VS Code 里写 Python 和 C、跑 Docker 容器。这些任务在 Linux 生态里都很成熟但 Windows 原生状态下要么装起来费劲要么依赖一堆兼容层用 WSL 就省心得多。1.2 WSL 1 和 WSL 2 到底差在哪WSL 1 和 WSL 2 是两套完全不同的实现方案。WSL 1 做的是“系统调用翻译”它把 Linux 程序发出的系统调用转换成 Windows 的系统调用优点是没有额外的虚拟机层启动极快、内存占用小、访问 Windows 文件系统的速度也快缺点是有不少高级 Linux 功能不支持比如 Docker 需要的内核特性就跑不起来。WSL 2 则完全不同它本质上是一个轻量级虚拟机运行一个真实的 Linux 内核。内核由微软维护并保证兼容性所以绝大多数 Linux 二进制程序都能直接跑Docker 也能正常工作。代价是内存占用略高而且跨文件系统访问的性能比 WSL 1 差一些。对比项WSL 1WSL 2实现方式系统调用翻译层轻量级虚拟机真实 Linux 内核无有Docker 支持受限完整启动速度极快快内存占用低中等跨文件系统访问快较慢当前默认安装的 WSL 版本基本都是 WSL 2这也是官方推荐的方向。如果你遇到 Docker Desktop 提示 WSL 2 未启用多半就是虚拟机平台没有完成启用或者 WSL 内核版本过老后面会专门讲怎么修。1.3 WSL 和 Windows Terminal、VS Code 的联动体验WSL 装好之后真正的日常使用场景其实是配合 Windows Terminal 和 VS Code。Windows Terminal 是微软出的终端工具可以把 PowerShell、CMD、Ubuntu 等多个标签页放在同一个窗口里。VS Code 则通过 Remote-WSL 插件直接连进 WSL 内部打开 WSL 里的文件夹、装插件、跑终端完全像是在一台 Linux 机器上开发。很多人在意“WSL Ubuntu 里写代码字体接近 macOS 体验”这个本质上不是字体问题而是终端配色、行高和字体渲染的组合效果。Windows Terminal 里把字体设为 Cascadia Code 或 JetBrains Mono加一个喜欢的主题再把光标样式改成实心块整体观感就非常接近 macOS 的 iTerm2 了。这部分我在第五部分会细说。2. 装机前的三个隐藏雷区版本、虚拟化与老系统2.1 你的 Windows 版本到底能不能装 WSL 2WSL 2 并不是所有 Windows 都能装。微软官方给出的最低要求是 Windows 10 64 位版本 2004Build 19041及以上或者任意版本的 Windows 11。如果还在用 1803、1809 这样的老版本装 WSL 不是不行但只能装 WSL 1而且要通过旧的手动流程没办法用 wsl --install 一键完成。快速确认系统版本的方法是按下 Win R输入winver窗口里会显示当前的系统版本号和内部版本号。如果版本号低于 19041建议先把 Windows Update 跑一遍把系统补丁打满再考虑装 WSL。实测下来老版本系统强行装 WSL 2 之后经常会遇到“WSL 2 需要更新其内核组件”的报错最后还是要补系统更新不如一开始就升级到位。另外要注意一个容易忽略的点系统盘剩余空间。WSL 2 的虚拟磁盘文件默认存放在C:\Users\用户名\AppData\Local\Packages目录下Ubuntu 发行版装完通常要占 5GB 左右加上 Docker 镜像、编译缓存很快就能到 20GB。如果 C 盘紧张最好先腾出空间或者把发行版迁移到其他盘这个下文会提到。2.2 虚拟化没开启装完大概率报错WSL 2 依赖 Windows 的虚拟机平台而这又依赖 CPU 的硬件虚拟化功能。如果 BIOS 里关闭了虚拟化你后面执行wsl --install时并不会马上报错真正报错是在装完 Ubuntu 第一次启动的时候提示“WSL 2 需要启用虚拟机平台”或者“由于虚拟化被禁用无法运行”。建议在安装前先检查一下虚拟化是否已经开启。打开任务管理器切到“性能”选项卡点击“CPU”右下角会显示“虚拟化: 已启用”或“虚拟化: 已禁用”。如果显示已禁用需要进 BIOS/UEFI 设置里开启Intel 平台对应 Intel Virtualization TechnologyVT-xAMD 平台对应 SVM Mode。这一步看起来简单但很多人会忽略一个细节BIOS 里开启虚拟化之后不能只重启一次需要彻底关机再开机否则某些主板不会真正生效。我之前在一台联想笔记本上遇到过改完 BIOS 设置直接重启任务管理器里仍然是禁用状态冷启动一次才生效。2.3 老版本系统的手动补课启用两个隐藏功能如果你不想升级系统或者用的是 Windows Server 这种更新节奏比较慢的系统也可以手动启用 WSL 相关功能组件。在管理员身份的 PowerShell 里依次执行下面两条命令dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart第一条启用“适用于 Linux 的 Windows 子系统”第二条启用“虚拟机平台”WSL 2 依赖后者。执行完成后重启系统然后下载安装 WSL 2 的内核更新包微软官网搜索“WSL 2 Linux 内核更新包”即可再用wsl --set-default-version 2把默认版本切到 WSL 2。这里有个比较容易踩的坑执行 dism 命令之后系统看起来马上就返回成功了但实际上功能组件可能需要下一次开机才真正配置完成。有些教程让你两条命令一起执行再重启结果重启后 WSL 还是不正常。我的习惯是启用完先重启一次确认两个功能都出现在“启用或关闭 Windows 功能”列表里再继续安装发行版这样报错概率会低很多。还有一个和驱动相关的坑设备管理器里网络适配器或显卡如果出现黄色感叹号提示“由于其配置信息(注册表中的)不完整或已损坏”这通常不是 WSL 本身的问题而是之前卸载某些软件时把系统组件弄坏了。解决方案是右键设备选择“卸载设备”然后点击“扫描检测硬件改动”让系统重装驱动。如果反复不行就到C:\Windows\System32\DriverStore\FileRepository对应的驱动目录确认驱动文件是否齐全再手动指定路径安装。不过这个操作对普通用户来说有点复杂我的建议是先让系统自动重装一次驱动大多数情况能修好。3. 最偷懒的安装路线wsl --install 一行命令的完整拆解3.1 安装前必须确认的两件事在真正执行安装命令之前请先确认两件事当前用户必须是管理员权限PowerShell 要右键“以管理员身份运行”否则wsl --install会因为权限不足直接报错另外确认 Windows 版本符合要求做法在上一节已经说过用winver看一眼。如果你用的系统比较新比如 Windows 11 或者打了全量补丁的 Windows 10 21H2 或更高版本那么安装过程可以简化到一行命令。在管理员 PowerShell 里执行wsl --install这条命令会自动做四件事启用“适用于 Linux 的 Windows 子系统”功能、启用“虚拟机平台”功能、下载并安装 WSL 2 内核、默认安装 Ubuntu 发行版。整个过程完成后会提示重启电脑。3.2 常用参数与自定义安装wsl --install也支持一些可选参数方便按需安装。比如不想要默认的 Ubuntu而是想装 Debian 或 Kali Linux可以先查看可用的发行版列表wsl --list --online终端会输出一串发行版名称和版本号然后可以用-d参数指定wsl --install -d Debian如果你暂时不需要图形界面也不想自动装发行版只想先把 WSL 内核和虚拟机平台准备好可以加--no-distribution参数。这种做法的好处是后续可以完全按照自己的节奏手动导入发行版镜像而不是被默认的 Ubuntu 绑定。我自己一般会指定 Ubuntu 22.04 LTS因为它的生态最成熟遇到问题随便搜一下就有答案。命令是wsl --install -d Ubuntu-22.043.3 重启之后的初始化用户名、密码与 root 权限重启完成后系统通常会自动弹出 Ubuntu 窗口进入初始化流程。这里会让你设置一个 UNIX 用户名和密码注意这个用户名不需要和 Windows 登录名一致而且密码输入时不会显示任何字符不是卡住了是终端故意不回显。初始化完成后终端会进入 Ubuntu 的 shell 环境。这时候先敲一个命令验证一下是否正常工作uname -a如果输出包含 “microsoft-standard-WSL2” 之类的字样就说明已经在 WSL 2 的 Linux 内核里了。接下来建议顺手把 apt 源更新到国内镜像这个我放到第五部分统一讲。初始化时会遇到一个常见疑问为什么sudo还需要输密码因为 WSL 里的用户默认不是 rootsudo 的执行机制和普通 Linux 完全一致。如果你希望免密执行 sudo可以在 WSL 里用sudo visudo编辑 sudoers 文件添加一行但不建议刚装完就改先保持默认等熟悉了 sudo 的用法再按需调整。3.4 验证版本wsl -l -v 和默认发行版切换装好之后回到 PowerShell 里执行下面的命令可以查看所有已安装的发行版及其运行状态wsl -l -v输出大概是NAME STATE VERSION * Ubuntu Running 2VERSION 列显示 2说明用的是 WSL 2。如果不小心装了两个发行版比如 Ubuntu 和 Debian可以用下面命令把默认发行版切换成某一个wsl --set-default Debian星号会移动到对应的发行版前面之后在 PowerShell 里直接输入wsl进入的就是默认发行版。这个细节看起来无关紧要但如果你在公司电脑上同时跑两个发行版做测试切换命令是必须掌握的。4. wsl --install 卡死/太慢的排查链路与离线安装方案4.1 先定位是哪一步慢wsl --install卡住是网上问得最多的问题尤其是输出停在“Downloading WSL kernel”或“Installing Ubuntu”之后长时间不动。我的经验是先区分是哪种慢是网络下载慢还是安装程序在等待什么。如果你看到“Downloading”字样并且等了五到十分钟进度条没动大概率是网络下载问题。微软在安装过程中会从外网 CDN 拉取内核包和发行版镜像国内网络环境下的下载速度波动很大。有一种判断技巧观察任务管理器的网络占用如果网速一直在几百KB甚至几MB波动说明还在下载只是进度显示滞后如果网络占用一直是 0说明下载任务已经挂起或失败。遇到下载卡住我一般会先取消任务Ctrl C然后换一个网络环境重试。实测下来手机热点和公司宽带的下载速度差异非常大如果你在家里一直卡住可以试试开手机热点跑一遍。还有一种常见情况是 DNS 解析异常导致下载连接断断续续可以在 PowerShell 里把 DNS 临时改成公共 DNS比如223.5.5.5或119.29.29.29再重试。4.2 手动下载发行版安装包的替代思路如果wsl --install反复卡在下载阶段可以绕开它改用手动下载的方式。流程分两步先安装 WSL 内核和运行时再手动安装发行版。第一步从微软官方下载 WSL 的内核安装包是一个.msi文件搜索“WSL 2 Linux 内核更新包 x64 MSI”就能找到微软官方下载页。下载后双击安装或者用 msiexec 静默安装msiexec /i wsl_update_x64.msi /quiet第二步下载一个 Linux 发行版的.appx或.appxbundle安装包。微软官方为每个发行版提供了下载链接通常是一个以aka.ms开头的地址比如 Ubuntu 的链接是https://aka.ms/wslubuntu2204这类形式。在浏览器里打开链接会直接下载一个Ubuntu2204.appx文件。拿到.appx文件后在 PowerShell 里用 Add-AppxPackage 命令安装Add-AppxPackage .\Ubuntu2204.appx安装完成之后从开始菜单找到 Ubuntu 图标运行会进入和前面一样的初始化流程。这个方案的优点是可以把控每一步下载失败就重新下载不用反复跑整个安装流程。4.3 纯离线环境的完整部署方案有些公司内网机器不允许访问外网或者网络策略很严格这时候上述所有在线方案都不能用。我碰到过几次这种环境最稳妥的办法是离线部署。思路是这样找一台可以上网的机器下载三样东西——WSL 内核.msi包、你想用的发行版.appx包、以及 WSL 应用本体可选。然后把它们通过 U盘或者内网共享拷贝到目标机器上按顺序安装。目标机器上先启用两个 Windows 功能命令在第二部分已经给过。重启后安装.msi内核包再安装.appx发行版包。如果系统比较新也可以直接进入“设置-应用-高级应用设置”选择“从应用安装程序安装”然后指向你拷贝过来的.appx文件。如果你拿到的不是.appx而是一个.tar.gz的 rootfs 镜像那还有一种更强的导入方式用wsl --import。假设你有一个ubuntu2204.tar.gz可以先把它放到D:\wsl\Ubuntu目录下然后执行wsl --import Ubuntu D:\wsl\Ubuntu .\ubuntu2204.tar.gz --version 2这条命令会把发行版安装到指定目录不占用 C 盘空间。导入完成后可以用wsl -d Ubuntu进入。这个方式特别适合需要把大型 Linux 环境复制到多台机器上的场景我实测导入一个完整开发环境耗时大概十几分钟之后所有工具链都是现成的。4.4 通过商店更新 WSL 本体一劳永逸还有一类“安装太慢”的问题不是网络而是系统自带的 WSL 组件版本太老导致后续操作频繁报错。微软现在推荐的方式是安装商店版的“Windows Subsystem for Linux”应用这个应用包含了 WSL 运行时和最新内核之后的内核更新都通过商店推送不再依赖系统更新。安装商店版 WSL 之后你会看到一个独立的wsl.exe出现后续可以用wsl --update手动检查更新。这样做的好处是即使系统停在旧版本WSL 组件的更新节奏也不被系统更新卡住。热词里频繁出现的 “your version of Windows Subsystem for Linux (WSL) is too old” 报错本质上就是这个原因商店版 WSL 就是最直接的解法。5. 安装完不等于能用初始化配置与实用化改造5.1 换 apt 和 pip 镜像源刚装完必做的第一件事WSL 里跑 Ubuntu最大的优势是能和 Windows 共享网络和剪贴板但系统自带的 apt 源是国外的下载软件包的速度很不稳定。刚装完第一件事就是把 apt 源换成国内镜像。Ubuntu 22.04 的 apt 源配置在/etc/apt/sources.list里22.04 及之后的版本改成了.sources格式路径是/etc/apt/sources.list.d/ubuntu.sources。修改前先备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后用 nano 或 vim 编辑。用 sed 批量替换是比较快的做法比如把archive.ubuntu.com和security.ubuntu.com替换成国内镜像域名。这里以较常见的阿里云镜像为例sudo sed -i s//.*archive.ubuntu.com//mirrors.aliyun.comg /etc/apt/sources.list sudo sed -i s/security.ubuntu.com/mirrors.aliyun.comg /etc/apt/sources.list修改完执行sudo apt update sudo apt upgrade -y如果用的是新版.sources格式需要检查文件里的URIs:那行改为镜像地址。整个过程做完apt update的速度会有肉眼可见的提升从原来可能等几分钟变成几秒钟。Python 开发的话顺手把 pip 源也换掉。在用户目录下创建/home/用户名/.pip/pip.conf写入[global] index-url https://mirrors.aliyun.com/pypi/simple/如果公司或学校有自己的内部 PyPI 镜像优先用内部的速度通常比公共镜像更稳定。5.2 Windows 与 Linux 文件互通跨系统路径的底层逻辑WSL 和 Windows 之间不是孤立的两边可以互相访问对方的文件。在 WSL 里Windows 的所有盘符都挂在/mnt下面。比如 C 盘就是/mnt/c想进入 Windows 的桌面目录cd /mnt/c/Users/你的Windows用户名/Desktop反过来在 Windows 的资源管理器地址栏输入\\wsl$\Ubuntu回车就能进入 WSL 内部的文件系统。或者直接输入explorer.exe .这个命令会在 Windows 资源管理器里打开当前 WSL 目录。日常使用中我习惯把项目文件放在 WSL 内部比如~/projects然后用 VS Code 的 Remote-WSL 打开。因为 WSL 2 访问 Linux 原生文件系统的速度远快于跨文件系统访问如果你把项目放在/mnt/c下面再用 WSL 里的工具去编译打包磁盘 IO 会比较慢。如果你需要把整个发行版迁移到 D 盘可以用导出导入的方式。先关掉 WSLwsl --shutdown wsl --export Ubuntu D:\wsl\ubuntu-backup.tar wsl --unregister Ubuntu wsl --import Ubuntu D:\wsl\Ubuntu D:\wsl\ubuntu-backup.tar --version 2这样能把发行版连同所有安装的软件一起打包迁移是备份和换盘的通用手法。不过注意wsl --unregister会删除当前发行版的用户数据和文件执行前一定要确认已经导出备份。5.3 终端体验字体、Windows Terminal 与 VS Code 联动装好 WSL 之后很多人还是习惯直接在 Windows Terminal 里用 Ubuntu 标签页。Windows Terminal 默认字体是 Cascadia Mono如果你想要接近 macOS 终端的视觉体验我推荐把字体改成 Cascadia Code 或 JetBrains Mono并把字号调到 12 或 13行高设为 1.3 到 1.5 之间。配合一个深色主题比如 One Half Dark 或 Material Ocean观感上就和 macOS 的 iTerm2 很接近了。VS Code 的联动是 WSL 里最核心的开发流。在 Windows 的 VS Code 里安装 Remote-WSL 插件然后在 WSL 的任意目录下执行code .VS Code 会自动连接并打开一个新的窗口底部状态栏会显示“WSL: Ubuntu”。这个模式的原理是 VS Code 的服务端在 WSL 内部运行Windows 上的 VS Code 只作为图形界面展示插件、终端、调试器全部跑在 Linux 环境里。实测下来Python、C、Go 这类项目在 WSL 里开发和直接在原生 Linux 开发几乎没有区别。5.4 实际场景演练在 WSL 里跑 Elasticsearch、Docker 和 binwalk配置好环境后WSL 能干的活就多了。我举三个最常见的例子。跑 Elasticsearch。直接在 WSL 里下载 ES 压缩包解压因为 Linux 环境不需要额外处理 JVM 的 Windows 兼容问题启动命令就是一行./bin/elasticsearch。默认监听地址是 localhostWindows 上的浏览器直接访问http://localhost:9200就能看到响应网络配置是天然打通的。跑 Docker。WSL 2 最常见的用法之一就是作为 Docker Desktop 的后端。装好 WSL 后再安装 Docker Desktop在设置里确保后端选择 WSL 2并且勾选要启用的发行版。这样在 WSL 里输入docker ps就能无缝使用 Docker。如果是纯命令行用户也可以直接在 WSL 里安装 docker-ce 和 docker-compose-plugin不走 Docker Desktop也能正常拉镜像、跑容器。跑 binwalk。binwalk 是固件分析常用的工具直接在 WSL 里用 apt 安装sudo apt install binwalk之后就能对路由器的固件文件做binwalk -e firmware.bin之类的操作。这类 Linux 安全分析工具在 WSL 里运行得很流畅而且得益于 WSL 的轻量特性比开虚拟机方便太多了。6. 高频翻车现场从“WSL 太旧”到 Docker Desktop 报错的修复实录6.1 your version of WSL is too old内核版本过老的升级路径这个报错几乎每个 WSL 用户都会遇到一次特别是在执行wsl --install之后、装新版 Ubuntu 或 Docker Desktop 的时候。原因也很简单系统自带的 WSL 组件版本太低装 Ubuntu 时下载的内核或发行版包超过了它支持的上限。修复方式分两种情况。如果系统中存在较新版本的wsl.exe直接执行升级命令wsl --update如果执行wsl --update后提示已经最新但还是报 too old说明你用到的是旧版 WSL 组件需要安装商店版 WSL。打开 Microsoft Store搜索“Windows Subsystem for Linux”找到那个 Publisher 是微软官方的应用并安装。安装完成后用wsl --version看看版本号如果显示 1.x 甚至 2.x 以上就说明升级成功。我在帮同事排查这个问题时最常见的误操作是不断重装 Ubuntu 发行版但报错一直存在。其实问题不在发行版而在 WSL 运行时本身方向错了使劲折腾也没有用。6.2 Docker Desktop 提示 there was a problem with WSL 的完整排查链路Docker Desktop 是最依赖 WSL 的软件之一它本身不直接和 Windows 内核交互而是通过 WSL 2 里的一个小型发行版来承载 docker 守护进程。所以一旦 WSL 状态不对Docker Desktop 就会弹窗there was a problem with WSL。我的排查链路是这样的第一步在 PowerShell 里执行wsl --status确认 WSL 默认版本是 2并且状态正常。如果这里输出提示需要安装内核组件先补装内核或执行wsl --update。第二步执行wsl --shutdown然后重新打开 Docker Desktop。很多人不知道Docker Desktop 安装完 WSL 后端之后不会自动重启如果你是在装 WSL 之后再装的 Docker Desktop装完最好先重启一次系统否则容易报这个错。第三步如果还是报错打开“启用或关闭 Windows 功能”确认“虚拟机平台”和“适用于 Linux 的 Windows 子系统”都是勾选状态。如果没勾选勾上之后重启再执行wsl --set-default-version 2。第四步去 Docker Desktop 的设置里找到 Resources - WSL Integration确认你要用的发行版已经在启用列表里。如果这里没有启用Docker Desktop 在 Windows 端可以运行但在 WSL 里输入docker会提示找不到命令。按这个顺序排查完绝大多数 Docker Desktop 的 WSL 报错都能解决。如果仍然不行卸载 Docker Desktop 并勾选清理 WSL 数据选项然后重装基本能兜底。6.3 其它高频问题Matlab 识别不到 WSL、WSL 里装 CUDA、binwalk 工具链缺失Matlab 识别不到 WSL 这个问题热词里也有人问。原因是 Matlab 需要在系统环境变量里找到bash.exe的路径或者你在 Matlab 的后续版本中使用 WSL 的新接口时需要更新 WSL 或者手动指定 WSL 的路径。解决方法是先在 PowerShell 里执行wsl --update把 WSL 更新到新版然后检查 Windows 环境变量里是否有C:\Windows\System32\bash.exe。如果还是没有就在 Matlab 的“环境”配置里把 bash 的路径手动加进去。新版 MatlabR2021b 及以上对 WSL 的支持明显改善如果项目依赖这个功能升级 Matlab 是最省事的办法。WSL 里装 CUDA 也是被问到很多的需求。首先要明确一点WSL 2 里的 CUDA 不需要、也不允许安装 Linux 版显卡驱动显卡驱动由 Windows 侧统一提供。你只需要在 Windows 侧安装支持 WSL 的 NVIDIA 驱动然后在 WSL 里安装 CUDA Toolkit 即可。NVIDIA 官网提供的 WSL 版驱动下载包和普通 Windows 驱动包是同一个但安装后会自动支持 WSL。进入 WSL 后安装 CUDA Toolkit 时用官方提供的 apt 源即可。装完之后运行nvidia-smi能看到和 Windows 侧一样的 GPU 信息说明已经打通了。binwalk 工具链缺失的问题比较少见多数是因为只装了binwalk本体没装它的解包依赖。binwalk -e解包时需要若干外部工具比如 sasquatch、jefferson、ubi_reader 等。如果解包时提示某个工具找不到可以单独安装对应的源码包或 Python 模块。有些版本还需要先把dd和tar装好这些基础工具在 Ubuntu 里默认都有不需要额外担心。最后分享一个我自己的习惯每次装完 WSL我先把 WSL 更新到商店版然后改掉 apt 源和 pip 源再装一个build-essential和curl接下来才去装 Docker 或者其他业务工具。这套 “先更新运行时、再换源、再装基础编译工具” 的顺序能避免很多莫名其妙的依赖问题。如果你也想让 WSL 变成日常开发的主力环境不妨照这个顺序走一遍省下的排错时间足够多看好多篇文档了。
返回列表