• Windows11企业版安装WSL2和Ubuntu发布版(避坑)


    背景

    win10企业版升级win11企业版后,安装WSL2,最后安装WSL的Ubuntu发布版,尝试网上各种方法,还是出现文章第三节所写的问题,差点被这问题搞放弃了,全网少有针对这个问题的答案,有也不顶用,靠自己学习WSL知识,找到该问题可能的原因,搞定该问题。

    一、win10企业版升级win11企业版

    参考本人博客:
    https://blog.csdn.net/Acecai01/article/details/136752860

    二、安装WSL和发布版

    注意WSL2与其他模拟器或虚拟机冲突

    WSL2与绝大多数手游模拟器(MUMU、雷神等)都不兼容,如果有使用模拟器的需求,需要谨慎考虑
    原因:WSL2需要开启Hyper-V,而模拟器使用不能开启Hyper-V
    如果两者冲突导致WSL2不可用,参考下方链接
    https://www.bilibili.com/read/cv13748859
    
    • 1
    • 2
    • 3
    • 4

    2.1、配置防火墙

    (1)打开 “Window 安全中心”
    (2)点击 “应用和浏览器控制”
    (3)拉到底点击"攻击防护设置"
    (4)切换到 “程序设置” 选项卡,等待片刻刷新出程序列表
    (5)拉到底部,看到"C:\WINDOWS\System32\vmcompute.exe",点击并编辑
    (7)下滚到 “控制流保护 (CFG)” ,取消勾选"替代系统设置"
    (8)在Powershell中执行 “net start vmcompute”, 启动vmcompute

    2.2、修复系统

    (1)以管理员身份打开PowerShell
    (2)执行命令 “sfc /scannow”,等待完成
    (3)执行命令 " dism /online /cleanup-image /restorehealth",等待完成
    (4)重启电脑

    2.3、安装

    参考链接:
    https://contabo.com/blog/how-to-install-wsl2-on-windows-10/

    2.4、WSL问题排查

    官方各类问题排查方法
    https://learn.microsoft.com/zh-cn/windows/wsl/troubleshooting#installation-issues

    WSL日志查看方法
    《[问题已处理]-排查wsl崩溃的方法》
    https://blog.csdn.net/xujiamin0022016/article/details/126557180

    三、问题

    报错问题是:WslRegisterDistribution failed with error: 0x80070490 Error: 0x80070490 ???
    过程
    在2.3节中安装Ubuntu发布版步骤时:

    (base) PS C:\WINDOWS\system32> wsl.exe --install Ubuntu-22.04
    。。。
    Installing, this may take a few minutes...
    WslRegisterDistribution failed with error: 0x80070490
    Error: 0x80070490 ???
    
    Press any key to continue...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    他人解决方法
    针对该问题,这里有几篇其他人的解决办法(环境和本人的不同,本人不适用)
    https://edosha.hatenablog.jp/entry/2022/06/09/145453
    https://superuser.com/questions/1820365/wsl2-ubuntu-20-04-6-lts-not-working-wslregisterdistribution-failed-with-error
    https://github.com/microsoft/WSL/issues/7946

    本人解决方法
    通过2.4节中所述查看WSL日志方法,找到安装Ubuntu时所产生的日志文件logs.etl(以管理员身份开启两个PowerShell,一个监听日志(注意要翻墙后操作),一个安装ubuntu产生问题),将其转为logs.xml后定位到可能的问题信息:
    在这里插入图片描述
    如上图红框内容与所产生的问题在形式上很相似,猜测是NAT网络模式的问题,主机和WSL发布版无法连通,查阅WSL网络访问知识:
    https://learn.microsoft.com/zh-cn/windows/wsl/networking
    尝试了如下方法:
    (1)手动创建配置文件 “C:\Users\Administrator.wslconfig”, 文件内容如下:

    [wsl2]
    localhostForwarding=true
    networkingMode=mirrored
    
    • 1
    • 2
    • 3

    保存后关闭。

    (2)以管理员身份运行PowerShell,执行如下命令:

    (base) PS C:\WINDOWS\system32> wsl --shutdown   # 重启WSL
    (base) PS C:\WINDOWS\system32> netsh winsock reset    # 重置winsock,防止网络代理等问题
    
    • 1
    • 2

    (3)重启电脑
    (4)重新安装Ubuntu22.04,成功!!如下状态:

    (base) PS C:\WINDOWS\system32> wsl -l -v
      NAME            STATE           VERSION
    * Ubuntu-22.04    Running         2
    
    • 1
    • 2
    • 3
  • 相关阅读:
    R语言计算时间序列数据的逐次差分(successive differences):使用diff函数计算时间序列数据的逐次差分值
    qt的qtableview锁定第一列(或者其他列)
    基于springboot的健身管理系统
    每日一题 2034. 股票价格波动(中等,有序队列)
    Linux学习笔记(8) -- 文件管理(下)
    JavaScript-对象
    Web服务器实现|基于阻塞队列线程池的Http服务器|线程控制|Http协议
    用springboot改写传智健康项目问题
    【Vue十日谈】浅谈vuex
    如何进行并发编程和线程同步?
  • 原文地址:https://blog.csdn.net/Acecai01/article/details/136752778