news 2026/10/1 3:33:38

Windows10启用WSL2安装Ubuntu22.04完整指南:从零配置到排错

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows10启用WSL2安装Ubuntu22.04完整指南:从零配置到排错

先说结论:Windows10下启用WSL并安装Ubuntu22.04,并没有很多人想象的那么复杂。即使你对 Linux 几乎没接触过,只要照着下面的流程走,半小时内就能在你现有的 Windows 系统里跑起来一个真正的 Ubuntu 环境,而且不用装虚拟机、不用做双系统、不用重启切换到另一个系统。

这个方案解决的是很实在的痛点:很多时候你只是需要 Linux 的命令行环境,需要跑点 Python 脚本、编译点东西、装点服务端软件,或者练一练 Linux 操作。为此专门装一台虚拟机很笨重,做双系统又太麻烦,而 WSL 就是在 Windows 里直接开一条“Linux 通道”,打开终端就能用,文件还能互访。这篇文章适合想在 Windows10 上用 WSL2 装 Ubuntu22.04 的开发者、运维新人,以及所有不想折腾双系统但偶尔要接触 Linux 环境的人。

我自己前前后后帮同事和朋友处理过几十次 WSL 安装问题,踩过的坑并不少。这篇文章不打算讲那些官网上能查到的废话,而是把我实际安装、配置、排错的过程完整拆给你看,重点标注出哪些步骤容易翻车,以及出了问题怎么自己救回来。

1. WSL是什么?为什么Windows10用户需要它

1.1 WSL1和WSL2的核心差异

WSL 的全称是 Windows Subsystem for Linux,翻译过来就是“适用于 Linux 的 Windows 子系统”。它和虚拟机的最大区别在于:虚拟机是完整模拟一台电脑,在里面装一个完整 Linux 系统;而 WSL 是 Windows 原生提供的一层兼容层,让你直接运行 Linux 二进制程序。

目前市面上看到的 WSL 其实分两个大版本:

对比项WSL1WSL2
架构系统调用翻译层轻量级虚拟机(真正 Linux 内核)
内核没有独立 Linux 内核有完整 Linux 内核
文件读写性能跨文件系统访问很快跨文件系统访问较慢,Linux 内部文件操作很快
兼容性部分软件无法运行几乎兼容所有主流 Linux 软件
Docker 支持很弱原生支持,Docker Desktop 可以直接用 WSL2
内存占用低稍高,但可限制

我用一句话给你概括:WSL1 像一个“翻译官”,把 Linux 命令翻译给 Windows 听,快但有些话翻译不了;WSL2 像在 Windows 里开了一家“迷你客栈”,虽然客栈本身有开销,但 Linux 软件进去之后就是完全原生的体验,想干嘛都行。

所以现在新安装的环境中,我强烈建议直接用 WSL2,而不是 WSL1。尤其你要在 Ubuntu 里装 Docker、跑 CUDA 这类依赖内核特性的软件,WSL1 基本是没法用的,WSL2 则能完美跑起来。

1.2 WSL能做什么,有哪些明显边界

WSL2 配合 Ubuntu22.04,对日常开发来说已经足够覆盖大部分需求:

  • 跑 Python、Node.js、Go、Rust 等跨平台开发环境;
  • 直接使用 apt 安装 Linux 下的各类软件包;
  • 在 Windows 上用 VSCode 连接 WSL,文件编辑在 Windows 侧,执行环境在 Linux 侧;
  • 使用 Docker Desktop 时把引擎放在 WSL2 后端,比 Hyper-V 虚拟机轻量很多;
  • 做 NVIDIA GPU 或 AMD GPU 的本地深度学习环境,WSL2 可以直接调用显卡。

但也有几件事是 WSL 不太适合的,我建议你先有个预期:

  • 不适合跑带图形界面的完整 Linux 桌面环境。虽然能装 X Server 或者用 WSLg,但体验绝对不如正经虚拟机,日常办公还是回 Windows;
  • 不适合做需要稳定开机运行的服务器。WSL 的生命周期和 Windows 会话绑定,关掉终端或重启系统之后,里面的服务不会像真正的 Linux 服务器那样自启(除非你手动配置 systemd 和自启动任务);
  • USB 设备直通比较麻烦。虽然新版 WSL 支持 USBIP 等方式,但配置复杂度偏高,如果你经常要插 USB 设备,建议优先考虑虚拟机。

