Windows on Arm 上的 WSL:能用什么,以及 x86 Linux 的坑
更新于 2026年6月6日
WSL2 在 Windows on Arm 上运行良好——在骁龙 X 笔记本上 wsl --install 开箱即用,做原生 Linux 开发的体感和 Intel/AMD 机器没区别。但有一个架构层面的坑会绊住开发者,在把工作流押到 Arm 笔记本之前值得搞清楚。
架构:WSL2 给你的是 Arm64 Linux
WSL2 是跑在轻量(基于 Hyper-V)虚拟机里的真实 Linux 内核。虚拟化只能同架构,所以在 Windows on Arm 上你得到的是 Arm64(aarch64)Linux 内核和 Arm64 发行版——wsl --install 会自动拉取 Arm64 Ubuntu。这和管辖 Hyper-V 与 Mac 虚拟机的是同一条「同架构」规则。
在 Arm 上用 WSL2,别用 WSL1——WSL1 的系统调用转换层是老古董;WSL2 给你真实内核和容器。
坑:x86/x64 Linux 二进制跑不了
这是会让人意外的限制,也是和普通 x86 PC 的关键区别:
Arm64 的 WSL 发行版只跑 Arm64 Linux 二进制。它不会透明地跑 x86/x64 Linux 二进制——没有内置的跨架构模拟器。一个 x86_64 的 Linux ELF 二进制会报错 cannot execute binary file: Exec format error。常见的补救手段(qemu-user-static、box64)目前在 Arm WSL 里被反映有问题或不可靠,所以「在 Arm WSL 里跑 x86 Linux 二进制」要当作不可靠支持。
别把这和 Prism 搞混。 Prism 模拟的是 x86 Windows 应用,在 Arm 上始终能用。WSL 是 Linux 这一侧——在这里你是纯 Arm64,没有 x86 兜底。一个知道「Windows 应用能模拟跑」的读者会错误地以为 Linux 二进制也行。它不行。
什么跑得很好(原生)
做 Arm64 原生 Linux 开发,Arm 上的 WSL 很出色。已验证可用:Node.js、Python、.NET 8、PHP、容器里的 MySQL/Postgres、VS Code(配 WSL 扩展)、Ollama。有可靠 Arm64 镜像的发行版:Ubuntu、Debian、Fedora、Kali、openSUSE、AlmaLinux。
一个注意点:微软商店里个别发行版条目缺真正的 Arm64 镜像,所以可能要试几个才能找到在 Arm 上能用的。
Docker 与多架构构建
Docker Desktop 有完整的 Arm64 支持,在骁龙上有一些反映的小毛病。痛点是容器形态下同样的 x86 坑:拉取并运行 linux/amd64 镜像需要 QEMU 模拟,很慢。如果你团队的 CI 或镜像默认 amd64,会有摩擦——请构建多架构镜像并优先用 arm64 基础镜像。这直接关联到 Arm 上的 CI/CD。
图形界面应用(WSLg)
WSLg(在 Windows 上跑 Linux 图形应用)在 Arm 上能用,但没有 GPU 硬件加速——是软件渲染,而且应用本身需要 Arm64 版本。跑工具够用;跑重 GPU 的 Linux 应用不行。
结论
做原生 Arm64 Linux 工作——也就是大多数现代 Web/后端/devops 开发——骁龙笔记本上的 WSL 是一流体验。切换前要确认的唯一一点:你的工具里有没有只发 x86/x64 Linux 二进制、没有 arm64 版本的? 如果有,那些跑不了,就像你移植前要审计 Windows 应用的依赖一样。只要有 arm64 版本的,就没问题。