马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
很多人想在 Windows 上用 Linux,第一反应是装虚拟机,但虚拟机重、占内存、还要配网络。微软provided的 WSL(Windows Subsystem for Linux)提供了一个更轻的路线:不用装虚拟机,直接在 Windows 里跑起 Linux 命令行环境和应用程序。本文把 WSL 和 WSL2 的区别讲清楚,再把安装前置条件、安装步骤和几个常见报错的解决办法串起来。
一、WSL 与 WSL2 是什么关系
大白话讲,WSL 就是让 Windows 在不装虚拟机的前提下多拥有一套 Linux。下面把两个版本拆开看。
WSL(Windows Subsystem for Linux)
- 定位:Windows 10 引入的一个兼容层,让用户不用虚拟机、不用双系统就能运行 Linux 二进制程序(ELF 格式);
- 原理:把 Linux 的系统调用翻译成 Windows 内核能懂的调用,所以 Linux 程序能直接在 Windows 上跑;
- 代价:它不是真正的 Linux 内核,只是个兼容层,因此在部分 I/O 密集型任务里性能会受限,但对多数开发任务够用。
WSL2
- 定位:WSL 的升级版,主要解决性能和兼容性问题;
- 原理:引入完整的 Linux 内核,跑在一个轻量级虚拟机(Hyper-V)里,兼容性更接近真实 Linux;
- 性能:有真内核,I/O 和整体兼容性明显更好,尤其体现在文件系统和网络操作上——大量小文件的场景,WSL2 比 WSL 快得多;
- 存储:用虚拟硬盘(VHD)存文件,不直接在 Windows 文件系统上操作,这也是性能和兼容性提升的原因。
怎么选:WSL 轻,适合对 I/O 要求不高的开发;WSL2 更接近原生 Linux 体验,适合要性能和兼容性的任务。日常学习 Linux 命令、跑脚本,WSL2 基本是首选。
二、安装前的准备
WSL 2 依赖虚拟化,准备阶段有三件事要确认:
- BIOS 里开启虚拟化:重启电脑进 BIOS,找到虚拟化相关选项(不同主板叫法不同,常见是 Intel VT-x / AMD-V)打开,保存重启;
- Windows 功能权限:在控制面板里确认相关系统功能已启用,尤其是适用于 Linux 的 Windows 子系统和虚拟机平台这两项;
- 确认 Microsoft Store 能正常打开:如果 Store 打不开或里面搜不到 Linux 发行版,后面
wsl --install 会装不上 Linux。这种情况要先解决 Store 问题——比如企业版 LTSC 默认不带应用商店,需要先补齐 Store 组件并升级到可用版本,之后重启再装。
顺带提醒:预装环境若是企业镜像,商店相关组件可能缺失或版本过旧,补齐后还需要在商店里点"获取更新"把它升到可用版本。
三、安装步骤
前面都准备好之后就简单了:以管理员身份打开 PowerShell 或终端,执行 WSL 安装命令,选择要装的发行版(Ubuntu 22.04 为例),按提示等下载解压完成,设置一次用户名和密码就进系统了。装好之后可以直接 wsl --list --verbose 看已安装的发行版和它们当前用的是 WSL 还是 WSL2。
四、常见报错与处理
1. 运行 systemctl 相关命令报错
现象类似 System has not been booted with systemd as init system (PID 1)。原因是 WSL 不是按 systemd 正常启动的,进程 1 不是 systemd,所以 systemctl status xxx 这类命令不可用。处理办法:这类场景改用服务脚本或直接在命令名前加 sudo service 服务名 动作;确实需要 systemd 能力的话,社区有第三方方案提供伪 init,但代价是启动方式变化,按自己需求决定要不要上。
2. Xshell 等 SSH 客户端连不上 WSL
WSL 本身不是 SSH 服务,默认没有开 22 端口。想用 SSH 客户端连,需要先在 WSL 内部装并启动 sshd,同时确认 Windows 防火墙放行对应端口、且端口做了转发映射。这一步是" bridged 网络"和" NAT 网络"模型的差异导致的,排查时先确认 WSL 内部 sshd 是否真的起来了。
3. Xshell 不能用 root 登录
默认配置禁止 root 直接 SSH 登录。要在 WSL 里改 SSH 服务配置:
vim /etc/ssh/sshd_config
找到 PermitRootLogin 一项,把它改成 yes,保存退出后重启 sshd 服务,再用 root 登录即可。生产环境不建议长期开这个,只在自己机器上图方便时开。
4. 关掉之后重启失败或状态不对
这类问题多半是 WSL 服务进程没干净退出。两种恢复手段:
- 重启电脑,让系统整体复位;
- 或者直接在 Windows 里杀掉 WSL 服务进程再重开:
taskkill /f /im wslservice.exe。
注意 taskkill 的参数是 /f(强制)和 /im(按镜像名),写成 /f /im 时才生效。
五、整体思路
回顾一下:先分清 WSL / WSL2 该用哪个(一般建议 WSL2),再确认 BIOS 虚拟化、Windows 功能、Microsoft Store 三件事都 OK,然后装发行版并设好账号,最后针对 systemd、SSH、root 登录这三个高频报错各有对应解法。遇到 WSL 异常,先想到"杀掉 wslservice 重启"这一招,能解决相当一部分状态错位问题。
qidao123.com企服评测-应用市场 编辑提示 |