搞清楚这些边界,你就不会抱着错误的期待去安装,后面用起来也不容易骂娘。

2. 正式安装前的三件事:版本、虚拟化和系统功能

很多人在安装 WSL 时报错,并不是 WSL 本身的问题,而是前置条件没准备好。我建议你在动手之前花五分钟把下面三件事确认一遍,这比装到一半再排查强得多。

2.1 确认Windows10的版本与Build号

WSL2 对 Windows10 的版本有硬性要求。理论上需要 Windows 10 版本 2004(内部版本号 19041)及以上。低于这个版本,你用不了 WSL2,只能用 WSL1,或者先升级系统再说。

查看方法很快:按Win + R,输入winver,回车。弹窗里会显示系统版本和内部版本号。

如果你的版本低于 2004,建议先去 Windows Update 把系统更新到最新。这一步别偷懒,很多人卡在后面的错误上,回头一看全是系统版本太老。顺带提醒一句:确保你的 Windows10 是正常激活状态,某些精简版、Ghost 版系统在启用 WSL 功能时非常容易出莫名其妙的问题,我踩过不止一次。

2.2 到BIOS里确认虚拟化是否开启

WSL2 依赖虚拟化技术,所以 BIOS 里的 Intel VT-x 或者 AMD SVM 必须处于开启状态。

判断系统当前是否已经启用虚拟化,最简单的方式是打开任务管理器,切到“性能”选项卡,看左下角“虚拟化”一栏,显示“已启用”就没问题。如果显示“已禁用”,需要重启电脑进 BIOS,在 CPU 配置或高级选项里找到 Intel Virtualization Technology 或 SVM Mode,把它设为 Enabled,然后保存退出。

这里有个很多人忽略的细节:就算你以前开过 Hyper-V,也不代表虚拟化就一定开着。WSL2 和 Hyper-V、虚拟机平台之间有复杂的依赖关系,最稳妥的办法就是先确认 BIOS 虚拟化处于开启状态。

2.3 把两个Windows功能打开:WSL与虚拟机平台

WSL 安装的核心其实是两个 Windows 功能:

  • 适用于 Linux 的 Windows 子系统:这个不用多说,是 WSL 的基础;
  • 虚拟机平台:WSL2 的轻量虚拟机依赖这个功能。

打开方式有两种。

方式一:图形界面操作

按Win + R,输入optionalfeatures,回车,在弹出的“Windows 功能”窗口里勾选这两项,点击确定。系统会提示重启,先不要急着重启,建议把下面的命令行方式也跑一遍再重启,刚好合并成一次。

方式二:管理员 PowerShell 命令

右键开始菜单,选择“Windows PowerShell(管理员)”或“终端(管理员)”,执行两条命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -All -NoRestart Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All -NoRestart

如果执行后提示需要重启,那就重启一次。这两条命令执行成功的话,在“Windows 功能”界面里对应选项也会变成勾选状态。

2.4 提前更新WSL内核组件

启用完上面两个功能并重启之后,还有一步经常被遗漏:更新 WSL 内核。Windows10 自带的 WSL 内核版本往往比较老,可能导致 Ubuntu22.04 装上之后启动不了。

最简单的方式是在管理员 PowerShell 里执行:

wsl --update

这个命令会把 WSL 的内核组件升级到最新版。如果你执行的时候提示命令不存在,说明你的 WSL 版本太旧,这时候可以先去 Microsoft Store 搜“Windows Subsystem for Linux”手动安装最新的 WSL 应用,然后再继续后面的步骤。

3. 从零到一:一条命令启用WSL并安装Ubuntu22.04

前置条件都搞定之后,安装环节其实非常快。根据你的 Windows10 版本新旧程度,我给你两条路径,任选一条都能走到终点。

3.1 新版Windows10的快捷安装方式:wsl --install

如果你的 Windows10 版本比较新(建议内部版本号 19045 及以上,也就是 22H2),并且已经安装过较新的 WSL 组件,那么直接在管理员 PowerShell 里执行:

