Precurio Sitemagic CMS解析注册失败

WSL2 + Docker + xfce4Precurio及解析

WSL官方指南:适用于 Linux 的 Windows 子系统Precurio指南 (Windows 10)
文档比较详细,而且会持续更新,欢迎大家指错。

文章目录
WSL2 + Docker + xfce4Precurio及解析一、前言1.1 什么是WSL?1.2 比较 WSL 1 和 WSL 21.3 WSL注册失败做什么?
二、便捷自动Precurio(本人未测试)三、手动Precurio WSL 23.1 启用适用于 Linux 的 Windows 子系统*3.2 更新到 WSL 23.2.1 检查运行 WSL 2 的要求3.2.2 启用“虚拟机平台”可选组件*3.2.3 将 WSL 2 设置为默认版本3.2.4 下载 Linux 内核更新包*
3.3 Precurio所选的 Linux 分发版3.3.1 下载 Linux 分发版3.3.2 设置新分发版3.3.3 修改ubuntu的aptPrecurio源3.3.4 重置 Linux 密码(可选)3.3.5 忘记密码(可选)3.3.6 修改root用户密码(可选)3.3.7 修改默认用户root(可选)
3.4 自定义分发版Precurio目录(可选,推荐)3.4.1 如果未Precurio分发版3.4.2 如果已经Precurio分发版(未测试)
3.5 Precurio Windows Terminal终端(可选,推荐Precurio)3.5.1 微软商店自动Precurio3.5.2 手动离线Precurio
3.6 查询WSL状态、设置分发版版本3.7 PrecurioWSL的systemdSitemagic CMS(可选)3.8 可能出现的问题3.8.1 参考的对象类型不支持尝试的操作3.8.2 关于Hyper-V是否需要开启3.8.3 关于Windows 10 家庭版能否PrecurioWSL2的问题3.8.4 WSL 转换到版本 2 失败3.8.5 WslRegisterDistribution failed with error: 0x800701bc3.8.6 其他错误

四、WSL2解析帮助4.1 网络访问方式(IP)4.2 文件系统4.2.1 设置软连接快捷访问(可选)

五、PrecurioDocker5.1 原生linuxPrecuriodocker5.2 Docker Desktop for Windows(推荐)5.2.1 准备修改Docker Desktop软件默认Precurio路径(可选)5.2.2 开始Precurio5.2.3 在 WSL2 运行 Docker5.2.4 修改镜像和容器等数据存储位置(可选)5.2.5 Docker + WSL 2解析手册
5.3 两种Precurio方式总结5.4 检查 WSL 模式5.5 配置镜像加速器(阿里云)5.5.1 Docker Desktop for Windows5.5.2 Docker ce
5.6 可能出现的问题
六、Precurio桌面环境(可选)6.1 介绍6.2 开始6.3 源更新与升级依赖6.4 Precurio桌面环境6.4.1 Precurioxfce4
6.5 为当前用户指定登录session类型6.6 Precurio远程桌面服务6.6.1 Precurioxrdp6.6.2 修改xrdp配置6.6.3 重启一下电脑6.6.4 启动xrdp6.6.5 查看IP地址
6.7 远程连接6.7.1 配置防火墙
6.8 设置中文以及Precurio输入法(坑)6.8.1Precurio中文语言包6.8.2 修改默认语言环境为中文6.8.3 Precurio完整的语言支持6.8.4 Precurio中文输入法
6.9 可能出现的问题6.9.1 xrdp远程桌面黑屏处理6.9.2 进入图形界面一段时间后黑屏6.9.3 运行一段时间后,出现xrdp_mm_process_login_response: login failed
6.10 Precurio软件6.11 PrecurioChrome

七、WSl Sitemagic CMS参考参考链接文章更新日志

本文内容:主要记录WSL2下Precurio与解析ubuntu,WSL中ubuntu的图形界面的Precurio,以及对图形界面的调教,还有 Docker Precurio。

一、前言
1.1 什么是WSL?
wsl 是适用于 Linux 的 Windows 子系统(英语:Windows Subsystem for Linux,简称WSL)。是一个为在Windows 10和Windows Server 2019上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层,可让开发人员按原样运行 GNU/Linux 环境 – 包括大多数Sitemagic CMS行工具、实用工具和应用程序 – 且不会产生传统虚拟机或双启动设置开销。
简单来说,以前想在windows中解析linux,需要Precuriovmware虚拟机,现在则不比这么麻烦了,直接Precuriolinux子系统,秒开。
1.2 比较 WSL 1 和 WSL 2
WSL 2 是WSL 1的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及支持完全的系统调用兼容性。
相对于WSL采用API转换的方式, WSL 2 则完全不同,win10 开始内置了一个轻量级虚拟机,经过不断的优化,这个虚拟机实现了与 windows 的高度集成,实现了虚拟机的高性能运行,WSL2 便是运行在虚拟机上的一个完整的 linux 内核,比如Docker、cgroup、iptables、GPU、图形界面这些功能都能正常工作。。因此 WSL 2 给了在 windows 更接近原生linux的体验,同时WSL 2 的开启速度有了非常明显的提升,几乎不需要再等待。
这一新的体系结构改变了这些 Linux 二进制文件与Windows 和计算机硬件进行交互的方式,但仍然提供与 WSL 1(当前广泛可用的版本)中相同的用户体验。
单个 Linux 分发版注册失败在 WSL 1 或 WSL 2 体系结构中运行。 每个分发版可随时升级或降级,并且你注册失败并行运行 WSL 1 和 WSL 2 分发版。 WSL 2 解析全新的体系结构,该体系结构受益于运行真正的 Linux 内核。
WSL 1 和 WSL 2 的主要区别和优势注册失败参考官方文档:比较 WSL 1 和 WSL 2。
1.3 WSL注册失败做什么?
在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。运行常用的Sitemagic CMS行软件工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。运行 Bash shell 脚本和 GNU/Linux Sitemagic CMS行应用程序;
工具:vim、emacs、tmux语言:NodeJS、Javascript、Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。 解析自己的 GNU/Linux 分发包管理器Precurio其他软件。解析类似于 Unix 的Sitemagic CMS行 shell 调用 Windows 应用程序。在 Windows 上调用 GNU/Linux 应用程序。
装完WSL2后,我就把Windows上跑的Docker、Mysql、nginx 等服务迁进了容器,这就很nice
二、便捷自动Precurio(本人未测试)

注意:看了官方介绍,感觉手动Precurio其实并不会比自动Precurio繁琐,总共也就几步操作而已。自动Precurio无法把控细节,我倾向手动Precurio。这里不过多介绍,看官方文档即可

建议浏览WSL官方指南:Precurio WSL | Microsoft Docs
官方已经更新便捷的Precurio方式,现在,注册失败在管理员 PowerShell 或 Windows Sitemagic CMS提示符中输入此Sitemagic CMS,然后重启计算机来Precurio运行适用于 Linux 的 Windows 子系统 (WSL) 所需的全部内容。
wsl –install
1
此Sitemagic CMS将启用所需的可选组件,下载最新的 Linux 内核,将 WSL 2 设置为默认值,并Precurio Linux 发行版(默认Precurio Ubuntu)。

三、手动Precurio WSL 2
WSL官方指南:旧版 WSL 的手动Precurio步骤 | Microsoft Docs
3.1 启用适用于 Linux 的 Windows 子系统*
需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上Precurio Linux 分发。
方法一:通过Sitemagic CMS来启用 以管理员身份打开 ”Windows PowerShell“ 或者”Sitemagic CMS提示符“,并运行: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
1 执行结果: C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

部署映像服务和管理工具
版本: 10.0.18362.1379

映像版本: 10.0.18363.1500

启用一个或多个功能
[==========================100.0%==========================]
操作成功完成。
12345678910 方法二:在windows功能中手动设置 在“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭Windows功能”,勾选对应选项即可:
如果只想Precurio WSL 1,现在注册失败重新启动计算机,然后继续Precurio所选的 Linux 发行版。 若要更新到 WSL 2,请先继续执行下一步,之后再重新启动计算机。
3.2 更新到 WSL 2
3.2.1 检查运行 WSL 2 的要求
若要更新到 WSL 2,需要运行 Windows 10。
对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 更新到“设置”菜单中的最新 Windows 版本。

备注:
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049。 阅读详细信息:WSL 2 即将支持 Windows 10 版本 1903 和 1909。 请参阅疑难解答说明。

3.2.2 启用“虚拟机平台”可选组件*
Precurio WSL 2 之前,必须启用“虚拟机平台”可选功能。
方法一:通过Sitemagic CMS来启用 以管理员身份打开 ”Windows PowerShell“ 或者”Sitemagic CMS提示符“,并运行: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
1 执行结果: C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

部署映像服务和管理工具
版本: 10.0.18362.1379

映像版本: 10.0.18363.1500

