WSL2 提供 X 桌面支持

参考资料:Xfce4 Desktop Environment and X Server for Ubuntu on WSL 2

2016年发布的原始Windows Linux子系统(WSL)添加了 Bash shell 并能够在
Windows 中运行基于 Ubuntu,openSUSE,SUSE Enterprise Linux,Debian 或 Kali
Linux 的用户空间。但是,没有真正的Linux内核在操作系统上运行。微软的仿真层将 Linux 系统调用转换为 Windows 系统调用。想要在 Windows 上测试和编译 Linux 应用程序的开发人员大为欢迎 WSL,因为这意味着他们可以使用 GNU 工具和实用程序而无需双启动或VM。与VM相比,除了文件系统 I / O 之外,WSL 的 CPU 性能接近本地。由于 WSL 没有真正的 Linux 内核,因此在 WSL 中运行的Linux应用程序因处理文件元数据的 Windows 钩子而成为瓶颈,比原始 Linux 文件系统要慢得多。而且,某些应用程序存在兼容性问题,因为它们依赖的内核服务不可用。

WSL2 是为运行于 2016 年 5 月的 Windows Insider 计划中的 Fast Ring 用户而推出的 Windows 子系统。WSL2 是运行的实用程序 VM,它不依赖于内核仿真,而是开源的完整 Linux 内核。在 Windows 之上。VM 难道不意味着 WSL2 会像使用 Hyper-V 在 Windows 上运行 Linux VM 一样遭受性能损失吗?为解决此问题,Microsoft 将 WSL2 视为使用 Hyper-V 功能子集的高度优化的 VM,该功能可提供接近本机的 CPU 和文件系统 I / O 性能。到目前为止,大多数 Beta 测试人员都观察到 WSL2 的性能可与 WSL1 媲美。使用本地Linux内核,WSL2 拥有近乎本机的文件系统性能,这促使 Docker 宣布其即将推出的 Windows 版 Docker 将利用 WSL2 代替当前在 Hyper-V 中运行 Linux 容器所依赖的 Moby Linux VM。您不再需要等待 Docker for Windows 引导其 VM 的启动。根据 Docker 的说法,WSL2 和 Docker 守护程序会在其开发笔记本电脑上在2秒内启动,这意味着 WSL2 可以在启动容器的同时启动(而不是在启动时启动)。另外一个好处是,从容器到 Windows 主机的绑定装载将不再依赖 Samba 服务,而是由 WSL2 以本机方式进行处理,性能要好得多。

安装 WSL2 不需要启用 Hyper-V,只需启用 Linux 的 Windows 子系统和 Windows 可选功能中的虚拟机平台。只要您运行的是 Insider Preview 内部版本 18917 或更高版本,您就会看到这些功能可用-包括 Windows 10 Home。尽管 WSL2 旨在作为开发人员的命令行工具,但是桌面环境可以在 WSL2 内运行,并且您可以使用 Windows 的X Server(例如 Xming或 VcXSrv)来侦听 Linux 中的 X11(图形)程序。Xfce4 是一个轻量级的桌面环境,开发人员已经能够使用 WSL 和 WSL2。WSL2 需要 Insider Preview 内部版本 18917 及更高版本。 要检查您当前正在运行的 Windows 构建版本,请打开 Powershell 窗口并运行命令 winver。如果内部版本号> 18917,就可以开始使用。

接下来,打开 Administrator Powershell 窗口并运行以下命令。启用每个功能都需要重新启动,因此请保存所有工作并关闭其他应用程序。

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

接下来,打开 Microsoft Store 并安装您选择的发行版。我们使用Ubuntu 20.04 LTS,但您可以选择任何与 WSL 兼容的发行版。

下载完成后,从“开始”菜单打开 Ubuntu Shell 以完成 Ubuntu 的安装。系统将提示您提供 Linux 用户名和密码。最初,WSL 将在不利用新功能的原始版本 WSL1 下运行。现在打开 Powershell 窗口并运行以下命令。第一个命令列出了已安装的 Linux 的 WSL 发行版,第二个命令将 Ubuntu 从 WSL1 转换为WSL2。如果希望以后安装的所有 WSL 发行版默认使用 WSL2 功能,则第三条命令是可选的。

wsl --list --verbose
wsl --set-version Ubuntu-18.04 2
wsl --set-default version 2

如果 WSL 到版本2的转换失败,并显示错误消息,例如“转换失败”或“错误0x03a001a”,则由于虚拟磁盘系统限制,无法完成请求的操作。虚拟磁盘文件必须未压缩和未加密,并且不能稀疏。”,请尝试检查以下内容。

  • 重新启动系统。
  • 必须在您的BIOS 中启用虚拟化扩展,例如 Intel VT-x 或 AMD-V。
  • 必须为 Ubuntu AppData 文件夹禁用压缩和加密(请参阅 Github Issue #4103)。 路径看起来像这样。
%localappdata%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

1 设置图形界面

1.1 安装 choco

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

1.2 使用 choco 安装 VcXsrv

choco install vcxsrv

配置防火墙,外界网络访问 VcXsrv 的端口

2 启动 VcXsrv

Display settings: One large window
How to start clients: Start no client
Disable access control: Yes:一定要选这一项,WSL 2 相当于远程(外界)网络了,和 Windows 10 是分开的,和 WSL 1 不一样

完成后,单击“完成”以启动X服务器。如果Windows防火墙提示,请确保允许从公用网络和专用网络都连接到 VcXSrv。双击系统任务栏中的X图标,将 VcXSrv 带入前台。现在,您将看到黑屏,因为 Linux 中还没有运行图形化的 X11 应用程序。

3 wsl 安装 xfce4

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install xfce4
sudo apt install xfce4-session

安装完之后需要稍微配置一下:

echo "export DISPLAY=:0.0">> ~/.bashrc

或者

echo "export DISPLAY=localhost:0">> ~/.bashrc

如果报错,则需要在 PowerShell 获取 IP:

ipconfig

在 WSL 中修改:

echo "export DISPLAY=IP:0">> ~/.bashrc

使设定生效:

source ~/.bashrc

4 时钟测试

sudo apt install x11-apps

启动:

xclock

效果:

5 启动 Ubuntu 桌面

startxfce4

或者

xfce4-session

效果:

6 最后使用 vbs 和 bat 制作一个快速访问

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260