wsl --install

这条命令会做四件事:启用 WSL 功能、启用虚拟机平台、安装 WSL2 内核、默认安装 Ubuntu 发行版。整个过程可能持续几分钟,中间可能会要求重启。重启之后系统会自动弹出 Ubuntu 的初始化窗口。

但注意,wsl --install默认安装的是 Ubuntu 最新稳定版,不一定就是 Ubuntu22.04。如果你一定要装的是 22.04,则需要在命令里指定发行版名称。

3.2 老版本Windows10的手动安装路径

如果你的系统是 Windows10 2004 到 21H2 之间,且不想折腾自动安装,就用手动路径。其实也很简单:

  1. 按前面的方法启用“适用于 Linux 的 Windows 子系统”和“虚拟机平台”;
  2. 重启电脑;
  3. 管理员 PowerShell 执行wsl --set-default-version 2,把默认 WSL 版本设为 2;
  4. 到 Microsoft Store 搜索“Ubuntu 22.04.3 LTS”,点击安装;
  5. 安装完成后从开始菜单启动 Ubuntu,进行初始化。

这套流程在网络条件差的时候反而更稳定,因为 Store 有断点续传能力,WSL 命令行自动安装偶尔会卡在半路。

3.3 指定安装Ubuntu22.04的具体方法

如果你明确要 Ubuntu22.04,最简单的方法是先看有哪些发行版可选。管理员 PowerShell 执行:

wsl --list --online

输出列表里会有一行 “Ubuntu-22.04”。看到之后,直接执行:

wsl --install -d Ubuntu-22.04

如果是通过 Store 手动安装,则在商店里搜“Ubuntu 22.04.3 LTS”即可。这里有个小提醒:商店里同时有“Ubuntu”、“Ubuntu 22.04.3 LTS”、“Ubuntu 24.04.1 LTS”等好几个版本,名字很像,注意看准“22.04”字样,别装成别的版本。

3.4 重启之后的第一件事:验证WSL版本

安装完成并重启之后,先在 PowerShell 里执行:

wsl --status wsl --list --verbose

第二条命令能看到所有已安装发行版的列表以及 WSL 版本。如果 Ubuntu-22.04 那一行的 VERSION 列显示是 2,恭喜你,WSL2 已经就位。如果显示是 1,说明还不小心停留在 WSL1,执行:

wsl --set-version Ubuntu-22.04 2

手动把它转换到 WSL2。转换过程可能需要一两分钟,完成后再次查看版本确认。

注意:如果你的电脑 BIOS 虚拟化没有开启,或者系统版本低于要求,这里转换时会报错。别慌,回炉检查第 2 章的准备工作就行。

4. Ubuntu22.04首次初始化:账号、源、基础工具一次配齐

WSL 安装成功只是万里长征第一步,真正影响体验的是首次初始化。下面这些步骤我建议你老老实实做一遍,能省掉后面很多麻烦。

4.1 第一次打开Ubuntu终端时该填什么

第一次启动 Ubuntu 终端时,系统会提示创建一个 UNIX 用户名和密码。这个用户名不是 Windows 用户名,也不是 root,而是你在 Ubuntu 里的普通用户。

填用户名时注意:只能用小写字母和数字,并且不能以数字开头。比如zhangsan、dev、ubuntu都可以,但ZhangSan、123abc这种会被拒绝。密码输入的时候终端不会显示任何字符,这是正常现象,别以为键盘坏了。

创建完用户后,这个用户默认拥有 sudo 权限,也就是可以用sudo命令执行管理员操作。首次使用 sudo 时会提示输入密码,输入刚才设置的那个密码就行。

有些教程会建议你直接设置 root 密码,我建议如果没有特殊需求,不要切换到 root 使用,用普通用户 + sudo 更安全,也符合 Linux 使用习惯。真要设置 root 密码的话,执行:

sudo passwd root

连续输两次新密码即可,日常还是用普通用户登录。

4.2 更换国内镜像源,让apt不再龟速

Ubuntu 官方软件源在国内访问速度不稳定,不换源的话,apt update经常卡到怀疑人生。更换源的核心操作就是编辑/etc/apt/sources.list文件。

