【本地VPS】Windows 10开启WSL2 Linux子系统,并启用Systemd

88次阅读

共计 1437 个字符,预计需要花费 4 分钟才能阅读完成。

Windows 自带 Linux 子系统大家都知道,但是各种毛病还是很多的,整理了能开启符合正常使用习惯的 WSL 方法。原文链接:https://pa.ci/206.html
开启 WSL2
虽然 WSL 已经更新到了第 2 版,但是目前 win10 默认的还是第 1 个版本,即 Windows 上的 Linux 应用而不是类似于虚拟机的独立系统。
开启 WSL2 的步骤如下,需使用管理员权限打开 powershell 执行命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
复制代码
执行完成后,会询问是否重启,这里选择 Y 进行重启。重启后再次使用管理员权限打开 powershell 执行命令:
wsl –set-default-version 2 复制代码
此时通过 Microsoft store 安装的 Linux 系统就是 WSL2 版本了,但是由于 WSL2 是独立内核,所以还需要执行以下命令更新内核,否则会出现 WslRegisterDistribution failed with error: 0x800701bc 错误:
wsl –update
wsl –shutdown
复制代码
至此,Linux 子系统就是拥有独立内核的 WSL2 版本了,以 Debian 为例,neofetch 信息如下图:
【本地 VPS】Windows 10 开启 WSL2 Linux 子系统,并启用 Systemd
启用 Systemd
WSL2 默认使用 init 启动 Linux 系统的,但是目前绝大多数发行版都是用的 systemd 的。这导致很多服务都没法使用,比如在 Debian/Ubuntu 上的 nginx 和 php-fpm 等常用软件。所幸微软最近更新了这个功能,现在可以手动启用。
首先在 powershell 中执行 wsl –version 复制代码命令,确认 wsl 版本是大于 0.67.6 的。Win10 22H2 进行过 wsl –update 复制代码之后,应该是 1.0.0.0 版本,如下:
WSL 版本:1.0.0.0
内核版本:5.15.74.2
WSLg 版本:1.0.47
MSRDC 版本:1.2.3575
Direct3D 版本:1.606.4
DXCore 版本:10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本:10.0.19045.2311
复制代码
随后,在现有的 Linux 子系统内,在 /etc/wsl.conf 文件内添加以下内容(如果没有就新建一个):
[boot]
systemd=true
复制代码
修改完成后,在 powerhell 中执行 wsl –shutdown 复制代码以关闭 linux 子系统,随后再打开 Linux 子系统就会发现已经启用了 systemd,使用 systemctl list-unit-files –type=service 复制代码将输出如下内容:
【本地 VPS】Windows 10 开启 WSL2 Linux 子系统,并启用 Systemd

马克一下马克技术贴,帮顶技术贴 要支持 可是我不知道干什么用
/**
* 有些坚持,经不起一点点希望
* 哪怕是一点光亮,也会让人陷入痛苦。——《撒野》
*
* Link https://greasyfork.org/zh-CN/scripts/396933-hostloc-zsbd
*/ 不需要 WSL,高配物理主机来一台直接玩【本地 VPS】Windows 10 开启 WSL2 Linux 子系统,并启用 Systemd我从来不会帮微软修屎 BUG

正文完
 0