极简 WSL2 教程:开发、部署大模型必备

WSL 是什么?

Windows Subsystem for Linux (WSL)[1],WSL = Windows Subsystem for Linux。Windows 里的 Linux 子系统。能在 Windows 系统中直接运行完整的 Linux 环境,无需安装虚拟机或配置双系统,且运行流畅无明显卡顿。Windows 的 C 盘 D 盘在 WSL 里路径是:/mnt/c//mnt/d/

它和虚拟机有什么区别?

  • 虚拟机:笨重、占内存、开机慢、文件互通麻烦
  • WSL:轻量、秒开、和 Windows 深度融合、几乎无性能损耗
  • Windows11 现在默认就是 WSL2,非常成熟。
  • 运行各种开源项目更顺畅,不会遇到 Windows 特有的奇葩问题。

安装 WSL 的前提

WSL 只能安装在 Windows 10 和 Windows 11 上面。Windows 10 的版本号必须大于等于 2004,且内部编译版本必须大于等于 19041。

查看你的 Windows 版本

按键盘的Win + R,然后输入winver,点击确定按钮。

查看上面截图中的版本号,如果你是 Windows10 且版本号大于等于 2004,OS 内部版本大于等于 19041,就可以安装 WSL。

Windows 的版本号命名规则

版本 2004:前两位代表 2020 年,04 代表 2020 年的 4 月份。

版本: 23H2: 前两位 23 代表 2023 年,H2 代表 2023 年的下半年。H1 代表 2023 年的上半年。

OS 内部版本:OS Build 代表 Windows 的内核编译版本。

安装 WSL

注意不要通过命令行的方式安装 WSL

不要通过wsl --install命令行的方式去安装 WSL,会出现安装进度卡在 0.0%的情况。微软官方自己都说了。

查看 WSL 的版本

cmd 复制代码
wsl --version
wsl --status

设置 WSL 的默认版本为 WSL2

如果你的 WSL 版本不是以 2 开头的,请务必执行如下命令,将你的 WSL 版本设置为 WSL2。这是微软官方的建议。

csharp 复制代码
# 设置 WSL2 为默认版本
wsl --set-default-version 2

查看可用的安装列表

css 复制代码
wsl --list --online

上图中前面带*号是默认的 Linux 发行版本。很多人不知道 Linux 发行版本是什么意思,Linux 本身并不是一个完整的操作系统。Linux 只是一个操作系统的内核,就像安卓系统一样。如果你的安卓手机是原生的安卓系统,那基本上没法正常使用。Linux 发行版,就相当于小米公司的手机操作系统一样。小米手机的操作系统是基于开源的安卓系统开发的。WSL 默认的 Ubuntu(乌班图)就是开源社区基于 Linux 内核开发出的一个更易使用的 Linux 操作系统。

手工安装 WSL

由于 wsl --install 命令安装 WSL 极易出现进程卡死问题,因此本文采用手动方式安装。首先需通过以下命令确保 Windows 系统已开启 WSL 相关功能:

启用 WSL 功能

bash 复制代码
# 启用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

查看 WSL 功能是否已启用

bash 复制代码
# 检查 WSL 功能状态
dism.exe /online /get-featureinfo /featurename:Microsoft-Windows-Subsystem-Linux

启用虚拟机平台(WSL2 必需)

bash 复制代码
# 启用虚拟机平台(WSL2 必需)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

查看虚拟机平台是否已启用

bash 复制代码
# 检查虚拟机平台状态
dism.exe /online /get-featureinfo /featurename:VirtualMachinePlatform

下载并安装 WSL2 内核更新包

下载 WSL2 的内核安装包: [wsl_update_x64.msi]。下载地址为: WSL2 内核更新包下载地址[2] 。

WSL2 内核(Kernel)是运行 WSL2 的 "底层驱动 / 核心程序"(实际文件)。WSL2 架构是 Windows 系统 "支持" 运行 WSL2 的模式(软件逻辑)。「WSL2 架构」和「WSL2 内核」是两回事。虽然你电脑能支持 wsl 命令,但是依然需要安装 WSL2 的内核更新包。

WSL 的内核安装成功后,我们还需要安装 Ubuntu 这个 Linux 操作系统。

下载 Ubuntu 22.04 离线安装包(微软官方)

Ubuntu 下载地址:Ubuntu 22.04 安装包下载地址[3]。

