编辑
2026-05-03
Windows备份教学
00
请注意,本文编写于 48 天前,最后修改于 48 天前,其中某些信息可能已经过时。

目录

WSL 安装、状态查看、开机自启与保活命令教程
1. 安装 WSL
一条命令安装默认 Ubuntu
查看可安装的 Linux 发行版
安装指定发行版
手动启用 WSL 组件
2. 启动和进入 WSL
3. 查看状态命令
4. 安装后验证命令
5. 常用维护命令
6. 开机自启方案一:启动文件夹 + VBS
7. 开机自启方案二:任务计划 + WSL 保活
8. systemd 服务方式保活
9. 更适合真实服务的写法
10. 排错速查
参考来源

WSL 安装、状态查看、开机自启与保活命令教程

本文把几篇教程整理成一份偏命令速查的版本,适合 Windows 10/11 安装 WSL、查看运行状态、验证环境,以及配置登录后自动拉起 WSL。

示例发行版统一写成 Ubuntu。如果你的发行版叫 Ubuntu-22.04Ubuntu-24.04Debian,把命令里的 Ubuntu 替换成自己的名称即可。

1. 安装 WSL

先用管理员身份打开 PowerShell。

管理员 PowerShell 示例

一条命令安装默认 Ubuntu

powershell
wsl --install

安装完成后按提示重启电脑。重启后第一次打开 Ubuntu,会要求创建 Linux 用户名和密码。

查看可安装的 Linux 发行版

powershell
wsl --list --online

也可以写成:

powershell
wsl -l -o

安装指定发行版

powershell
wsl --install -d Ubuntu

示例:

powershell
wsl --install -d Ubuntu-24.04 wsl --install -d Debian

手动启用 WSL 组件

如果 wsl --install 报错,可先手动启用 Windows 功能,再重启:

powershell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启后设置默认使用 WSL 2:

powershell
wsl --set-default-version 2

更新 WSL:

powershell
wsl --update

2. 启动和进入 WSL

进入默认发行版:

powershell
wsl

进入指定发行版:

powershell
wsl -d Ubuntu

以 root 用户进入:

powershell
wsl -d Ubuntu -u root

设置默认发行版:

powershell
wsl --set-default Ubuntu

把某个发行版切换到 WSL 2:

powershell
wsl --set-version Ubuntu 2

3. 查看状态命令

查看已安装发行版、运行状态和 WSL 版本:

powershell
wsl -l -v

wsl -l -v 状态示例

查看当前 WSL 基本状态:

powershell
wsl --status

查看 WSL 客户端版本:

powershell
wsl --version

查看正在运行的发行版:

powershell
wsl --list --running

关闭所有 WSL 发行版:

powershell
wsl --shutdown

只关闭某个发行版:

powershell
wsl --terminate Ubuntu

4. 安装后验证命令

进入 WSL 后执行:

bash
cat /etc/os-release uname -a whoami pwd

验证 apt 可用:

bash
sudo apt update

验证网络:

bash
curl -I https://www.microsoft.com

验证能访问 Windows 磁盘:

bash
ls /mnt/c

从 WSL 打开当前目录的 Windows 文件资源管理器:

bash
explorer.exe .

5. 常用维护命令

更新 WSL:

powershell
wsl --update

更新 Ubuntu 软件包:

bash
sudo apt update sudo apt upgrade -y

导出备份:

powershell
wsl --export Ubuntu D:\backup\ubuntu.tar

从备份导入:

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

注销并删除某个发行版。执行前务必确认已备份:

powershell
wsl --unregister Ubuntu

6. 开机自启方案一:启动文件夹 + VBS

这个方案简单,适合只想在登录 Windows 后自动启动 WSL 的情况。

Win + R,输入:

text
shell:startup

打开 Windows 启动文件夹

在打开的启动文件夹里新建文件:

text
start-wsl.vbs

写入下面内容:

vbscript
Set shell = CreateObject("WScript.Shell") shell.Run "wsl.exe -d Ubuntu -e sh -lc ""nohup sleep infinity >/tmp/wsl-keepalive.log 2>&1 &""", 0, False

启动文件夹中的 VBS 示例

