一条命令,三分钟,在 Windows 桌面上打开 Linux 应用窗口。
前置要求:Windows 10 版本 19044 以上,或 Windows 11。BIOS 里虚拟化技术需要开启(Intel VT-x 或 AMD SVM,新电脑默认就是开的)。
一条命令安装
打开 PowerShell(管理员),输入:
wsl --install
这条命令自动做了三件事:
安装后,在终端里输入 wsl 就进入 Linux 环境。
设置 Linux 用户名和密码
安装 WSL 并重启后,系统会让你设一个用户名和密码。这个用户名和密码只用于 Linux 环境,跟 Windows 的登录密码是两套独立的。
请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。
修改密码很简单,在 Linux 终端里输入:
passwd
系统会先让你输当前密码,然后输两遍新密码,就改好了。
如果连当前密码都忘了,用管理员权限绕过去:
打开 PowerShell,输入下面命令以 root 身份进入 WSL:
wsl -u root
如果你装了多个 Linux 发行版,指定名称:
wsl -d Debian -u root
输两遍新密码,看到"密码已更新"后,输入 exit 退出。
更新和升级软件包
刚装好的 Ubuntu 软件包可能不是最新的。先更新源列表,再升级已安装的软件包:
sudo apt update && sudo apt upgrade
sudo 表示以管理员身份执行,会提示你输 Linux 密码。这一步建议装好后第一时间做,避免后续装软件时报依赖错误。
不只是命令行:WSLg 能跑 GUI 应用
WSL2 内置了 WSLg(Windows Subsystem for Linux GUI)。装好之后,你在 Linux 里打开图形应用,窗口会直接出现在 Windows 桌面上,跟普通 Windows 窗口一样。
底层原理:Linux GUI 应用 → Weston 合成器 → FreeRDP 协议 → Windows 原生窗口渲染。整个过程自动完成,不需要额外配置。
装几个常用的 GUI 应用试试手:
# 更新源sudo apt update# 安装文件管理器、终端、文本编辑器sudo apt install nautilus gnome-terminal gedit -y
装完后启动,在终端里输入应用名加 & 符号(表示后台运行):
nautilus &
文件管理器窗口会直接弹出来。同理 gedit & 打开文本编辑器,gnome-terminal & 打开终端。
如图所示界面
增加 WSL 内存限制
WSL2 默认可以使用最多 50% 的系统内存或 8GB(取较小值)。如果跑的东西比较多,可以手动限制。
在 Windows 用户目录下创建或编辑 .wslconfig 文件(路径是 C:\Users\你的用户名\.wslconfig),写入:
[wsl2]memory=8GBprocessors=4swap=4GB
保存后,在 PowerShell 执行 wsl --shutdown 让配置生效。重启 WSL 后就会按你设的限制来。
七个常见故障与解法
每个故障先说"你看到什么现象",再说"为什么会出现",最后列"一步步怎么修"。
故障一:GUI 应用打不开,窗口没弹出来
你看到的:在终端里输入 nautilus & 或 gedit & 后,光标卡住,等半天什么也没出现。
为什么:WSLg 的显示通道没连上。可能是上次没正常退出、或者显示环境变量丢了。
一步步修:
先检查环境变量。在 WSL 终端输入:
echo $DISPLAY
正常应该输出 :0。如果是空的,说明 DISPLAY 变量丢了。
如果还不行,彻底重启 WSL。回到 PowerShell,输入:
wsl --shutdown
等 5 秒后重新打开 WSL,再试。
仍然不行的话,更新 WSL:
wsl --update
然后再 wsl --shutdown。
故障二:窗口弹出来了,但是黑的或者花屏
你看到的:应用窗口是出来了,但里面全黑,或者画面撕裂、有残影。
为什么:显卡驱动没跟上,或者 WSLg 的 GPU 加速出了兼容问题。
一步步修:
更新显卡驱动。去 NVIDIA / AMD / Intel 官网下载最新驱动安装。
进 WSL 验证一下 3D 加速是否正常:
sudo apt install mesa-utils -yglxinfo | grep "OpenGL renderer"
如果输出显示你的显卡型号(而不是 llvmpipe 软件渲染),就说明正常了。
还不行的话,在 .wslconfig 里暂时关掉 GUI 应用自动挂载:
[wsl2]guiApplications=false
wsl --shutdown 后重试。如果关了 GUI 应用功能后命令行能正常用,说明是显卡驱动的事,等驱动更新后再把这一行删掉。
故障三:没有声音
你看到的:GUI 应用能跑,但打开需要声音的东西(比如浏览器、视频播放器)完全没声音。
为什么:WSLg 的声音是通过 PulseAudio 转发到 Windows 的,这条链路断了。
一步步修:
检查声音环境变量:
echo $PULSE_SERVER
正常应该输出类似 /mnt/wslg/PulseServer 的路径。如果是空的,补上:
export PULSE_SERVER=/mnt/wslg/PulseServer
重开后再测试。如果还不行,在 WSL 里装一个 PulseAudio 工具验证:
sudo apt install pulseaudio-utils -ypactl info
看 Server Name 是否指向 WSLg 的 PulseServer。没指向的话,说明 WSLg 的声音服务本身没起来——执行 wsl --shutdown 然后系统更新 wsl --update。
故障四:apt 装软件卡住不动
你看到的:输入 sudo apt install xxx 后,一直显示"Waiting for cache lock"或者停在 0%,几分钟不动。
为什么:上一次 apt 进程没正常退出,留下了一把"锁"。或者因为网络原因在国内连 Ubuntu 官方源太慢。
一步步修:
如果是锁的问题,先看谁占着:
ps aux | grep apt
找到 apt 相关进程,记下它的 PID(数字),然后杀掉:
sudo kill 那个数字
如果进程杀不掉,直接暴力删锁文件:
sudo rm /var/lib/dpkg/lock-frontendsudo rm /var/lib/apt/lists/locksudo rm /var/cache/apt/archives/locksudo dpkg --configure -a
如果是下载慢的问题,换国内源。备份原来的源文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
然后用 sed 一键替换为阿里云源:
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
最后更新:
sudo apt update
再装软件速度就快了。
故障五:"适用于 Linux 的 Windows 子系统"选项是灰色的,勾不上
你看到的:打开"启用或关闭 Windows 功能",找到 WSL 那一项,前面的复选框是灰的,点不了。
为什么:要么是 Windows 版本太老(Win10 2004 之前),要么是 BIOS 里虚拟化技术没开。
一步步修:
先确认 Windows 版本。按 Win+R,输入 winver,看版本号。必须 ≥ 19041(也就是 20H1)。如果低于这个版本,先更新 Windows。
版本够的话,重启电脑进 BIOS(开机时按 F2 / Del / F10,不同品牌不一样)。找到 Intel Virtualization Technology(VT-x)或 AMD SVM Mode,设为 Enabled。保存退出。
如果 BIOS 里已经是开的但选项还是灰的,用命令行手动开启。PowerShell 管理员运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行完重启电脑。
故障六:忘了 Linux 密码,进不去
你看到的:打开 WSL 终端,输了几次密码都提示"Sorry, try again",确认自己忘了密码。
为什么:Linux 密码和 Windows 密码是分开的。刚装好那会儿设的,太久没用了。
一步步修:
打开 PowerShell,以 root 身份进 WSL(root 不需要原来的密码):
wsl -u root
如果你是默认的 Ubuntu,直接重置:
passwd 你的用户名
如果忘了用户名,先用 cat /etc/passwd 看一眼。
输两遍新密码,看到"password updated successfully"就完成了。输入 exit 退出,下次用新密码登录。
故障七:gedit 一点就闪退
你看到的:在终端输入 gedit &,窗口弹出来一瞬间就消失了。
为什么:gedit 和 WSLg 的 D-Bus 辅助功能有冲突,这是已知 bug。
一步步修:
先试最简单的解法,关掉辅助功能桥接:
export NO_AT_BRIDGE=1gedit &
如果正常打开了,说明就是这个原因。
想让每次自动生效,把这行加到 ~/.bashrc 文件末尾:
echo 'export NO_AT_BRIDGE=1' >> ~/.bashrc
如果上述方法仍然闪退,别纠结 gedit 了,换 Mousepad:
sudo apt install mousepad -ymousepad &
Mousepad 是更轻量的编辑器,和 WSLg 兼容性更好。
四条常用命令
换阿里云源:国内下载速度提升最直接的方式。在终端执行:
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.listsudo apt update
重启 WSL:遇到任何奇怪问题,先试这个。在 PowerShell 执行:
wsl --shutdown
等几秒再重新打开 WSL,很多问题直接就没了。
更新 WSL 内核:隔一段时间跑一次,保持 WSLg 兼容性:
wsl --updatewsl --shutdown
检查版本:确认你在用 WSL2 还是旧的 WSL1:
wsl -l -v
NAME 下面是你装的发行版,VERSION 那列必须显示 2。如果是 1,用 wsl --set-version Ubuntu 2 升级。
另外注意:WSL2 用的是动态内存,不跑东西时占用很小,但跑大型编译或 Docker 后可能吃掉好几个 GB。不用的时候执行 wsl --shutdown 把内存还给 Windows。
一句话总结
WSL 是目前 Windows 上获取 Linux 环境最简单的方案。一条命令安装,三分钟配好,GUI 应用原生跑在桌面上。七个常见故障都有明确解法,四句命令够日常使用。如果你在 Windows 上做开发、学 Linux、跑脚本,值得花这三分钟。