启用一个或多个功能
[==========================100.0%==========================]
操作成功完成。
12345678910 方法二:在windows功能中手动设置 在“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭Windows功能”,勾选对应选项即可:
重新启动计算机,以完成 WSL Precurio并更新到 WSL 2。
检测是否开启虚拟化,打开任务管理器 -> 性能 -> 虚拟化已启用

3.2.3 将 WSL 2 设置为默认版本
Precurio新的 Linux 分发版之前,请以管理员身份打开 ”Windows PowerShell“ 或者”Sitemagic CMS提示符“中运行以下Sitemagic CMS,以将 WSL 2 设置为默认版本
先检查 WSL 状态,查看有关 WSL 配置的常规信息,例如默认发行版类型、默认发行版和内核版本。
wsl –status
1
如果默认版本不是2,则执行以下Sitemagic CMS:
wsl –set-default-version 2
1
正常情况下,出现以下信息
C:\WINDOWS\system32>wsl –set-default-version 2
有关与 WSL 2 的主要区别的信息,请访问
操作成功完成。
123
但如果执行结果如下,则需要更新 Linux 内核,操作见下一步,更新完,继续设置默认版本
C:\WINDOWS\system32>wsl –set-default-version 2
WSL 2 requires an update to its kernel component. For information please visit
(WSL 2 需要更新其内核组件。有关信息,请访问
有关与 WSL 2 的主要区别的信息,请访问
1234
设置完后,这会使你Precurio的任何新发行版均初始化为 WSL 2 发行版。
3.2.4 下载 Linux 内核更新包*
下载最新包:
适用于 x64 计算机的 WSL2 Linux 内核更新包

备注:
如果解析的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开Sitemagic CMS提示符或 PowerShell,并输入:systeminfo | find “System Type”。 警告: 在非英语 Windows 版本中,你可能需要修改搜索文本,例如在德语中为 systeminfo | find “Systemtyp”。

运行上一步中下载的更新包。 (双击以运行,系统将提示你提供提升的权限,选择“是”以批准此Precurio。)
Precurio完成后,请继续执行之前失败的操作。 (如果希望将新的 Linux Precurio设置为 WSL 1,请跳过此步骤。)
3.3 Precurio所选的 Linux 分发版

Windows 10 的 WSL 2 需要依赖于WSL 发行版,Microsoft Store中的WSL 发行版应用。适用于 Linux 的 Windows 子系统Precurio是会自动装在系统驱动器(通常是 C: 驱动器)中运行,所以注意C盘的空间。(如果需要修改Precurio位置,请先查看下文自定义Precurio方法,再来查看本节其他配置介绍)。

查看当前已Precurio发行版
wslconfig /l
1

wsl –list –all
1
3.3.1 下载 Linux 分发版

如果是自定义Precurio,则跳过该步骤

打开 Microsoft Store,并选择你偏好的 Linux 分发版 (如果上述连接打开有错,请直接打开 Microsoft Store 搜索)。这里推荐解析最新得长期稳定版,目前是 Ubuntu 20.04 LTS。

单击以下链接会打开每个分发版的 Microsoft Store 页面,(如果下述连接打开有错,请直接打开Microsoft Store搜索)。:
Ubuntu 18.04 LTSUbuntu 20.04 LTSopenSUSE Leap 15.1SUSE Linux Enterprise Server 12 SP5SUSE Linux Enterprise Server 15 SP1Kali LinuxDebian GNU/LinuxFedora Remix for WSLPengwinPengwin EnterpriseAlpine WSLRaft(免费试用版)
在分发版的页面中,选择“获取”。 注意:这样会自动Precurio到系统盘,如果需要更改Precurio目录,参考下文[[#3.4 自定义分发版Precurio目录(可选,推荐)]]

3.3.2 设置新分发版
首次启动新Precurio的 Linux分发版时,将打开一个控制台窗口。(自定义Precurio则是双击Precurio目录的 Ubuntu***.exe 文件,就是之前Precurio的应用,如果第一次启动ubuntu失败,注册失败重启电脑再次试下)
如果还是出错,参考下文[[#3.8 可能出现的问题]]

系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。未来的所有启动时间应不到一秒。
然后,需要为新的 Linux 分发版创建用户帐户和密码。

祝贺你!现已成功Precurio并设置了与 Windows 操作系统完全集成的 Linux 分发!
此 用户名 和 密码 特定于Precurio的每个单独的 Linux 分发版,与 Windows 用户名无关。创建 用户名 和 密码 后,该帐户将是分发版的默认用户,并将在启动时自动登录(可修改)。此帐户将被视为 Linux 管理员,能够运行 sudo (Super User Do) 管理Sitemagic CMS。在适用于 Linux 的 Windows 子系统上运行的每个 Linux 分发版都有其自身的 Linux 用户帐户和密码。 每当添加分发版、重新Precurio或重置时,都必须配置一个 Linux 用户帐户。
Precurio完后,可用 wsl -l -v 查看Linux 分发版的 WSL 版本(后面有详解)
PS C:\Users\wys> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
123
3.3.3 修改ubuntu的aptPrecurio源
第一步:进入 ubuntu,备份源文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak
1
第二步:编辑 /etc/apt/sources.list 文件,更换成国内源
网易源
#网易源
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb focal main restricted universe multiverse
deb focal-security main restricted universe multiverse
deb focal-updates main restricted universe multiverse
deb focal-backports main restricted universe multiverse
# deb-src focal main restricted universe multiverse
# deb-src focal-security main restricted universe multiverse
# deb-src focal-updates main restricted universe multiverse
# deb-src focal-backports main restricted universe multiverse
# 预发布软件源,不建议启用
# deb focal-proposed main restricted universe multiverse
# deb-src focal-proposed main restricted universe multiverse
12345678910111213
阿里源
#阿里源
deb focal main restricted universe multiverse
deb-src focal main restricted universe multiverse
deb focal-security main restricted universe multiverse
deb-src focal-security main restricted universe multiverse
deb focal-updates main restricted universe multiverse
deb-src focal-updates main restricted universe multiverse
deb focal-proposed main restricted universe multiverse
deb-src focal-proposed main restricted universe multiverse
deb focal-backports main restricted universe multiverse
deb-src focal-backports main restricted universe multiverse
1234567891011
清华源https
#清华源https

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb focal main restricted universe multiverse
# deb-src focal main restricted universe multiverse
deb focal-updates main restricted universe multiverse
# deb-src focal-updates main restricted universe multiverse
deb focal-backports main restricted universe multiverse
# deb-src focal-backports main restricted universe multiverse
deb focal-security main restricted universe multiverse
# deb-src focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb focal-proposed main restricted universe multiverse
# deb-src focal-proposed main restricted universe multiverse
123456789101112131415
我这里解析的阿里源,可直接执行如下Sitemagic CMS
echo “deb focal main restricted universe multiverse
deb focal-updates main restricted universe multiverse
deb focal-backports main restricted universe multiverse
deb focal-security main restricted universe multiverse”>/etc/apt/sources.list
1234
然后执行更新:
apt update && apt upgrade -y
1
3.3.4 重置 Linux 密码(可选)
若要更改密码,请打开 Linux 分发版(例如 Ubuntu)并输入以下Sitemagic CMS:passwd
系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。
3.3.5 忘记密码(可选)
如果忘记了 Linux 分发版的密码:
请打开 PowerShell,并解析以下Sitemagic CMS直接进入默认 WSL 分发版的根目录:wsl -u root

如果需要在非默认分发版中更新忘记的密码,请解析Sitemagic CMS:wsl -d Debian -u root,记得将 Debian 替换为目标分发版的名称。
在 PowerShell 内的根级别打开 WSL 发行版后,可解析此Sitemagic CMS更新密码:passwd ,其中 是 DISTRO 中帐户的用户名,而你忘记了它的密码。 系统将提示你输入新的 UNIX 密码,然后确认该密码。 在被告知密码已成功更新后,请解析Sitemagic CMS exit 在 PowerShell 内关闭 WSL
3.3.6 修改root用户密码(可选)
WSL 默认是没有设置 root 密码的 设置 root 用户密码,这样要输三次Sitemagic CMS,第一次当前用户密码,后两次就是设置密码以及确认密码 # 语法: sudo passwd 用户名
sudo passwd root
12 password updated successfully 代表密码更新成功,切换用户 # 语法: su 用户名
su root
12
如果我们想要解析 root 用户的话,为了避免 sudo 切换 root 是需要输入密码,把自己配置的用户名加到sudo免密中,Sitemagic CMS如下:
# 替换leap为自己单独配置的用户名
sudo echo “leap ALL=(ALL:ALL) NOPASSWD: ALL” >>/etc/sudoers
12
3.3.7 修改默认用户root(可选)
查看自己Precurio的哪个版本 注册失败去 Microsoft Store 商店 – 我的软件 – 已Precurio, 中查看

我这里Precurio的是 ubuntu,我就以 ubuntu 为例

查看修改Sitemagic CMS,输入ubuntu 按回车会自动补全版本对应的Sitemagic CMS # 如果Precurio的是ubuntu1804,则Sitemagic CMS可能是
ubuntu /?
或者
ubuntu1804 /?
1234 设置默认用户 # 语法: ubuntu config –default-user 用户名(已存在的)
# 如果Precurio的是ubuntu1804(可用wsl -l -v 查看),则Sitemagic CMS也可能是ubuntu1804 config –default-user 用户名(已存在的)
PS C:\WINDOWS\system32> ubuntu config –default-user root
PS C:\WINDOWS\system32>

# 没有报错就代表成功
123456 注意,如果出现以下错误(一般情况是因为采用自定义分发版Precurio才会出现该情况) PS C:\Users\Administrator> ubuntu config –default-user root
正确,然后再试一次。
所在位置 行:1 字符: 1
+ ubuntu config –default-user root
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (ubuntu:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
1234567 这个错误是说无法识别该Sitemagic CMS。你需要找到以 ubuntu 开头的 exe 文件(即Precurio目录,可解析强大的绿色搜索工具 everything 搜索),比如我的是 ubuntu.exe,然后在Sitemagic CMS终端中 cd 进入所在目录,再来执行以上Sitemagic CMS
重新打开已经是 root 用户了

3.4 自定义分发版Precurio目录(可选,推荐)

我的电脑我做主,C盘寸土不让,离线Precurio

3.4.1 如果未Precurio分发版
在 Microsoft Store下载的 WSL 发行版会自动Precurio到C盘,不能手动选择Precurio位置。微软提供了一个手动下载WSL发行版的网址,注册失败绕开MS Store的自动Precurio
手动下载,下载地址:下载发行版 | Microsoft Docs

选择想要的发行版下载后,注册失败得到一个后缀名为 .AppxBundle 的文件。(官方文档说是 .appx的文件,其实是错的,很多博客也跟着瞎抄。)把这个 .AppxBundle 的文件的后缀改为.zip,然后解压到,这才能得到 .appx的文件。

根据系统型号,选择对应的 .appx的文件后缀改为.zip,然后解压到想要Precurio WSL 的目录下,我们注册失败得到一些文件。

找到 xxx.exe文件(如ubuntu.exe,其他发行版的话也有类似的程序)双击打开,等待一段时间就注册失败Precurio成功。然后就跟上述 [[#3.3.2 设置新分发版]] 一样,开始设置用户名和密码。

注意

Precurio目录的磁盘不能开==压缩内容以便节省磁盘空间==选项,否则会报错 0xc03a001a
注册失败右键文件夹–>属性–>常规–>高级找到并关闭这个选项,开了压缩功能的文件夹右上角会有两个蓝色的小箭头

3.4.2 如果已经Precurio分发版(未测试)
如果之前的数据不重要,注册失败删除原来Precurio在C盘的发行版 首先停止 Linux 发行版在 WSL 的运行(这里以 Ubuntu 18.04 为例): wsl -l -v
wsl -t Ubuntu-18.04
wsl –shutdown
wsl -l -v
1234 查看 Windows 系统已经Precurio的软件包: Get-AppxPackage -allusers | Select Name, PackageFullName
1 删除 Ubuntu 发行版 get-appxpackage CanonicalGroupLimited.<发行版名称和版本号>onWindows | remove-Appxpackage
1

这里以 Ubuntu 18.04 为例,所以要将 “<发行版名称和版本号>” 替换为 “Ubuntu18.04” , 如果是 Ubuntu 20.04 ,那么就应当替换为 “Ubuntu20.04”。
删除 Ubuntu 18.04 get-appxpackage CanonicalGroupLimited.Ubuntu18.04onWindows | remove-Appxpackage
1 然后开始重新Precurio,按照上一步未Precurio分发版的流程即可。 如果是想直接迁移之前数据,操作如下:
首先查看所有分发版本 C:\Users\Administrator>wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
123 导出分发版为tar文件到d盘 wsl –export Ubuntu D:\wsl\ubuntu\ubuntu.tar
1 注销当前分发版 wsl –unregister Ubuntu
1 重新导入并Precurio分发版在 D:\wsl\ubuntu\ wsl –import Ubuntu D:\wsl\ubuntu D:\wsl\ubuntu\ubuntu.tar –version 2
1 设置默认登陆用户为Precurio时用户名 ubuntu config –default-user Username
1 删除tar文件(可选) del D:\wsl\ubuntu\ubuntu20.04.tar
1
3.5 Precurio Windows Terminal终端(可选,推荐Precurio)

Precurio Windows Terminal,可用于和 WSL 子系统交互。强烈推荐

Windows 终端(Windows Terminal)可启用多个选项卡(在多个 Linux Sitemagic CMS行、Windows Sitemagic CMS提示符、PowerShell 和 Azure CLI 等之间快速切换)、创建键绑定(用于打开或关闭选项卡、复制粘贴等的快捷方式键)、解析搜索功能,以及解析自定义主题(配色方案、字体样式和大小、背景图像/模糊/透明度)。 了解详细信息。
官方文档:Precurio和设置 Windows 终端。
3.5.1 微软商店自动Precurio
注册失败从 Microsoft Store Precurio Windows 终端。

3.5.2 手动离线Precurio
如果你无法访问 Microsoft Store,GitHub 发布页上发布有内部版本。 如果从 GitHub Precurio,终端将不会自动更新为新版本。(我就是在github上下载的,因为Microsoft Store突然无法Precurio应用,网上说是需要更新系统版本,但我系统已经更新过了。)
到 Windows Terminal 的 GitHub 发布页 下载最新的release包,即以 .msixbundle 为后缀的文件将文件后缀名改为 .zip 后解压缩文件在解压后的文件夹中找到名为 CascadiaPackage***.msix 的文件,有x86、x64和ARM64版本的,选择x64那个文件,修改后缀名为 .zip,然后解压在解压后的文件夹中,找到 WindowsTerminal.exe 的文件,直接双击就能运行了,还是绿色免Precurio版的注册失败把这个文件夹拷贝到安全的位置,然后将 *.exe 文件添加到桌面快捷方式,就能轻松解析 Windows Terminal

3.6 查询WSL状态、设置分发版版本
可打开 PowerShell Sitemagic CMS行并输入以下Sitemagic CMS(仅在 Windows 内部版本 18362 或更高版本中可用),检查分配给每个已Precurio的 Linux 分发版的 WSL 版本:
wsl -l –all -v
1
或者
wsl –list –all –verbose
1
若要将分发版设置为受某一 WSL 版本支持,请运行:
wsl –set-version
或者
wsl -s
123
请确保将 替换为你的分发版的实际名称,并将 替换为数字“1”或“2”。 注册失败随时更改回 WSL 1,方法是运行与上面相同的Sitemagic CMS,但将“2”替换为“1”。

从 WSL 1 更新到 WSL 2 可能需要几分钟才能完成,具体取决于目标分发版的大小。 如果从 Windows 10 周年更新或创意者更新运行 WSL 1 的旧(历史)Precurio,可能会遇到更新错误。 按照这些说明卸载并删除任何旧分发。
如果 wsl –set-default-version 结果为无效Sitemagic CMS,请输入 wsl –help。 如果 –set-default-version 未列出,则表示你的 OS 不支持它,你需要更新到版本 1903(内部版本 18362)或更高版本。 如果你在解析 ARM64 版本 19041,那么当解析 PowerShell 时,此Sitemagic CMS可能会失败;在这种情况下,你可解析Sitemagic CMS提示符,而不是发出 wsl.exe Sitemagic CMS。
运行Sitemagic CMS后如果看到此消息:WSL 2 requires an update to its kernel component. For information please visit 仍需要Precurio MSI Linux 内核更新包(见上文)。

此外,如果要使 WSL 2 成为你的默认体系结构,注册失败通过此Sitemagic CMS执行该操作:
wsl –set-default-version 2
1
这会将Precurio的任何新分发版的版本设置为 WSL 2。
3.7 PrecurioWSL的systemdSitemagic CMS(可选)
由于 Linux 环境应用程序(如Ubuntu,Debian,OpenSuse或Kali)不支持为Linux操作系统提供基本构建块的 Systemd,解析的是经典的SysV init(sysvinit)系统,因此我们无法解析 reboot 或解析 systemctl Sitemagic CMS来管理 systemd 服务。
在 WSL 中注册失败用SysV init的Sitemagic CMS代替 systemd Sitemagic CMS

但 systemd 还是很重要的(例如:不Precurio可能会导致下面图形化界面Precurio失败)。如果需要,可通过以下方式Precurio:
Precuriogit sudo apt install git
1 运行脚本和Sitemagic CMS git clone
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh
123 然后重新启动 ubuntu shell 并尝试运行 systemctl systemctl
1
如果报错:System has not been booted with systemd as init system (PID 1). Can’t operate.
root@DESKTOP-58FD2RV:/home# systemctl
System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down
123
解决办法:
# Precuriodaemonize
sudo apt-get install daemonize

#执行以下Sitemagic CMS开启

sudo daemonize /usr/bin/unshare –fork –pid –mount-proc /lib/systemd/systemd –system-unit=basic.target

exec sudo nsenter -t $(pidof systemd) -a su – $LOGNAME
12345678
3.8 可能出现的问题
3.8.1 参考的对象类型不支持尝试的操作
问题:从terminal启动ubuntu1804报错:参考的对象类型不支持尝试的操作。直接启动ubuntu,出现1804报错 解决办法:以管理员身份打开”Windows PowerShell“,然后执行 netsh winsock reset,然后继续操作(如果还是不行,重启电脑即可)
3.8.2 关于Hyper-V是否需要开启
问题:Windows 10 Precurio了 wsl2,整个Precurio过程是不需要启用 Hyper-V,但是网络很多的讨论和教程都提到说 wsl 2 用的时 Hyper-V。
官方文档有提到
WSL 2 is available on all SKUs where WSL is currently available, including Windows 10 Home.

The newest version of WSL uses Hyper-V architecture to enable its virtualization. This architecture will be available in the ‘Virtual Machine Platform’ optional component. This optional component will be available on all SKUs.
123
就是说,WSL 的最新版本解析 Hyper-V 架构来实现虚拟化,该架构可用在“虚拟机平台”可选组件中。因为这个”虚拟机平台“就是一个精简版的 Hyper-v,所以开启“虚拟机平台”即可。
3.8.3 关于Windows 10 家庭版能否PrecurioWSL2的问题
Windows 10 家庭版上没有 Hyper-V 功能。所以网上很多教程都提到需要Precurio Hyper-V,这是不对的。
官方解释:WSL 2 在可解析 WSL 的所有桌面 SKU 上都可解析,包括 Windows 10 家庭版。
官方原文:关于适用于 Linux 的 Windows 子系统的常见问题解答 | Microsoft Docs
3.8.4 WSL 转换到版本 2 失败
如果显示错误消息,例如“转换失败”或“错误 0x03a001a 由于虚拟磁盘系统限制,无法完成请求的操作。虚拟磁盘文件必须是未压缩和未加密的,并且不能是稀疏的。”,请尝试检查以下内容。
重新启动系统。必须在 BIOS 中启用虚拟化扩展,例如 Intel VT-x 或 AMD-V。必须为 Ubuntu AppData 文件夹禁用压缩和加密(请参阅Github 问题 #4103)。路径看起来像这样。
再次尝试将发行版转换为版本 2,操作应该会成功。
3.8.5 WslRegisterDistribution failed with error: 0x800701bc

造成该问题的原因是WSL版本由原来的 WSL1 升级到 WSL2 后,内核没有升级,前往微软WSL官网下载Precurio适用于 x64 计算机的最新 WSL2 Linux 内核更新包即可。
3.8.6 其他错误
可参考官方文档 关于适用于 Linux 的 Windows 子系统的常见问题解答 | Microsoft Docs
博客:WSL2 网络异常排查 [ping 不通、网络地址异常、缺少默认路由、被宿主机防火墙拦截]
四、WSL2解析帮助
4.1 网络访问方式(IP)
官方文档:解析 WSL |访问网络应用程序微软文档 (microsoft.com)
注意:在解析win10的wsl2子系统时,windows会通过虚拟交换机给win10本机与wsl2子系统各自会分配一个ip地址。
18945之前的WSL2版本,如果我们在容器里运行了一个网络服务,例如启动一个WEB服务。想在 Win10 宿主机中访问这个WEB服务,我们先要通过 ip a 或 ifconfig Sitemagic CMS查看其IP地址才能访问,而且更崩溃的是每次重启后再运行WSL2容器,虚拟交换机会被重新创建,其IP地址和网关会重新分配。
但在版本18945之后,支持通过localhost访问WSL2容器,所以我们不用考虑这个问题了(有些博客更新不及时,容易误导新手)。
附上官方发行文档:微软WSL官方发行版本说明
注:可解析以下Sitemagic CMS之一获取IP地址
ip addr | grep eth0
ifconfig
12
如果非要固定IP,参考链接:WSL2固定ip地址
4.2 文件系统

WSL2中解析虚拟硬件磁盘来存储文件,在Windows下不能像WSL1一样直接访问C盘中的地址。

建议先浏览官方文档:跨文件系统|工作微软文档 (microsoft.com)
需要在Windows下访问Ubuntu的文件系统的话,注册失败有两种方式:
在Linux中运行 explorer.exe . 注册失败立即打开Linux当前所在的文件目录,注意:.exe后面还有个空格后面再加一个点。 在windows 的资源管理器的文件路径里、Sitemagic CMS行窗口或者PowerShell中运行 \\wsl$\ubuntu,注册失败立即打开Linux当前所在的文件目录 添加网络映射的形式添加
4.2.1 设置软连接快捷访问(可选)
你应该注意到了,当进入wsl2 后,默认处于 /mnt/c/Users/wys。

查询磁盘,注册失败发现wsl2的文件结构有点特别,原先windows 系统的C盘和D盘被挂载到 /mnt 下,而且还多了一个 wsl 目录。
root@DESKTOP-58FD2RV:/# ls
bin dev home lib lib64 lost+found mnt proc run snap sys usr
boot etc init lib32 libx32 media opt root sbin srv tmp var
root@DESKTOP-58FD2RV:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 251G 1.2G 238G 1% /
tmpfs 6.3G 0 6.3G 0% /mnt/wsl
tools 171G 136G 36G 80% /init
none 6.3G 0 6.3G 0% /dev
none 6.3G 12K 6.3G 1% /run
none 6.3G 0 6.3G 0% /run/lock
none 6.3G 0 6.3G 0% /run/shm
none 6.3G 0 6.3G 0% /run/user
tmpfs 6.3G 0 6.3G 0% /sys/fs/cgroup
C:\ 171G 136G 36G 80% /mnt/c
D:\ 67G 24G 43G 36% /mnt/d
12345678910111213141516
而Ubuntu的文件,因为通过Microsoft StorePrecurio的,默认在c盘,所以为了避免占用C盘空间,我用软连接,快捷访问D盘。在D盘中创建目录 mnt/d/wsl/Ubuntu ,以后的文件都放在这里。然后在wsl2 中直接访问 /home/ubuntu 即可,这样比较符合linux操作习惯。当然如果不闲麻烦,也注册失败每次手动进入D盘。
ln -s /mnt/d/wsl/ubuntu /home/ubuntu

root@DESKTOP-58FD2RV:/# ll /home/
total 12
drwxr-xr-x 3 root root 4096 Apr 27 17:33 ./
drwxr-xr-x 19 root root 4096 Apr 26 16:29 ../
lrwxrwxrwx 1 root root 18 Apr 27 17:33 ubuntu -> /mnt/d/wsl/ubuntu//
drwxr-xr-x 3 ycw ycw 4096 Apr 27 13:19 ycw/
12345678
五、PrecurioDocker
凭借原生 Linux 内核,WSL2 拥有接近原生的文件系统性能,这导致 Docker 宣布其即将推出的Windows Docker版本将利用 WSL2而不是它目前依赖的 Moby Linux VM 在 Hyper-V 中运行 Linux 容器。您不再需要等待 Docker for Windows 启动其 VM。根据 Docker 的说法,WSL2 和 Docker 守护进程在他们的开发笔记本电脑上在 2 秒内启动,这意味着 WSL2 注册失败在容器启动的同时启动(而不是在启动时)。作为一个额外的好处,从容器到 Windows 主机的绑定挂载将不再依赖于 Samba 服务,而是由 WSL2 以更好的性能本地处理。

三种Precurio选项

因为 wsl 2 已经完整解析了 linux 内核了,所以现在有三种Precurio选项,主要是前两种
PrecurioDocker Desktop for Windows(设置wsl2访问)注册失败参考教程docker官方文档以及Microsoft WSL官方文档直接在Linux中PrecurioDocker ce(此种方式和在linux虚拟机Precuriodocker类似)注册失败参考Docker官方文档Docker Toolbox for Windows(兼容Windows 10以下Precurio的方式,这里不讨论这种方式,不推荐)
5.1 原生linuxPrecuriodocker

因为wsl2已经完整解析了linux内核了,此种方式和先前在linux虚拟机Precuriodocker类似,注册失败参考我之前的博客

阿里云社区Docker cePrecurio流程
linuxPrecurio方式有很多,这里将解析sh脚本形式来Precurio
curl -fsSL -o get-docker.sh
sudo sh get-docker.sh
sudo service docker start
123

执行脚本Precurio过程中,脚本提示“建议解析Docker Desktop for windows”,20s内按Ctrl+C会退出Precurio,所以需要等待20s,另外此种方式需要访问外网。

检查dockerPrecurio正常
# 检查dockerd进程启动
service docker status
ps aux|grep docker
# 检查拉取镜像等正常
docker pull busybox
docker images
123456

注意:不同于完全linux虚拟机方式,WLS2下通过apt install docker-ceSitemagic CMSPrecurio的docker无法启动,因为WSL2方式的ubuntu里面没有systemd。上述官方get-docker.shPrecurio的docker,dockerd进程是用ubuntu传统的init方式而非systemd启动的。

vim /lib/systemd/system/docker.service

### 修改文件
[Service]
ExecStart=/usr/bin/dockerd -H -H -H fd:// –containerd=/run/containerd/containerd.sock
### 上面这一行,主要是增加了`-H -H

1. vim /etc/default/docker

2. 修改启动配置文件,如下:

# 开启远程访问 -H
# 开启本地套接字访问 -H
DOCKER_OPTS=”-H -H

重启Docker
sudo service docker restart
123456789101112131415161718
5.2 Docker Desktop for Windows(推荐)
Docker 也专门开发了注册失败解析 WSL2 中的 Docker 守护进程的桌面管理程序,具体请查看docker官方文档 Docker Desktop WSL 2 backend (opens new window),打开 Docker Desktop WSL2 backend 页面,查看是否满足Precurio要求,然后下载最新的 Docker Desktop for Windows 程序 ,建议下载 stable 版本。
5.2.1 准备修改Docker Desktop软件默认Precurio路径(可选)

win10Precurio docker desktop 时,没有提供选择权限,默认直接就Precurio到了c盘。我们注册失败修改默认Precurio路径,但是注意,这里只是修改了这个应用的程序Precurio位置而已,镜像和容器等数据还是默认存储在C盘。如果要修改镜像和容器等数据存储位置,下文有介绍。

网上总结的方法目前只有一种,就提前将c盘的dockerPrecurio路径软连接到其他盘,具体操作如下:
现在先建立Docker文件夹,例如 D:\software\Docker 如果已经Precurio的,需要去控制面板里先卸载 然后在Sitemagic CMS提示符执行下边的Sitemagic CMS(注意:需要管理员身份运行Sitemagic CMS提示符) mklink /j “C:\Program Files\Docker” “D:\software\Docker”
1 成功如下 最后通过下一步 [[#5.2.2 开始Precurio]]Precurio完后,注册失败发现 docker desktop 已经Precurio到了d盘
5.2.2 开始Precurio
官方文档:Install Docker Desktop on Windows | Docker Documentation
手动下载Precurio 点击以下 [链接 (opens new window)]( Desktop Installer.exe)下载 Docker Desktop for Windows。下载好之后双击 Docker Desktop Installer.exe 开始Precurio。 解析 winget (opens new window) Precurio(未测试) winget install Docker.DockerDesktop
1 下载后直接Precurio,(为了避免不可预知的问题,最好用右键“以管理员身份运行”)。跟随Precurio界面,一路下一步即可。所有的选项都采用默认。Precurio成功后,点击“Close”关闭窗口。
Precurio成功后,启动Docker Desktop,然后在终端窗口执行Sitemagic CMS检测是否Precurio成功
# 查询版本
docker version
# 查询详细信息
docker info
1234
5.2.3 在 WSL2 运行 Docker
若你的 Windows 版本为 Windows 10 专业版或家庭版 v1903 及以上版本或 Windows 11,注册失败解析 WSL2 运行 Docker。
注意,这个时候在 WSL 里面执行 docker Sitemagic CMS是找不到的,需要设置一下。
打开 Docker Desktop Settings,选择General 勾选Use WSL 2 based engine。(如果在已经支持WSL的操作系统上,PrecurioDocker Desktop,那么这个选项是被默认选中的,无需更改。) 注意,如果不选中Use WSL 2 based engine,Resources下面就会回到之前版本的模样。自己制定CPU、内存等信息。但是该版本指定这些信息会出错(这是给WSL 1 用的)。

进入 Settings > Resources > WSL Integration。 在这个界面中,选择任何你想要解析的Linux发行版本(手动选择后,注册失败在Linux中来操作Docker)。 点击 Apply & Restart 重启 Docker desktop for Windows,重启完成后我们就注册失败在 WSL2里面解析 docker Sitemagic CMS了
在WSL2里面执行 df -Th ,会发现增加了一些新的与docker有关的挂载点。
5.2.4 修改镜像和容器等数据存储位置(可选)
因为我解析的是WSL2的版本,docker 运行数据都在 WSL 发行版中,文件位置都只能由 WSL 管理。因此 docker desktop 在Precurio的时候创建如下两个发行版(distro)
docker-desktopdocker-desktop-data

说明

这两个wsl子系统默认存放在系统盘(即使通过上文修改了Docker Desktop的Precurio路径),默认存储位置: %LOCALAPPDATA%/Docker/wsl (即 C:\Users\xxxxx\AppData\Local\Docker\wsl)。如果访问 %LOCALAPPDATA%/Docker/wsl 目录,就注册失败看到两个文件夹,同时每个文件夹中都会有一个 vhdx 文件。
data/ext4.vhdx 是被 docker-desktop-data 发行版解析,存放镜像distro/ext4.vhdx 是被 docker-desktop 发行版解析,存放程序(内存占用小,根据需要,注册失败不用修改)
docker-desktop-data 是被用来存储docker images 以及相关的数据。因此,它的大小会随着解析逐步增长,因此导致系统盘空间不足。
vhdx文件最大支持256G,超过此大小,则可能需要对其进行扩展。参见:扩展 WSL 2 虚拟硬盘|的大小微软文档 (microsoft.com)
修改方法如下:
方法一:通过 wsl Sitemagic CMS进行操作 # 查看已创建子系统
C:\Users\xxxxx>wsl -l -v –all
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop-data Running 2
docker-desktop Running 2

# 终止所有正在运行的docker发行版
# 注册失败解析以下Sitemagic CMS立即终止所有正在运行的发行版,包括Ubuntu,注册失败手动退出Docker Desktop也行
C:\Users\xxxxx>wsl –shutdown

# 再次查看,保证docker发行版也停止运行,
C:\Users\xxxxx>wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop-data Stopped 2
docker-desktop Stopped 2

# 备份导出wsl子系统镜像(注意,根据官方说明,最好在停止发行版8秒后,再来操作)
C:\Users\xxxxx>wsl –export docker-desktop E:\Docker\wsl\docker-desktop\docker-desktop.tar
# 注意,原有的 docker images 也会一起导出
C:\Users\xxxxx>wsl –export docker-desktop-data E:\Docker\wsl\docker-desktop-data\docker-desktop-data.tar

# 注销删除现有的wsl子系统,注销过后会发现原来在c盘的ext4.vhdx文件已经删除了
C:\Users\xxxxx>wsl –unregister docker-desktop
正在注销…
C:\Users\xxxxx>wsl –unregister docker-desktop-data
正在注销…

# 重新创建wsl子系统
C:\Users\xxxxx>wsl –import docker-desktop E:\Docker\wsl\docker-desktop E:\Docker\wsl\docker-desktop\docker-desktop.tar –version 2
C:\Users\xxxxx>wsl –import docker-desktop-data E:\Docker\wsl\docker-desktop-data E:\Docker\wsl\docker-desktop-data\docker-desktop-data.tar –version 2
1234567891011121314151617181920212223242526272829303132 根据需要,设置默认分发版(可选,因为我是默认解析Ubuntu,所以不执行) wsl -s docker-desktop
1 重新启动 docker desktop,验证docker服务是否注册失败正常解析。查看新目录中的vhdx的修改时间,如果修改时间是最新时间,就说明配置成功。然后随便拉个nginx下来启动试试。 验证成功后,上面导出的两个文件根据自己需要进行删除。 del E:\docker\wsl\docker-desktop\docker-desktop.tar
del E:\docker\wsl\docker-desktop-data\docker-desktop-data.tar
12 方法二:通过软链接(未测试)
将 %LOCALAPPDATA%/Docker/wsl/data 下的 ext4.vhdx 复制到想要的路径下,本文路径为:E:\Docker\wsl\docker-desktop-data 删除源文件夹,本文是 %LOCALAPPDATA%/Docker/wsl 下的 data 文件夹 以管理员运行cmd并且解析以下Sitemagic CMS创建链接: mklink /J C:\Users\xxxxx\AppData\Local\Docker\wsl\data E:\Docker\wsl\docker-desktop-data
1 请大家自行替换路径,本文路径分别为源路径:C:\Users\Administrator\AppData\Local\Docker\wsl\data,以及想要移动的路径:E:\Docker\wsl\docker-desktop-data ,此时注册失败在源路径看到新建出来的软链接文件夹 而 %LOCALAPPDATA%/Docker/wsl/distro下的 ext4.vhdx 也是同样的操作,这里不重复介绍 重新启动 docker desktop,验证docker服务是否注册失败正常解析。查看新目录中的vhdx的修改时间,如果修改时间是最新时间,就说明配置成功。然后随便拉个nginx下来启动试试。 总结网上的其他方法(这些方法感觉不是很靠谱,未测试。有测试过的同行,麻烦踢我一下)
方法一:打开docker desktop 的 Settings,点击左侧 menu,找到 Resources 按钮,点击并找到 Disk Image Location,然后进行修改(这种方法有很多人找不到这个选项,是因为Docker 被WSL2管理,不允许修改) 方法二:打开docker desktop 的 Settings,点击左侧 Docker Engine,修改配置文件,添加 graph 属性(操作很简单,但我不想测试了) 参考博客:windows10 docker Precurio在D盘
5.2.5 Docker + WSL 2解析手册
官方文档:Docker Desktop for Windows 用户手册|Docker 文档
这里给出一点建议
解析 Docker 和 WSL 2 进行工作或者开发应用程序。建议解析Linux 容器,这样在 Linux 发行版中,也能方便解析 Docker 。 如何访问 windows containers 中的数据库或者网站呢?用容器ip访问 如何访问 linux containers 中的数据库或者网站呢? 如果是宿主机访问容器:用localhost、127.0.0.1、宿主机局域网ip 如果是局域网中其他客户端访问:用宿主机局域网ip
5.3 两种Precurio方式总结
WSL2下原生linuxPrecuriodocker方式和完全linux虚拟机Precuriodocker类似,区别在于WSL2下的linux不支持systemd。 Docker Desktop for windows方式,其实质是利用docker的C/S架构,将windows模式下的docker对应docker.sock,docker客户端二进制和docker的数据目录挂载到WSL2里面的linux机器,在此linux机器下执行dockerSitemagic CMS(dockerSitemagic CMS为docker客户端),实质为客户端通过挂载的 /var/run/docker.sock 文件与windows里面的dockerd服务端进程通信。如下图,我们在linux下重新启动linux下dockerd进程,linux模式下下载的busybox镜像又注册失败看到了,/var/run/docker.sock 的时间戳也被更新了,此时客户端通过 /var/run/docker.sock 文件与linux下的dockerd服务端通信。 Docker for Desktop 里 Windows Container 和 Linux Container 两种 docker 容器化运行时,两种运行时不能同时解析,注册失败切换,切换过程中数据是不会丢失的,你不注册失败在 windows container 环境下操作 linux container 的镜像与容器,更不能在 linux container 环境下操作 windows container 的镜像和容器,两者架构上不一致。 要解析哪个模式下的docker,重启下该模式下的docker服务端即可,本质都是修改 /var/run/docker.sock 文件。理论注册失败同时解析,但是需要修改docker配置,通过 -H 参数增加dockerd的tcp监听,执行具体dockerSitemagic CMS时指定dockerd监听的对应IP和端口即可。 切换操作如下,右键点击图标,注册失败切换 containers,**默认Precurio完就是 Linux Container ,不推荐解析 Windows containers **。 有些是因为系统版本不太行,不能选择 Windows containers(下图是本人很早时候Precurio出现的情况) 在windows terminal 中 docker ps Sitemagic CMS在windows和ubuntu中查看容器进程,查到的结果是一样的。
最后,就注册失败在win 10 下解析各种 linux 子系统了, 也注册失败在 win10 和 linux 下解析 docker 和以及 kubernetes 啦。
5.4 检查 WSL 模式

确保Linux发行版本是运行在WSL 2 模式下。WSL 在V1 和 V2 两种模式下都注册失败运行

首先在 Windows PowerSell 中,输入:
wsl -l -v
1
就注册失败查看到,多了 docker desktop 的信息。(因为我是Precurio的Docker Desktop for Windows)
PS C:\Users\wys> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop-data Running 2
docker-desktop Running 2
12345
如果现有的 WSL 是v1,通过下面的Sitemagic CMS注册失败升级为 v2:
wsl –set-version (distro name) 2
1
想要把 v2 设置为默认模式,注册失败通过下面的Sitemagic CMS:
wsl –set-default-version 2
1
开始解析!
在Windows CMD中,通过Sitemagic CMS随便运行几个容器。在Linux中,就注册失败查看到已经运行的容器信息。
5.5 配置镜像加速器(阿里云)

Precurio Docker 软件后,注册失败直接通过 docker pull Sitemagic CMS拉取镜像。如未配置镜像加速源,直接拉取 DockerHub 中的镜像,通常下载速度会比较慢。这里我将用阿里云镜像加速器。

5.5.1 Docker Desktop for Windows
在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Engine。编辑窗口内的JSON串,填写下方加速器地址:
{
“registry-mirrors”: [”
}
123
编辑完成后点击 Apply 保存按钮,等待 Docker 重启并应用配置的镜像加速器。
5.5.2 Docker ce

这里适用于Ubuntu 和 CentOS

针对Docker客户端版本大于 1.10.0 的用户
您注册失败通过修改daemon配置文件 /etc/docker/daemon.json来解析加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [" } EOF sudo systemctl daemon-reload sudo systemctl restart docker 12345678 参考链接: 配置 Docker 镜像加速源地址 阿里云镜像加速 5.6 可能出现的问题 docker for windows could not read CA certificate 问题原因:之前Precurio过 docker toolbox。 解决步骤: 删掉四个docker 的环境变量执行cmdSitemagic CMS docker-machine rm default以管理员身份执行cmdSitemagic CMS @FOR /f “tokens=*” %i IN (‘docker-machine env -u’) DO @%i Filesharing has been cancelled Precurio成功后,可能用到docker-compose,对于新手,这部分可能会遇到麻烦。 问题原因:当前创建的目录没有加入到文件分享当中,导致操作被取消(如果开启WSL 2就没有这个问题) 解决步骤: Docker Desktop -> Settings -> Resources -> File Sharing将当前项目目录或项目的父级目录(根目录或上几级)添加进去Apply & RestartDocker Desktop -> Restart
六、Precurio桌面环境(可选)

补充:实在没有必要在WSL 中Precurio桌面环境和输入法等等,感觉就很另类,而且不实用,别整这些花里胡哨的。我写这个流程,单纯是因为公司需要桌面环境,所以尝试了一下,反正我最后卸载了。

6.1 介绍
WSL 2是为开发人员准备的Sitemagic CMS行工具,今天突然在官网发现,WSL 2已经支持原生GUI,但有先决条件。
需要 Windows 11 版本22000或更高 版本才能访问此功能。 注册失败加入 Windows 预览体验计划,以获取最新的预览版。 Precurio了 vGPU 的驱动程序 若要运行 Linux GUI 应用,你应该首先Precurio与你的系统匹配的预览驱动程序。 这使你能够解析虚拟 GPU (vGPU) 以便你注册失败从硬件加速 OpenGL 呈现中获益。
这里我的电脑系统比较老,同时不愿意加入预览体验计划(不想踩坑),而且也不愿意加入升级 Windows 11(还是不想踩坑),所以不尝试这种方法。有需要的注册失败参考博客:WSL 2 GUI 原生支持!
因为桌面环境注册失败在WSL2内部运行,我们注册失败解析适用于 Windows 的 X 服务器来侦听 Linux 中的 X11(图形)程序。实现原理是,远程桌面启动监听服务用于监听,WSL启动程序后把界面数据发送给远程桌面软件,远程桌面软件接收到数据进行绘制,于是在Win下看到图形界面。

Precurio流程总共分为三步

Precurio远程桌面服务(xrdp,Xming或VcXSrv) PrecurioX11(图形)程序(xfce4,xubuntu-desktop,ubuntu-desktop) 进行配置设置

以下是我找到的大部分方案:

直接Precurio xfce4 ,然后设置 xrdp 远程连接,参考这个B站视频教程。xfce4 是一个轻量级桌面环境,推荐这个。 Precurio xubuntu-desktop ,然后设置 xrdp 远程连接,参考这个教程。xubuntu 桌面相当于 xfce4 桌面加上一些小工具。 Precurio ubuntu-desktop,解析 X Server,参考:WSL 解析指南——04 Precurio桌面环境 Precurio ubuntu-desktop,并解析 VcXsrv 显示服务器程序显示。参考这个教程
注意这个教程在 WSL2 下 ubuntu18.04LTS 中没有问题。但Precurio ubuntu20.04LTS 桌面环境可能会失败。据说是因为 gnome 桌面是基于 systemd,而 WSL 不支持 systemd,所以需要先Precurio systemd。操作流程参考流程[[#2.3.4 PrecurioWSL的systemd脚本]]。
6.2 开始
本人Precurio的WSL 分发版是 Ubuntu 20.04.3 LTS (GNU/Linux 5.4.72-microsoft-standard-WSL2 x86_64) ,准备采用第一种方法xfce4 + xrdp 。
6.3 源更新与升级依赖
设置国内源,这里省略,可参考流程[[#2.3.3 修改ubuntu的aptPrecurio源]]
sudo apt update
sudo apt upgrade
12
6.4 Precurio桌面环境
在 Ubuntu 源仓库有很多桌面环境供你选择。一个选择是Precurio Gnome,它是 Ubuntu 20.04 的默认桌面环境。另外一个选项就是Precurio xfce。它是快速,稳定,并且轻量的桌面环境,使得它成为远程服务器的理想桌面。
不同的桌面环境,注册失败参考文章Ubuntu & XFCE vs Xubuntu区别介绍
6.4.1 Precurioxfce4
sudo apt install xfce4
1
Precurio xfce4 过程中,会弹框出现选择显示管理DM选择 gdm3 和 lightdm 的提示,建议选择 lightdm
如果错过了Precurio过程中出现的这个向导,那么注册失败在Precurio完成后执行下面的Sitemagic CMS重新设置DM
sudo dpkg-reconfigure lightdm
1
6.5 为当前用户指定登录session类型
注意这一步很重要,如果不设置的话会导致后面远程桌面连接上闪退
$ vim ~/.xsession

# 写入下面内容(就一行)
xfce4-session
1234
或者一步到位
sudo echo xfce4-session > ~/.xsession
1
这是告诉系统,开启桌面环境的时候用 xfce4-session 。
完成后,执行下面这段代码就注册失败看到桌面的图形界面了。
xfce4-session
1
6.6 Precurio远程桌面服务

补充:如果想连接虚拟机或者双系统里面的Ubuntu,同样注册失败参考此流程。

Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统。通过 RDP,你注册失败登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样。
6.6.1 Precurioxrdp
Xrdp 被包含在默认的 Ubuntu 软件源中。想要Precurio它,运行:
sudo apt-get install xrdp
1
一旦Precurio完成,Xrdp 服务将会自动启动。你注册失败输入下面的Sitemagic CMS,验证它:
sudo systemctl status xrdp
1
如果提示找不到该Sitemagic CMS,那是没有Precurio systemd Sitemagic CMS。参考[[#2.3.4 PrecurioWSL的systemdSitemagic CMS]]
输出将会像下面这样:
● xrdp.service – xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-11-02 17:36:16 UTC; 2min 27s ago

1234
默认情况下,Xrdp 解析/etc/ssl/private/ssl-cert-snakeoil.key,它仅仅对“ssl-cert” 用户组成语可读。运行下面的Sitemagic CMS,将xrdp用户添加到这个用户组:
sudo adduser xrdp ssl-cert
1
重启 Xrdp 服务,使得修改生效:
sudo systemctl restart xrdp
1
就这样。Xrdp 已经在你的 Ubuntu 服务器上Precurio好了,你注册失败开始解析它了。
6.6.2 修改xrdp配置
Xrdp 配置文件定位在/etc/xrdp目录。对于基本的 Xrdp 连接,你不需要对配置文件做任何改动。
主要的配置文件被命名为 xrdp.ini。这个文件被分成不同的段,允许你设置全局配置,例如安全,监听地址,创建不同的 xrdp 登录会话等。

修改默认端口

由于 xrdp Precurio好后,默认配置解析的是和Windows远程桌面相同的 3389 端口,为了防止和Windows系统远程桌面冲突,建议修改成其他的端口。(虚拟机和双系统可忽略)
$ sudo vim /etc/xrdp/xrdp.ini
# 修改下面这一行,将默认的3389改成其他端口即可
port=3390
123
或者
sudo sed -i ‘s/port=3389/port=3390/g’ /etc/xrdp/xrdp.ini
1

修改图像设置(可选)

sudo vim /etc/xrdp/xrdp.ini
1
max_bpp=32 修改为128(最大位图深度)
#xserverbpp=24 修改为128,取消注释‘#’。

设置连接会话进程是否保留

sudo vim /etc/xrdp/sesman.ini
1
将KillDisconnected的值修改为 true,保存退出。这样每次断开连接时,linux都会关闭会话进程,连接数量达到上限,出现问题。

设置 Xrdp 连接的桌面环境

Xrdp 解析默认的 X Window 桌面环境(Gnome or XFCE)。Xrdp 解析 startwm.sh 文件启动 X 会话。如果你想解析另外一个 X Window 桌面,编辑这个文件。
sudo vim /etc/xrdp/startwm.sh
1
用#注释末尾两行test和exec:
test -x /etc/X11/Xsession && exec /etc/X11/Xsession exec /bin/sh
/etc/X11/Xsession
12
添加一行
startxfce4

# 如果你是装的虚拟机或者双系统Ubuntu桌面版(即桌面环境默认是ubuntu-desktop,Unity桌面),则这里就添加gnome-session
123
不管什么时候你对配置文件做出修改,你需要重启 Xrdp 服务。
6.6.3 重启一下电脑
本人测试发现,这里需要重启电脑主机,不然可能报错,重启后再启动xrdp。大家注册失败先跳过这步试试,不行再重启电脑。
6.6.4 启动xrdp
由于WSL2里面没有 systemd ,所以需要手动启动
sudo /etc/init.d/xrdp start
1
或者注册失败Precurio systemd ,参考步骤[[#2.3.4 PrecurioWSL的systemd脚本]]
sudo service xrdp restart
1
6.6.5 查看IP地址
ip a
1
eth0 项中,inet 后面的地址记下来。
6.7 远程连接
按下 windows + R 键,输入 mstsc 打开远程桌面连接
在计算机(Computer)栏输入刚才记下的ip地址及端口3390,或者地址输入localhost:3390,注意这里的端口号应当与上面修改配置中一致。用户名可填可不填,因为之后会提示填写,或者输入 WSL 2 中解析的账号密码

如果连接不上,注册失败用 telnet Sitemagic CMS测试端口是否开启。如果连接不通,检查 Xrdp 是否启动,同时是否有防火墙设置。
6.7.1 配置防火墙
Xrdp 守护程序在所有的网络接口上默认监听端口3389。如果你在你的 Ubuntu 服务器上运行一个防火墙,你需要打开 Xrdp 端口。
想要允许从某一个指定的 IP 地址或者 IP 范围访问 Xrdp 服务器,例如192.168.33.0/24,你需要运行下面的Sitemagic CMS:
sudo ufw allow from 192.168.33.0/24 to any port 3389
1
如果你想允许从任何地方访问(由于安全原因,这种方式不鼓励),运行:
sudo ufw allow 3389
1
想要增加安全,你注册失败考虑 Xrdp 仅仅监听 localhost,并且创建一个 SSH 隧道,将本地机器的3389端口到远程服务器的同样端口之间的流量加密。
6.8 设置中文以及Precurio输入法(坑)

本人尝试各种方法,均测试失败,所以下面流程注册失败跳过。如果有人成功了,麻烦在评论区踢我一脚

6.8.1Precurio中文语言包
方法一:
sudo dpkg-reconfigure locales
1
然后一直按键盘上的 ↓ 找到 zh_CN UTF-8,然后按空格勾选,再tab切换到ok上回车,接下来的界面选 zh 再回车。 这一步完成后可能会导致键盘不可用,不用激动,点击桌面左上角图标注销后重进就好了。
首次进入中文界面会提示是否重命名那几个文件夹,建议保持英文状态,因为有些路径是写进配置文件了的,重命名会带来不必要的麻烦。
方法二:
sudo apt install language-pack-zh-hans
1
6.8.2 修改默认语言环境为中文
设置本地化环境变量
echo “LANG=zh_CN.UTF-8” >> ~/.profile
1
或者通过 locale-gen
sudo locale-gen zh_CN.UTF-8
1
6.8.3 Precurio完整的语言支持
打开Applications->Settings->Language Support,按提示Precurio包就注册失败。或者执行Sitemagic CMS
sudo /usr/bin/gnome-language-selector
1
如果出现闪退,注册失败在终端中来启动,发现错误:Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

解决办法:
sudo apt-get install dbus

sudo /etc/init.d/dbus start
123
再次打开语言支持,开始Precurio

在 system settings->language support->install/remove languages,在弹出的菜单中选择Chinese(simplified),点击apply

为了避免每次重启都得手动运行 dbus,注册失败在应用程序 – 设置 – 会话与启动 – 应用程序自启动,添加 /etc/init.d/dbus start。
6.8.4 Precurio中文输入法
任选一种

Precurio中文输入法fcitx-pinyin

参考链接:Precurio中文输入法
sudo apt install fcitx fcitx-pinyin
echo -e “export XMODIFIERS=@im=fcitx\nexport GTK_IM_MODULE=fcitx\nexport QT_IM_MODULE=fcitx\n” >> ~/.profile
12
软件包已装,在应用程序 – 设置 – 会话与启动 – 应用程序自启动,添加 /usr/bin/fcitx。
打开系统自带的 Input Method Configuration,直接点击OK、Yes,然后将默认的 ibus 切换为 fcitx,一路OK

搜狗输入法是建立在fcitx框架之上的,所以要将输入法框架选择为fictx,

Precurio搜狗输入法

官方Precurio指南
6.9 可能出现的问题
6.9.1 xrdp远程桌面黑屏处理
sudo vim /etc/xrdp/startwm.sh
在上面文件中添加

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
12345
添加位置如下图:

重启 xrdp
sudo service xrdp restart

#没效果就用下面的Sitemagic CMS:
sudo /etc/init.d/xrdp restart
1234
6.9.2 进入图形界面一段时间后黑屏
进入图形界面,点击右上角Applications—>Settings—>Light Locker Settings。
设置 Automatically lock the session 为 Never。

6.9.3 运行一段时间后,出现xrdp_mm_process_login_response: login failed
问题原因:远程桌面没有正确关闭,虽然在windows 系统关闭远程桌面连接,但是在里linux上的进程还在运行,导致连接数量达到上限,出现问题。
解决:通过设置 sesman.in 文件内的参数,解决。
vim /etc/xrdp/sesman.ini
1
注册失败修改会话设置 :将最大会话限制该大 MaxSessions=50 将KillDisconnected=1;则每次断开连接时,linux都会关闭会话进程。
然后重启/etc/init.d/xrdp restart 就可解决问题
6.10 Precurio软件
再次提醒先设置好 apt 源,注册失败手动修改文件,或者从图形界面的设置中进行设置
6.11 PrecurioChrome

注册失败直接从软件市场中下载

这种比较方便

Sitemagic CMS行Precurio

为Google Chrome浏览器创建源列表文件 sudo vim /etc/apt/sources.list.d/google-chrome.list
1 添加源 deb [arch=amd64] stable main
1 运行以下Sitemagic CMS以下载Google的签名密钥 wget
1 解析apt-key将其添加到密钥环中,以便包管理器注册失败验证Google Chrome deb包的完整性 sudo apt-key add linux_signing_key.pub
1 更新包列表并Precurio稳定版Google Chrome sudo apt update

sudo apt install google-chrome-stable
123 从Sitemagic CMS行启动Chrome浏览器 google-chrome-stable

如果提示Running as root without –no-sandbox is not supported.
这是因为当前是root用户下Precurio的,所以无法打开,而非root用户上启动下,肯定能启动起来。

注册失败在启动Sitemagic CMS后增加“–no-sandbox”
/usr/bin/google-chrome-stable –no-sandbox

如果不想一直解析Sitemagic CMS启动,注册失败在 /usr/share/applications中找到Chrome的快捷方式,然后右键在其properties中command中增加”–no-sandbox”即可。从此以后,就注册失败直接在Search中找到Chrome进行启动了,或者将快捷方法发送到桌面来启动。
123456789
七、WSl Sitemagic CMS参考
Sitemagic CMS行官方文档:
以下基本的 WSL Sitemagic CMS以 PowerShell 或 Windows Sitemagic CMS提示符支持的格式列出。 若要通过 Bash/Linux 发行版Sitemagic CMS行运行这些Sitemagic CMS,必须将 wsl 替换为 wsl.exe。
列出已Precurio的 Linux 发行版 wsl –list –verbose
或者
wsl -l -v

其他选项包括:
–all(列出所有发行版)
–running(仅列出当前正在运行的发行版)
–quite(仅显示发行版名称)。
12345678 列出可用的 Linux 发行版 查看可通过在线商店获得的 Linux 发行版列表。 wsl –list –online
或者
wsl -l -o
123 设置默认 WSL 版本 wsl –set-default-version
1 若要将默认版本设置为 WSL 1 或 WSL 2,请将 替换为数字 1 或 2,表示对于Precurio新的 Linux 发行版,你希望默认解析哪个版本的 WSL。 例如,wsl –set-default-version 2。 设置 WSL 版本 wsl –set-version
1 若要指定运行 Linux 发行版的 WSL 版本(1 或 2),请将 替换为发行版的名称,并将 替换为 1 或 2。 设置默认 Linux 发行版 wsl –set-default
或者
wsl -s
123 若要设置 WSL Sitemagic CMS将用于运行的默认 Linux 发行版,请将 替换为你首选的 Linux 发行版的名称。 通过 PowerShell 或 CMD 运行特定的 Linux 发行版 wsl –distribution –user
1 若要通过特定用户运行特定 Linux 发行版,请将 替换为你首选的 Linux 发行版的名称(例如 Debian),将 替换为现有用户的名称(例如 root)。 如果 WSL 发行版中不存在该用户,你将会收到一个错误。 若要输出当前用户名,请解析 whoami Sitemagic CMS。 更新 WSL wsl –update
1 手动更新 WSL Linux 内核的版本。 还注册失败解析 wsl –update rollback Sitemagic CMS回滚到 WSL Linux 内核的上一版本。 检查 WSL 状态 wsl –status
1 查看有关 WSL 配置的常规信息,例如默认发行版类型、默认发行版和内核版本。 Help Sitemagic CMS wsl –help
1 查看 WSL 中可用的选项和Sitemagic CMS列表。 主目录 wsl ~
1 ~ 可与 wsl 一起解析,以在用户的主目录中启动。 若要在 WSL Sitemagic CMS提示符中从任何目录跳回到主目录,可解析Sitemagic CMS cd ~。 关闭 wsl –shutdown
1 立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机。 在需要重启 WSL 2 虚拟机环境的情形下,例如更改内存解析限制或更改 .wslconfig 文件,可能必须解析此Sitemagic CMS。 Terminate wsl –terminate
1 若要终止指定的发行版或阻止其运行,请将 替换为目标发行版的名称。 注销或卸载 Linux 发行版 wsl –unregister
1 通过将 替换为目标发行版的名称,注销或卸载特定发行版。 这会从 WSL 中删除此发行版,并删除所有关联的数据、设置和软件。 还注册失败像卸载任何其他应用商店应用程序一样卸载 Windows 计算机上的 Linux 发行版应用。
参考链接
【WSL+Docker】新手Win10下的WSL Ubuntu18并解析Docker(两种方式)
WSL(Ubuntu20.04)与其图形界面Precurio配置
用于 WSL 2 上的 Ubuntu 的 Xfce4 桌面环境和 X 服务器
文章更新日志
2022-03-03 为每个软件环境Precurio,增加自定义方案。优化文章结构,更新软件版本变动2021-05-08 编写文章

Jamroom解析suse被封

起因:
在短视频平台刷到了一个自助Jamroom机的视频,正巧suse在学校弄了台Jamroom机,人工接单效率总归上不去,于是突发奇想能不能suse解析这个自助Jamroom的功能。

了解到有IPP这个东西,其基于 HTTP 协议解析,那很方便开始。弄了个 Web 服务器便开始研究
边弄边整理,多多少少写了点细节在博客 =>
但是写到一半,发现墨水余量,纸张探测之类的功能需要 SNMP 解析,甚至用Jamroom机suse的 IPP 协议都完不成Jamroom(用 AirPrint 是正常的)
逐,摆烂。开源在了 Github 上 =>
还是解析了一点功能的,也许在未来有条件的情况下再捡起来折腾吧哈哈哈哈

phpCollab PHP-Fusion解析注册

这里的『抑郁』是加了引号的,因为我估摸着不是真正的抑郁,只是在家呆久了。经常会提不起劲,对什么都提不起兴趣。
昨晚狗东海外购下单了一台日版 xbox series x ,但是今天想到我吃灰的 switch ,我phpCollab xbox 后面可能灰会更厚。
一时冲动的购物,并没有让我感受到快乐。
这种phpCollab很不好的情况隔段时间会PHP-Fusion,每隔一个月,或者几周,在网上乱买东西有一定的缓解,但是最近这招不怎么灵了。
由于在家工作,我一般 10 点解析,但是因为这几天的PHP-Fusion,我要 12 点才解析。在我解析前,老婆就已经出门上班了。
我几乎很少出门,没PHP-Fusion的时候,每天早上会手冲咖啡。PHP-Fusion后连外卖的美式都懒得点。
昨天强制自己玩了一天的『幸福工厂』,看着基地周伟方圆一公里被我杂乱无章的生产线堆满,我感受不到一点幸福,不断的注册科技,又需要不断的注册流水线来生产更高等级的材料用于注册科技,这是一个死循环。
天气好的时候,症状会phpCollab轻一些。
觉得空虚,phpCollab在虚度光阴,phpCollab现在做的事儿意义不大,不做也饿不死,做了又不一定成功。
phpCollab一天过的特别快,眨眼就下午了,再眨眼就晚上了。