说明:

  • 0 表示隐藏窗口。
  • False 表示脚本不等待 WSL 命令结束。
  • sleep infinity 是一个轻量保活进程,让 WSL 不会刚启动就退出。
  • 如果发行版不是 Ubuntu,替换 -d Ubuntu

验证:

powershell
wsl -l -v

如果看到 UbuntuSTATERunning,说明自启生效。

7. 开机自启方案二:任务计划 + WSL 保活

这个方案比启动文件夹更可控,适合需要长期运行 Docker、SSH、数据库、frp、脚本服务等场景。

在 PowerShell 中执行:

powershell
$Action = New-ScheduledTaskAction -Execute "wsl.exe" -Argument "-d Ubuntu -e sh -lc ""nohup sleep infinity >/tmp/wsl-keepalive.log 2>&1 &""" $Trigger = New-ScheduledTaskTrigger -AtLogOn Register-ScheduledTask -TaskName "WSL Ubuntu Keepalive" -Action $Action -Trigger $Trigger -Description "Start Ubuntu WSL on user logon" -Force

立即测试任务:

powershell
Start-ScheduledTask -TaskName "WSL Ubuntu Keepalive" wsl -l -v

删除任务:

powershell
Unregister-ScheduledTask -TaskName "WSL Ubuntu Keepalive" -Confirm:$false

如果你想让它开机但不登录也运行,需要在“任务计划程序”图形界面里把触发器改成“启动时”,并配置用户凭据。普通个人电脑一般用“登录时”就够了。

8. systemd 服务方式保活

如果你的 WSL 版本支持 systemd,推荐先启用 systemd,再把需要长期运行的进程做成服务。

检查 WSL 版本:

powershell
wsl --version

进入 WSL,编辑 /etc/wsl.conf

bash
sudo nano /etc/wsl.conf

写入:

ini
[boot] systemd=true

回到 PowerShell 重启 WSL:

powershell
wsl --shutdown wsl -d Ubuntu

验证 systemd:

bash
systemctl is-system-running systemctl list-unit-files --type=service

创建一个 keepalive 服务:

bash
sudo tee /etc/systemd/system/wsl-keepalive.service >/dev/null <<'EOF' [Unit] Description=Keep WSL instance alive [Service] Type=simple ExecStart=/usr/bin/tail -f /dev/null Restart=always [Install] WantedBy=multi-user.target EOF

启用并启动:

bash
sudo systemctl daemon-reload sudo systemctl enable --now wsl-keepalive.service

查看服务状态:

bash
systemctl status wsl-keepalive.service --no-pager

停止并禁用:

bash
sudo systemctl disable --now wsl-keepalive.service

注意:systemd 服务只能在 WSL 发行版已经启动后生效。要让 Windows 登录后自动拉起 WSL,仍然需要配合“启动文件夹 VBS”或“任务计划”。

9. 更适合真实服务的写法

如果你要保活的不是 WSL 本身,而是某个具体服务,建议不要只依赖 sleep infinity,而是把真实服务写成 systemd 服务。

例如启动 SSH:

bash
sudo apt install -y openssh-server sudo systemctl enable --now ssh systemctl status ssh --no-pager

例如启动 Docker。前提是你已安装 Docker Engine 或 Docker Desktop WSL 集成:

bash
sudo systemctl enable --now docker systemctl status docker --no-pager

这样更容易查看日志、重启服务和排错:

bash
journalctl -u ssh -n 100 --no-pager sudo systemctl restart ssh

10. 排错速查

wsl --install 报虚拟化相关错误:

powershell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart wsl --update

然后检查 BIOS/UEFI 是否启用了虚拟化。

配置 /etc/wsl.conf 后没生效:

powershell
wsl --shutdown

等待几秒后重新进入 WSL。Microsoft 文档提到,WSL 配置变更需要等发行版完全停止后再重新启动才会应用。

DNS 或网络异常时可先重启 WSL:

powershell
wsl --shutdown wsl

确认发行版名:

powershell
wsl -l -v

确认 WSL 内部保活进程:

bash
ps -ef | grep -E "sleep infinity|tail -f /dev/null" | grep -v grep

参考来源

本文作者:口水

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!