惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
宝玉的分享
宝玉的分享
Jina AI
Jina AI
IT之家
IT之家
博客园 - Franky
MyScale Blog
MyScale Blog
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
雷峰网
雷峰网
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
美团技术团队
S
SegmentFault 最新的问题
罗磊的独立博客
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
D
Docker
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
M
MIT News - Artificial intelligence

sjdhome

不要每次都与 AI 从零开始 · sjdhome AI Coding 时代,编程语言仍然重要 · sjdhome 借鉴 Herdr,让 Claude 从头到尾写出一个 tmux AI Agent 监控器 · sjdhome 当 AI 越来越像你,你也在越来越像 AI · sjdhome LLM 与信息熵 · sjdhome sjdhome.com 2025 年度总结 | sjdhome 2025 年度总结 · sjdhome 我的 2024 年 | sjdhome 我的 2024 年 | sjdhome 我的 2024 年 · sjdhome sjdhome.com 制度与利益 | sjdhome 制度与利益 · sjdhome 解决 Windows PPPoE 连接在系统睡眠后消失 | sjdhome 解决 Windows PPPoE 连接在系统睡眠后消失 | sjdhome 解决 Windows PPPoE 连接在系统睡眠后消失 · sjdhome 解决 Next.js build 完成后卡住的问题 | sjdhome 解决 Next.js build 完成后卡住的问题 | sjdhome 解决 Next.js build 完成后卡住的问题 · sjdhome 实现 WSL 2 开机免登录自动启动 | sjdhome 实现 WSL 2 开机免登录自动启动 | sjdhome 我的 2023 年 | sjdhome 我的 2023 年 | sjdhome 我的 2023 年 · sjdhome 在 Windows 上启用 IP 转发 在 Windows 上启用 IP 转发 在 Windows 上启用 IP 转发 · sjdhome 迁移到 Next.js | sjdhome 迁移到 Next.js | sjdhome
实现 WSL 2 开机免登录自动启动 · sjdhome
https://sjdhome.com/about/ · 2024-04-08 · via sjdhome

通过任务计划程序实现 WSL 2 开机自动启动。

发布于约 2 分钟

WSL 2 在个人使用时,根据终端随开随用很方便,长时间不用自动关闭也节能。但作为服务器系统使用就不够了。

WSL 2 的自动启动有很多方案,本文写的是基于 Windows 自带的任务计划程序的方案。WSL 之前一直不支持通过任务计划程序启动,这个 BUG 直到 2023 年 9 月 27 日(在新标签页打开) 才被修复,真不愧是微软。

步骤

  1. 一定要确保 WSL 当前处于最新版本(即 WSL September 2023 update(在新标签页打开) 之后的版本),系统自带版本不支持这种开机启动。
  2. 打开任务计划程序。
  3. 点击右边的创建任务。
  4. 任务的名称和描述可以随便写,安全选项需要选择”不管用户是否登录都要运行”。
  5. 点击上方的”触发器”选项卡,点新建按钮,然后会卡几秒(微软的老 BUG)。开始任务中选择”启动时”,然后点击确定。
  6. “操作”选项卡中,点新建按钮,然后”程序或脚本”下的文本框里输入"C:\Program Files\WSL\wsl.exe",引号也要带上(非常重要,除了这个目录下的wsl.exe,其他位置的都不行)。添加参数可以根据需要填写,比如-d Debian指定发行版。
  7. “条件”选项卡中,所有选项全部取消勾选。
  8. “设置”选项卡中,除了”允许按需执行任务”,其他全部取消勾选。
  9. 点击确定关闭窗口。可以先右键运行试试效果。这种方法运行的 WSL 即使当前用户注销也是会继续运行的。

Linux 内部的自动启动就得靠 SystemD 了,这里就不赘述了。

故事环节

最近几个月一直在纠结 Windows 和 Linux 双系统的问题,期间碰到了不少的坑。尝试过的方案有:

  • PVE 做宿主,Windows 和 Linux 都作为虚拟机:NVIDIA 显卡透传的问题很大,PVE 作为宿主还要吃掉一小点性能。约等于同时维护三套系统,累。如果要远程开机和 SSH,还得先把 PVE 面板映射出来。
  • Linux 做宿主,Windows 跑在虚拟机:同样存在显卡透传问题,而且手动配 QEMU + KVM 虚拟机心智负担太大,我也不想用 libvirt 等方案。同时之前为了装 Windows 11 买的 TPM 模块就浪费了。我的 Linux 系统还做了硬盘加密,远程开机也废了。
  • Windows 做宿主,Linux 跑在虚拟机:无论是 VMware Workstation 还是 VirtualBox,都是大毛病没有,小毛病不断。不管哪个方案,Linux 内部的显卡都是残废状态,操作起来一卡一卡。如果只是在终端操作,倒还没什么问题,桌面操作就废了。如果宿主是笔记本,进入了 S0 睡眠模式,VMware Workstation 会出现内核 CPU stuck 错误,VirtualBox 则是出现时钟漂移。
  • 再买一台电脑:没钱。
  • WSL 1:内核太老,性能差。
  • WSL 2:有显卡加速,虽然不算是真·虚拟机,但比起上面几个方案好太多了。

用 WSL 2 做服务器 Linux 似乎不太正经,不过我也不要求有多高的稳定性,能充分利用我现有的硬件就够了。如果有更高要求,直接去 AWS 买 EC2 吧 ¯\(ツ)/¯ 。

参考资料