先备份,再修改。备份很重要,万一改坏了还能还原:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后用 nano 编辑器打开:

sudo nano /etc/apt/sources.list

将文件内容里的archive.ubuntu.com和security.ubuntu.com替换成清华镜像源的地址。以 Ubuntu22.04 为例,文件里应该出现的是http://archive.ubuntu.com/ubuntu/,你需要把它改成https://mirrors.tuna.tsinghua.edu.cn/ubuntu/。

实际操作时最简单的方式是直接把里面所有http://archive.ubuntu.com/ubuntu/批量替换成https://mirrors.tuna.tsinghua.edu.cn/ubuntu/,把http://security.ubuntu.com/ubuntu/也替换成https://mirrors.tuna.tsinghua.edu.cn/ubuntu/。保存退出后执行:

sudo apt update sudo apt upgrade -y

如果你是第一次在 WSL 里跑 update,可能时间会长一点,耐心等它跑完。升级包的时候如果提示有“kernel”相关的包,不用太在意,WSL 的内核由 Windows 侧管理,Ubuntu 里的内核升级不影响实际运行。

4.3 安装常用开发工具链

换完源之后,建议顺手装上最常用的一批基础工具,避免后面用到一个装一个:

sudo apt install -y build-essential python3 python3-pip git curl wget net-tools unzip zip
  • build-essential包含 gcc、g++、make 等编译工具,很多软件从源码安装时都要用;
  • python3和python3-pip是 Python3 环境和包管理器;
  • git不用说,代码管理必备;
  • curl和wget是下载工具,后面装软件经常用到;
  • net-tools提供 ifconfig 等网络命令,虽然新系统推荐 ip 命令,但很多老教程还是用 ifconfig。

装完后可以简单验证一下:

python3 --version gcc --version

看到版本号正常输出,说明基础环境已经通透了。

5. 进阶配置:把WSL搬到D盘,并接上日常开发流

很多人刚装上 WSL 时觉得挺好用,用几天就发现 C 盘空间急剧缩水。Ubuntu 发行版默认装在 C 盘用户目录下,系统盘本来就紧张的用户会非常难受。这一章主要解决这个痛点,顺手把日常开发流也接通。

5.1 不想占C盘空间?导出导入几步搞定

把 WSL 发行版迁移到 D 盘的思路很简单:先把现有的 Ubuntu 22.04 导出成一个 tar 文件,然后注销原来的发行版,再用导入的方式把它装到 D 盘指定目录。这个过程不会丢你已经装好的软件和数据。

第一步,关闭正在运行的 WSL,然后在 PowerShell 里导出:

wsl --shutdown wsl --export Ubuntu-22.04 D:\wsl-backup\ubuntu-22.04.tar

第二步,注销原来的发行版:

wsl --unregister Ubuntu-22.04

这里要提醒一下,--unregister会删除该发行版的所有数据和配置,但因为你已经导出了备份包,所以没问题。

第三步,在 D 盘建好目录,再导入:

mkdir D:\WSL\Ubuntu2204 wsl --import Ubuntu-22.04 D:\WSL\Ubuntu2204 D:\wsl-backup\ubuntu-22.04.tar --version 2

导入完成后,你会发现 WSL 里的用户变成了 root,而且默认登录用户不是之前创建的那个普通用户。这是因为导入时 WSL 默认以 root 身份进入。你可以在 Ubuntu 里编辑/etc/wsl.conf,加上如下内容:

[user] default=你的用户名

把“你的用户名”替换成之前创建的用户名,然后在 PowerShell 执行wsl --shutdown,再次进入就是普通用户了。

5.2 用VSCode和Windows Terminal接管WSL

WSL 的最大乐趣在于,你不需要在 Linux 里折腾图形界面,直接用 Windows 侧的工具操作它。

VSCode 连接 WSL 非常简单:在 Windows 侧安装 VSCode,再到扩展市场安装一个 “WSL” 扩展(扩展名也叫 Remote - WSL)。安装完成后,在 Ubuntu 终端里敲:

code .

VSCode 就会自动以 WSL 模式打开当前目录。你在左侧资源管理器里看到的文件就是 Linux 文件,终端也是 Ubuntu 终端,完全无缝。