下载完成后,在 PowerShell 中切换到安装包的下载目录,执行以下 Add-AppxPackage 命令解压 Ubuntu 安装包:

bash 复制代码
# 解压Ubuntu安装包
Add-AppxPackage .\Ubuntu2204-221101.AppxBundle
vbnet 复制代码
# 找到解压后的ubuntu的可执行命令
Get-Command *ubuntu* | Select-Object Name, Source

下载的 .AppxBundle 是 Ubuntu 的 "安装包文件",执行 Add-AppxPackage 仅把文件解压到系统目录,但 Ubuntu 作为 WSL 分发版,需要手动执行一次启动程序完成:

makefile 复制代码
# 执行系统里的 ubuntu.exe 完成初始化注册
C:\Users\yourname\AppData\Local\Microsoft\WindowsApps\ubuntu.exe

请务必记录好安装过程中设置的用户名和密码(后续操作需频繁使用)。

安装成功了

查看 WSL 的状态

PowerShell命令行窗口里面执行如下命令,查看 WSL 的状态:

bash 复制代码
# 查看wsl的状态
wsl --status

查看已安装的 Linux 发行版及对应的 WSL 版本

bash 复制代码
# 查看wsl的已安装的Linux发行版本
wsl --list --verbose
# 简写版(效果一样)
wsl -l -v

使用 WSL

WSL Settings-设置 WSL

打开 WSL

通过 PowerShell 命令启动 Ubuntu

bash 复制代码
#通过 WSL 命令启动
wsl -d Ubuntu

直接以 root 用户启动 Ubuntu

bash 复制代码
# 直接以root用户启动Ubuntu
wsl -u root

切换到 root 用户 sudo -i

bash 复制代码
# 切换到root用户,需要输入普通用户的密码
sudo -i

给 root 用户设置密码 sudo passwd root

bash 复制代码
# 给root用户设置密码,一定要记好你设置的密码
sudo passwd root

su 命令切换到 root 用户

bash 复制代码
#切换到root用户
su

WSL 的官方文档

WSL 的官方文档[4]

常见问题

常见问题[5]

结尾

关注我,下篇文章分享通过 WSL 的方式安装 OpenCode。这是 OpenCode 官方建议的在 Windows 上面的安装方式。通过 WSL 安装 OpenCode 可以得到更好的兼容性和更高的性能。

最重要的是:通过 WSL 安装ollama更加方便,也不容易出现 Windows 独有的兼容性问题。

尤为重要的是:后续我们将通过 WSL 基于 ollama 部署本地大模型,相比直接在 Windows 系统部署,WSL 方式不仅操作更便捷,大模型的运行性能也更优。

本地大模型部署好之后,就不用花钱买Token了。关注我,(❁´◡`❁)。

参考资料 [1]

Windows Subsystem for Linux (WSL): learn.microsoft.com/en-us/windo...

2

wsl_update_x64.msi]`。下载地址为: [WSL2 内核更新包下载地址: wslstorestorage.blob.core.windows.net/wslblob/wsl...

3

Ubuntu 22.04 安装包下载地址: aka.ms/wslubuntu22...

4

WSL 的官方文档: learn.microsoft.com/zh-cn/windo...

5

常见问题: learn.microsoft.com/en-us/windo...

相关推荐
痴心阿文2 小时前
npx create-next-app@latest从Vue迁移的最佳实践
开发语言·前端·javascript
WebGISer_白茶乌龙桃2 小时前
基于 Cesium 的 GLB 建筑模型分层分房间点击拾取技术实现
前端·javascript·vue.js·webgl·cesium
JY.yuyu2 小时前
Java Web上架流程(Nginx反向代理+负载均衡 ,Apache配置,Maven安装打包,Tomcat配置)
java·开发语言·前端
紫_龙2 小时前
最新版vue3+TypeScript开发入门到实战教程之路由详解二
前端·javascript·typescript
嵌入式小能手2 小时前
飞凌嵌入式ElfBoard-环境变量之添加修改环境变量setenv
服务器·前端·javascript
polarisya2 小时前
vue组件二次封装
前端·javascript·vue.js
郭泽斌之心2 小时前
Live2D工程对接Fay数字人框架
前端·经验分享·fay数字人
前端搬砖人沐兮2 小时前
被忽视的宝藏:深入解读 createRangeFromPoint 的前世今生与实战技巧
前端
kyriewen2 小时前
手写 Promise:从“我会用”到“我会造”
前端·javascript·面试