当前位置:首页>Linux>在 Windows 上跑 Linux,不装双系统、不开虚拟机、不配 SSH.

在 Windows 上跑 Linux,不装双系统、不开虚拟机、不配 SSH.

  • 2026-10-11 07:08:18
在 Windows 上跑 Linux,不装双系统、不开虚拟机、不配 SSH.

一条命令,三分钟,在 Windows 桌面上打开 Linux 应用窗口。

前置要求:Windows 10 版本 19044 以上,或 Windows 11。BIOS 里虚拟化技术需要开启(Intel VT-x 或 AMD SVM,新电脑默认就是开的)。

一条命令安装

打开 PowerShell(管理员),输入:

wsl --install

这条命令自动做了三件事:

1.

开启 WSL 功能和虚拟机平台

2.

下载并安装 Ubuntu

3.

重启后设置用户名密码即可使用

安装后,在终端里输入 wsl 就进入 Linux 环境。

设置 Linux 用户名和密码

安装 WSL 并重启后,系统会让你设一个用户名和密码。这个用户名和密码只用于 Linux 环境,跟 Windows 的登录密码是两套独立的。

请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。

修改密码很简单,在 Linux 终端里输入:

passwd

系统会先让你输当前密码,然后输两遍新密码,就改好了。

如果连当前密码都忘了,用管理员权限绕过去:

1.

打开 PowerShell,输入下面命令以 root 身份进入 WSL:

wsl -u root

如果你装了多个 Linux 发行版,指定名称:

wsl -d Debian -u root
2.

进入之后,重置密码:

passwd 你的用户名
3.

输两遍新密码,看到"密码已更新"后,输入 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 的显示通道没连上。可能是上次没正常退出、或者显示环境变量丢了。

一步步修:

1.

先检查环境变量。在 WSL 终端输入:

echo $DISPLAY

正常应该输出 :0。如果是空的,说明 DISPLAY 变量丢了。

2.

手动补上:

export DISPLAY=:0
3.

如果还不行,彻底重启 WSL。回到 PowerShell,输入:

wsl --shutdown

等 5 秒后重新打开 WSL,再试。

4.

仍然不行的话,更新 WSL:

wsl --update

然后再 wsl --shutdown。

故障二:窗口弹出来了,但是黑的或者花屏

你看到的:应用窗口是出来了,但里面全黑,或者画面撕裂、有残影。

为什么:显卡驱动没跟上,或者 WSLg 的 GPU 加速出了兼容问题。

一步步修:

1.

更新显卡驱动。去 NVIDIA / AMD / Intel 官网下载最新驱动安装。

2.

安装后重启 Windows。

3.

进 WSL 验证一下 3D 加速是否正常:

sudo apt install mesa-utils -yglxinfo | grep "OpenGL renderer"

如果输出显示你的显卡型号(而不是 llvmpipe 软件渲染),就说明正常了。

4.

还不行的话,在 .wslconfig 里暂时关掉 GUI 应用自动挂载:

[wsl2]guiApplications=false

wsl --shutdown 后重试。如果关了 GUI 应用功能后命令行能正常用,说明是显卡驱动的事,等驱动更新后再把这一行删掉。

故障三:没有声音

你看到的:GUI 应用能跑,但打开需要声音的东西(比如浏览器、视频播放器)完全没声音。

为什么:WSLg 的声音是通过 PulseAudio 转发到 Windows 的,这条链路断了。

一步步修:

1.

检查声音环境变量:

echo $PULSE_SERVER

正常应该输出类似 /mnt/wslg/PulseServer 的路径。如果是空的,补上:

export PULSE_SERVER=/mnt/wslg/PulseServer
2.

重启 WSL:

wsl --shutdown
3.

重开后再测试。如果还不行,在 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 官方源太慢。

一步步修:

1.

如果是锁的问题,先看谁占着:

ps aux | grep apt

找到 apt 相关进程,记下它的 PID(数字),然后杀掉:

sudo kill 那个数字
2.

如果进程杀不掉,直接暴力删锁文件:

sudo rm /var/lib/dpkg/lock-frontendsudo rm /var/lib/apt/lists/locksudo rm /var/cache/apt/archives/locksudo dpkg --configure -a
3.

如果是下载慢的问题,换国内源。备份原来的源文件:

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 里虚拟化技术没开。

一步步修:

1.

先确认 Windows 版本。按 Win+R,输入 winver,看版本号。必须 ≥ 19041(也就是 20H1)。如果低于这个版本,先更新 Windows。

2.

版本够的话,重启电脑进 BIOS(开机时按 F2 / Del / F10,不同品牌不一样)。找到 Intel Virtualization Technology(VT-x)或 AMD SVM Mode,设为 Enabled。保存退出。

3.

如果 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 密码是分开的。刚装好那会儿设的,太久没用了。

一步步修:

1.

打开 PowerShell,以 root 身份进 WSL(root 不需要原来的密码):

wsl -u root
2.

如果你是默认的 Ubuntu,直接重置:

passwd 你的用户名

如果忘了用户名,先用 cat /etc/passwd 看一眼。

3.

输两遍新密码,看到"password updated successfully"就完成了。输入 exit 退出,下次用新密码登录。

故障七:gedit 一点就闪退

你看到的:在终端输入 gedit &,窗口弹出来一瞬间就消失了。

为什么:gedit 和 WSLg 的 D-Bus 辅助功能有冲突,这是已知 bug。

一步步修:

1.

先试最简单的解法,关掉辅助功能桥接:

export NO_AT_BRIDGE=1gedit &

如果正常打开了,说明就是这个原因。

2.

想让每次自动生效,把这行加到 ~/.bashrc 文件末尾:

echo 'export NO_AT_BRIDGE=1' >> ~/.bashrc
3.

如果上述方法仍然闪退,别纠结 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、跑脚本,值得花这三分钟。

最新文章

随机文章