Windows Terminal 更不用说,它已经成为 Windows 下最好用的终端工具。你可以在 Microsoft Store 里装一个,然后在设置里添加 Ubuntu-22.04 配置项,以后就能从 Windows Terminal 的下拉菜单直接进 Ubuntu。

5.3 让systemd正常工作,顺便限制WSL2资源占用

Ubuntu22.04 使用的是 systemd 管理服务,但默认情况下 WSL 不会启动 systemd,这导致systemctl命令会报错。解决办法也很直接:编辑/etc/wsl.conf,写入:

[boot] systemd=true

保存后在 Windows PowerShell 里执行:

wsl --shutdown

重新进入 WSL 后,执行systemctl status验证,如果能看到正常输出,说明 systemd 已经接管服务了。以后你就能用systemctl enable设置容器或服务开机自启了。

资源限制方面,WSL2 默认会使用部分宿主机内存和 CPU,如果你觉得电脑变卡,可以在 Windows 用户目录下新建一个.wslconfig文件:

[wsl2] memory=4GB processors=4 swap=2GB

保存后在 PowerShell 里执行wsl --shutdown,重新启动 WSL,配置就生效了。限制内存和 CPU 之后,开发环境完全够用,而且 Windows 本体不会觉得卡。

5.4 文件互操作:Windows与Linux无缝交换

WSL 的文件互操作做得很顺手,双向访问是原生支持的:

  • 在 Ubuntu 里访问 Windows 文件,路径是/mnt/c/、/mnt/d/这样。比如 Windows 的 C 盘用户目录就是/mnt/c/Users/你的用户名/。
  • 在 Windows 里访问 Ubuntu 文件,在资源管理器地址栏输入\\wsl$\Ubuntu-22.04\home\你的用户名,就能像访问网络邻居一样直接浏览 Linux 文件。

这里有一个 WSL2 特有的性能现象,我要重点提一下:如果你的项目文件放在/mnt/c/下面,WSL2 读写这些文件的速度会明显偏慢,因为文件要跨系统边界传输。但如果项目文件放在 WSL 自己的文件系统里,比如~/project,读写性能就非常快。

所以我的建议是:用 WSL 开发时,项目代码放 Linux 侧,Windows 和 Linux 之间只交换成品文件。这样既保证性能,又不会搞得两边目录混乱。

5.5 在WSL里跑Docker和GPU环境的可行性说明

装好 WSL2 之后,Docker 基本是白送的体验。你可以安装 Docker Desktop,然后在设置里把后端切换成 “Use WSL 2 based engine”,它会自动关联你的 Ubuntu-22.04。这样你在 Ubuntu 终端里直接执行docker命令就能用,不需要在 Linux 里单独装 Docker daemon。

GPU 方面,WSL2 对 NVIDIA 和 AMD 的显卡支持都比较成熟。你在 Windows 侧装好最新的显卡驱动后,在 Ubuntu 里安装对应的 CUDA 工具包或者 PyTorch 的 WSL 版本,就能直接跑 GPU 训练。这个方向展开讲又是一长篇文章,这里先告诉你结论:WSL2 确实能跑 GPU 任务,而且配置比原生 Linux 双系统省心不少。

6. 常见安装失败与排查实录

整理了这么多次安装经历,我把出镜率最高的问题集中列出来,按症状、原因、解决办法的顺序给你,碰到类似的直接对照处理。

6.1 安装时报错 createvm/hcs 类错误

这个错误很典型,具体表现是安装发行版时报一连串包含createvm、hcs、error_file_n关键词的错误。它其实是一类错误,不是单一原因。我遇到过的原因大致有三种:

第一种是虚拟机平台功能没有真正启用。回到第 2.3 节,用管理员 PowerShell 执行那条Enable-WindowsOptionalFeature命令,确认VirtualMachinePlatform功能状态。也可以用下面命令看一下:

Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

State 显示Enabled才算开启,显示Disabled就重新启用一遍。

第二种是 hypervisor 没有自动启动。以管理员身份执行:

bcdedit /set hypervisorlaunchtype auto

然后重启电脑。这个命令会把 hypervisor 开机启动开关重新打开,WSL2 依赖它来运行虚拟机。

