window11 配置 wsl2 详细步骤即bug


前言

wsl 是适用于Linux的Windows子系统
Windows Subsystem for Linux(简称WSL)是一个在Windows 10\11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

如果使用Windows 10 2004以上,可以通过WSL 2来窗口化运行桌面应用,也不需要另外安装其他的X 服务器。


一、电脑系统内的配置

1.1 用控制面板开启虚拟化功能

如下图所示,首先在 控制面板->程序->启用或关闭 windows 功能 中,
开启 Windows 虚拟化、 Linux 子系统(WSL2)、Hyper-V

注意,有些Win11系统(尤其是家庭版)没有功能Hyper-V。解决办法见第二章节。解决完成后再继续进行下面的操作

1.2 用命令行配置环境

管理员身份打开powershell,分别输入以下的指令:

bcdedit /set hypervisorlaunchtype Auto

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform #需要重启系统,请注意按y让他重启

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

如果以上内容不能顺利运行,可以执行以下的指令:

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

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

1.3 下载linux子操作系统

打开Microsoft Store,里面有很多不同的linux操作系统,有debain,Ubuntu、kali等等,在搜索框输入自己需要的操作系统名,选择下载即可。

下载完成后,在开始菜单中打开Ubantu。初始化会让你注册用户名等等。如果你一路操作下来都很顺利,本次安装到此结束。

如果你出现了报错,希望在第二章节,我的踩坑解决方案可以帮助到你。

Win11配置wsl2常见错误

2.1 解决Hyper-V没有的问题

如果在控制面板开启虚拟化功能这一步里没有Hyper-V,那么通过如下方法解决:
首先在电脑新建一个txt文件,把以下内容贴进去

pushd "%~dp0"

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

然后保存,文件后缀名改成.cmd格式,然后双击运行他。如果改名以后发现还是txt文件,说明只是改了个名字而已,文件格式并没有更改成功。解决方法如下:

确认后,再重新更改txt文件名后缀,双击运行即可。

运行完毕,重新在管理员权限下的powershell中运行刚刚的Microsoft-Hyper-V指令即可:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

2.2 解决wsl启动liunx时出现一堆???的bug

报错效果如下:

解决方法,下载软件 Windows Subsystem for Linux Update setup 官方版,将WSL1升级到WSL2即可解决问题。

下载地址 :https://www.xitongzhijia.net/soft/244754.html

下载完毕执行一下该msi程序。

然后重新跑一下以下代码:

bcdedit /set hypervisorlaunchtype Auto

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform #可能需要重启系统,请注意按y让他重启

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

2.3 wsl子系统初始化报错

启动wsl系统时报错:参考的对象类型不支持尝试的操作,效果如下:

解决方案是使用注册表方式。复制如下代码,新建文件test.reg(文件名可任意取,需以.reg结尾),双击执行。

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3]
"AppFullPath"="C:\\Windows\\System32\\wsl.exe"
"PermittedLspCategories"=dword:80000000

猜你喜欢

转载自blog.csdn.net/qq_39297053/article/details/126872540