第三种是系统组件损坏导致虚拟化服务不稳定。可以尝试用 DISM 命令修复系统组件:

DISM.exe /Online /Cleanup-image /Restorehealth

修复完成后再重启,重新执行wsl --update。

6.2 组件存储已损坏的修复思路

安装 WSL 时偶尔会看到提示“WSL 安装组件存储已损坏”,或者类似 Windows 功能无法安装的提示。这通常和 Windows 的系统组件存储有关,和 WSL 本身关系不大。

按顺序执行下面三条命令,修复完再重启:

DISM.exe /Online /Cleanup-image /Restorehealth sfc /scannow wsl --update

第一条命令会从 Windows 更新服务器拉取缺失的系统文件来修复组件,可能要十几分钟,别中途关掉。第二条命令检查系统文件完整性。第三条在修复后重新补装 WSL 组件。

如果修复完仍然无效,我最后的经验是干脆把之前启用过的 WSL 功能关掉,重启,再重新启用一次。相当于让 Windows 彻底清理一遍后再重建,在很多诡异问题上有奇效。

6.3 WSL启动后网络不通 / apt解析不了域名

进入 Ubuntu 后执行sudo apt update,如果提示无法解析域名,或者连接超时,多半不是源的问题,而是 WSL 的 DNS 配置出问题了。

可以先检查一下当前的 DNS 配置:

cat /etc/resolv.conf

如果里面的 nameserver 有问题,最简单的办法是手动把它指向公共 DNS 或者你本地路由器的网关。编辑/etc/resolv.conf:

sudo nano /etc/resolv.conf

把nameserver改成8.8.8.8或114.114.114.114,保存后立刻测试:

ping -c 4 mirrors.tuna.tsinghua.edu.cn

能 ping 通就说明网络恢复了。不过/etc/resolv.conf属于系统自动生成的文件,有时 WSL 重启后会被重置。如果想要永久生效,需要关闭 WSL 的自动生成功能。编辑/etc/wsl.conf:

[network] generateResolvConf = false

然后wsl --shutdown,再进入 WSL 后手动创建/etc/resolv.conf并写入稳定配置,这样就不会被覆盖了。

6.4 安装卡住、黑屏、无法进入终端的处理

有些用户反映 Ubuntu22.04 装完启动后,终端窗口一直黑着,光标闪来闪去就是不出登录界面。这种情况大多数不是系统坏了,而是首次初始化卡在某一步,或者终端窗口和 WSL 进程之间的连接出了问题。

优先尝试强制关闭:

wsl --shutdown

然后再重新打开 Ubuntu 终端。如果还不行,在 PowerShell 里执行:

wsl --terminate Ubuntu-22.04

然后重新启动。

如果始终黑屏,可以尝试在 PowerShell 里运行:

wsl -d Ubuntu-22.04 -u root

强制以 root 身份进入。能进去就说明 WSL 内核没问题,只是初始化过程出过状况。进去后检查一下是否有残留的初始化进程,或者直接重新设置默认用户:

ubuntu2204 config --default-user 你的用户名

注意这里的ubuntu2204是系统安装的可执行文件名,具体可以通过在 PowerShell 里输入ubuntu2204.exe按 Tab 补全来确认。

6.5 小技巧汇总:备份、重置、注销发行版

WSL 用久了之后,备份和重置能救你不少次。

备份发行版:

wsl --shutdown wsl --export Ubuntu-22.04 D:\backup\ubuntu.tar

恢复发行版:

wsl --import Ubuntu-22.04 D:\WSL\Ubuntu2204 D:\backup\ubuntu.tar --version 2

完全重置发行版:

wsl --unregister Ubuntu-22.04

注意,--unregister会删除该发行版所有数据,执行前必须确认备份已经做好。这个命令我在处理“怎么折腾都搞不定”的疑难杂症时用过很多次,效果立竿见影,前提是你要能接受从头再配置一遍环境。

还有一个非常实用的小技巧:当你同时装了多个发行版时,用wsl --set-default Ubuntu-22.04设置默认发行版,这样在 PowerShell 里直接输wsl就会进入 Ubuntu22.04,而不用每次指定-d参数。

7. 装好WSL之后,我还想再啰嗦几句

如果你已经顺利跑起来 Ubuntu22.04,那这篇文章的主要任务就完成了。最后分享一点我自己在使用中总结的真实体会。

第一,东西尽量放 Linux 文件系统里,别放在/mnt/c下面。这是 WSL2 和虚拟机最大的不同,很多人在两边路径之间反复横跳,然后抱怨 WSL 卡,其实是因为文件在跨文件系统读写。我实际测下来,同样的项目放在~/code和放在/mnt/c/Users/xxx/code性能差距非常明显。记住一句话:在哪儿开发的代码就在哪儿放。

第二,Windows 侧的杀毒软件和 WSL 偶尔会打架。个别安全软件会对 VHD 文件或者 WSL 进程进行拦截,导致启动缓慢甚至失败。如果你装了比较激进的安全工具,遇到 WSL 动不动打不开的问题,可以尝试把 WSL 相关目录加入白名单,或者卸载安全软件后再测试。

第三,建议把sudo apt upgrade当成每周固定动作。WSL 里的 Ubuntu 系统不会自动升级,安全更新和软件源更新都需要你手动执行。固定周期做一次升级,既能保证软件版本正常,也能减少某天突然因为依赖过旧而装不了新软件的概率。

第四,遇到问题不要急着卸载重装。WSL 的排查路径是固定的:先wsl --shutdown重启 WSL,再检查 Windows 功能是否完整,再查 DISM 和 sfc,最后才考虑导出发行版并重新导入。乱重装只会让你在重复踩坑中浪费时间。

Windows10 下启用 WSL 并安装 Ubuntu22.04,这件事的门槛其实比我刚开始接触时低了很多。只要前置条件确认清楚,安装命令走一遍,再花十分钟把源和基础工具配好,一个顺手好用的 Linux 环境就有了。后面无论是做开发测试、跑自动化脚本,还是学 Linux 运维,你都能在这个环境里放开手脚折腾。祝大家好运,有问题欢迎带着错误代码来找我聊。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 3:32:56

PyTorch模型保存:ckpt与pth差异、断点续训与避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/1 3:32:00

Nginx反向代理必知:$host、$http_host、$proxy_host三变量深度解析

上次帮同事排一个反代问题,前端所有登录跳转都指向内网IP,用户一登录就被踢出去。抓包看后端请求,发现后端收到的Host根本不是用户访问的域名,而是proxy_pass里写的那个内网地址。问题就出在proxy_set_header Host到底该写$http_h…

作者头像 李华
网站建设 2026/10/1 3:31:50

CSV与Pandas高效数据处理:从读写到清洗合并的实践指南

1. 为什么这组搭配绕不开:CSV 和 Pandas 的分工1.1 先看懂 CSV 的真面目CSV(Comma-Separated Values)本质上就是一个纯文本文件,每一行是一条记录,每个字段用逗号分隔。它的历史能追溯到早期表格软件时代,几…

作者头像 李华
网站建设 2026/10/1 3:31:46

难题分级:从项目级到世界级,如何炼成真正的专家?

先说结论:真正的专家是定义和解决难题的过程中锻炼出来的。这些年我接触过不少创业者、技术负责人、行业前辈,也复盘过自己走过的弯路,最大的感触就是——人和人的差距,往往不是学历、背景、资源堆出来的,而是看他主动…

作者头像 李华
网站建设 2026/10/1 3:30:53

基于麒麟操作系统的图书管理系统开题答辩全攻略

如果这学期即将开题的你在深夜点开这篇内容,我猜你多半正经历那种“题目还没想好,后天就要交开题报告”的焦虑。我当初也一样,但走完一遍回头看,发现开题答辩并没有想象中那么可怕——关键在于把这件只有十几分钟的事,…

作者头像 李华
网站建设 2026/10/1 3:30:52

Vivado中ILA位置约束报错:Place 30-638的成因与解决

凌晨两点,Vivado的implement进度条卡在Place Design阶段快十分钟,我点开log,最后一行是ERROR: [Place 30-638] This port location for the ILA core at location 0 is not valid.那一刻我确实有点懵。做FPGA调试时最怕的不是时序收敛不了&am…

作者头像 李华