Win11安装基于WSL2的Ubuntu
1. 概述
趁着还没有完全忘记,详细记录一下在Win11下安装基于WSL2的Ubuntu的详细过程。不得不说WLS2现在被微软开发的比较强大了,还是很值得安装和使用的,笔者就通过WLS2安装的Ubuntu成功搭建了ROS环境。
2. 详论
2.1 子系统安装
在Win11搜索栏中搜索“启用或关闭Windows功能”,在弹出的“Windows功能”对话框中,勾选择 “适用于Linux的Windows子系统”和“虚拟机平台”,如下图1所示:

点击“确定”按钮,等待Windows更改完成。在选择“立即重新启动”,重新进入Win11系统之后,启动Windows PowerShell。注意,为了避免权限问题,后续所有启动Windows PowerShell的方式都可以以管理员身份运行。笔者也不太清楚哪些要管理员权限,哪些不要,干脆就统一以管理员身份运行好了。
在Windows PowerShell中输入如下命令:
wsl --update
之后就会更新wsl,如下图2所示:

注意,如果你是用的比较新的Win11版本,那么应该就会默认安装到WSL2,所以不用进行切换WSL版本。如果安装的还是WSL1,那么就要升级到WSL2,因为WSL1和WSL2的特性是不太一样的。
接下来通过Microsoft Store安装Ubuntu发行版,可以直接在Microsoft Store中搜索Ubuntu,笔者这里安装的是Ubuntu 20.04.6 LTS版本,如下图3所示:

现在Microsoft Store的网络连接应该比较稳定了,下载安装过程还是比较顺利的。安装完成之后,就可以在系统搜索栏搜索到“Ubuntu 20.04.6 LTS”并启动,如下图4所示:

第一次启动Ubuntu终端的时候会让你创建用户名和密码,按照提示进行设置即可。不过笔者在这一步的时候不小心关闭终端了,后果就是每次启动Ubuntu终端的账户的时候都是root账户。
应该来说整个系统的安装过程还是很顺利的,并没有遇到诸如需要切换版本、下载其它终端、迁移地址等问题。
2.2 资源管理
按照惯例,安装好Ubuntu第一件事就是更新和升级包管理器,这是安装依赖库或者软件必须。在终端输入如下指令:
apt-get update
apt-get upgrade
经过笔者的测试,上述指令现在没有遇到网络问题了,不知道是不是因为是WLS的原因。如果无法更新的话,有两种解决方式,一种是设置代理,还有一种是换源,这里就不多作论述了。
使用WLS的Ubuntu的好处就是方便资源管理,比如前面提到的要给包管理器换源,就要编辑/etc/apt/sources.list这个文件。但是这时是没有GUI界面的,只有使用像Vim和nano这样基于终端的文本编辑器,笔者反正是不太想使用的。但是在WLS下,如果你按照之前的步骤顺利安装完成,就可以直接通过Win11自带的文件资源管理器访问到Ubuntu下所有的文件,如下图5所示:

文件资源能访问到当然就可以通过Win11的文本编辑器打开并编辑(需要注意Windows和Ubuntu文本文件的换行问题)。不仅是文本文件,任何文件资源的拷贝和移动都很方便,可以实现常规的复制粘贴操作。其实文件资源不拷贝也行,两个系统之间的文件本身就可以互相访问,当然可能需要解决一些权限问题。
2.3 GUI界面
2.3.1 WSLg
既然都用上Ubuntu了,当然还是想给它装上GUI界面。其实目前最新的WLS2已经集成了WSLg技术,也就是可以支持GUI程序,只需要安装GUI程序,然后运行就可以了。在Ubuntu终端中输入指令:
xeyes
就可以在Win11系统中看到xeyes应用程序窗口,如下图6所示:

如果没有出现xeyes窗口,那么可能是Win11版本、WSL版本太低或者GPU驱动的问题,都进行更新一下即可。如果顺利出现,就说明可以直接打开Ubuntu的GUI程序。例如,可以打开Ubuntu的文件资源管理器:
thunar
如果提示不识别,就安装一下:
sudo apt-get update
sudo apt-get install thunar
启动窗口如下图7所示:

应该来说,双系统资源互通加上这个文件资源管理器,应该能方便解决很多问题了。
2.3.2 VcXsrv
如果还是想获得沉浸式的桌面体验,那么就需要安装桌面环境了。不过这种方案不是安装了包就行了,更类似于远程桌面连接,需要在Win11端安装X服务器VcXsrv,可以在其官方网站上下载。
下载安装完成后会在桌面上生成一个XLaunch的快捷方式。为了以防外一,还是以管理员方式启动XLaunch,首先配置展示设置,如下图8所示:

展示配置用于设置Ubuntu桌面以及GUI程序的窗口方式,其实四种方式其实都可以,这里就以Multiple windows为例。点击下一步,配置如何启动客户端,如下图9所示:

这里保持默认配置就行。继续下一步,进行额外配置,如下图10所示:

注意这里的Disable access control是一定要勾选的,否则可能无法启动GUI桌面。继续下一步,点击“Save configuration”可以将配置保存,便于下一次启动。点击“完成”,VcXsrv就会正式启动,如下图11所示:

一定要注意,通过Multiple windows方式启动的VcXsrv是看不到窗口的,它是在后台启动的,可以在任务管理器中看到。如果因为各种原因需要重启,就在任务管理器中关掉,确保只有一个VcXsrv程序。
以上是在win11端中的操作,接下来就是在Ubuntu终端的操作。同样的,为了避免问题以管理员方式启动Ubuntu终端,并且使用root权限账号。使用如下指令安装xfce4桌面环境:
sudo apt install xfce4
配置远端的展示地址,指令如下:
export DISPLAY=192.168.31.168:0
注意这里使用的192.168.31.168要换成你Win11端的IP地址,localhost或者127.0.0.1是不行的,因为对Ubuntu来说,Win11端其实是远端,一定要用Win11端的IP地址。这一步在每次启动桌面环境的时候都要设置,如果对Ubuntu环境比较熟的话可以配置到.bashrc文件中,可以避免每次都执行这个操作。
通过sudo startxfce4启动xfce4桌面环境,效果如下图12所示:

2.3.3 问题
如果是使用WSLg还是VcXsrv连接的方式,都还是有一些问题的。WSLg的问题是启动GUI程序是不支持高分屏的,这样GUI上的文字特别小,看起来非常伤眼睛。VcXsrv的问题是只有以Multiple windows方式启动的桌面环境才能支持GPU/OpenGL,但是这种方式启动的桌面环境中打开的GUI程序有点问题,具体表现为点击标题栏的关闭按钮无法生效,或者无法通过标题栏拖动窗口的位置。图8所示的其他方式如Fullscreen、One large window等就没这个问题,但是又不支持GPU/OpenGL。
不过话说回来,对使用GPU的GUI程序来说,基于WLS的Ubuntu确实不是最优解,笔者这里使用glxinfo | grep "OpenGL"显示的OpenGL只能支持到OpenGL 3.1,更不然其他显卡的驱动了。以后有机会的话还是试试双系统的Ubuntu,体验一下满血Ubuntu的感觉。
3. 参考
- Win11安装WSL2 子系统以及不同分发版Ubuntu系统
- WS2 安装ubuntu +迁移+vscode
- 通过 VcXsrv 在 WSL2 上使用图形化界面
- wsl最丝滑的图形桌面设置方式是什么?
Win11安装基于WSL2的Ubuntu的更多相关文章
- WSL2(Ubuntu)安装Docker
原文链接:https://www.cnblogs.com/blog5277/p/12071400.html 原文作者:博客园--曲高终和寡 *******************如果你看到这一行,说明 ...
- Pangolin 安装测试 Installation & Examination (Ubuntu 20.04)
Pangolin 安装测试 Installation & Examination (Ubuntu 20.04) 如题所述,这是一个比较轻松的 Pangolin 安装配置方法,同样是基于 WSL ...
- 安装双系统window +ubuntu
在网上,试过很多种方法,有U盘制作安装,感觉好复杂,这边有一个简便的方法就是使用Ubuntu 的 wubi安装. 一直想安装双Ubuntu 系统很久了,可是以前在大学时期的时候一直努力,好像都不行,这 ...
- 软件安装失败,导致ubuntu软件中心软件消失
感谢百度上各位IT界朋友的帮助,由于某个软件安装失败,导致ubuntu软件中心软件消失的解决办法: 找百度,有人说, 使用命令:sudo apt-get install software-center ...
- 安装基于XenServer的DevStack
Openstack默认的hypervisior是基于KVM的,可以修改nova-compute.conf的libvirt_type改成使用其他,网上可以搜到个别文章 但是Openstack官方文档却说 ...
- 安装Hadoop及Spark(Ubuntu 16.04)
安装Hadoop及Spark(Ubuntu 16.04) 安装JDK 下载jdk(以jdk-8u91-linux-x64.tar.gz为例) 新建文件夹 sudo mkdir /usr/lib/jvm ...
- 安装基于 Linux 发行版的重要事项(流程指引)
安装基于 Linux 发行版的重要事项(Install important issues based on the Linux distribution. (Process guidance)) 1. ...
- SLAM+语音机器人DIY系列:(一)Linux基础——2.安装Linux发行版ubuntu系统
摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...
- Win10系统XWware虚拟机安装Linux系统(Ubuntu)最新版教程
XWware虚拟机安装Linux系统(Ubuntu)教程 一.下载并安装VMware虚拟机 借助VMware Workstation Pro, 我们可以在同一台Windows或Linux PC上同时运 ...
- Ubuntu无法安装rpm包,ubuntu RPM should not be used directly install RPM packages, use Alien instead!
Ubuntu无法安装rpm包,ubuntu RPM should not be used directly install RPM packages, use Alien instead! 简单来说, ...
随机推荐
- mybatis-plus系统化学习之配置精讲
1.背景 mybatis-plus给出了很多配置, 大部分的配置使用默认的就可以了, 但是还是有很多需要的配置比如: # mybatis-plus相关配置 mybatis-plus: # xml扫描, ...
- vue-表单与v-model
使用 v-model 后,表羊控件显示的值只依赖所绑定的数据,不再关心初始化时的 value 属性,对于 textarea></textarea> 之间插入的值,也不会生效. 使用 ...
- Java开发环境安装笔记
目录 JDK的版本 Java 8 Java 9 Java 11 (LTS) Java 17 (LTS) Java 21 JDK的环境变量设置 JAVAHOME 和 PATH 环境变量 JAVAPATH ...
- Go 链路追踪入门 Opentelemetry
前言 Opentelemetry 分布式链路跟踪( Distributed Tracing )的概念最早是由 Google 提出来的,发展至今技术已经比较成熟,也是有一些协议标准可以参考.目前在 Tr ...
- [SHOI2009] 会场预约 题解
LG2161 显然: 任意时刻每个点最多被一条线段覆盖 暴力删每条线段的复杂度是对的 插入 \([l,r]\) 时需要删除的线段要么被 \([l,r]\) 包含,要么覆盖 \(l\) 或 \(r\) ...
- Java元注解介绍
Java四种元注解相关介绍 概述 注解从Java1.5引入以来,不断地简化我们编写代码的流程,逐渐的也成为了我们必学的一项技术.我们学习了各种注解,学习了他们的用法,学习了他们的限制,是否想过他们的组 ...
- BooleanBuilder 如何根据自定义列名 模糊查询 使用PathBuilder
// 动态传参 // 1. 声明 PathBuilder:MyTable 为类名称,"myTable" 为首字母小写后的类名 PathBuilder<MyTable> ...
- 用描述程序的方式emo,扎心了...
用描述程序的方式emo,扎心了... 众所周知写程序是个枯燥无聊的过程,再加上生活的不顺与坎坷,当程序语言与emo结合起来,看谁还说程序员不懂感情! 首当其冲的就是循环语句了 世界上最寂寞的感觉,是我 ...
- 【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到
[问题分类]功能使用 [关键字]慢日志.绑定参数 [问题描述]应用下发的绑定参数的SQL,慢日志功能抓取不到查询耗时超过阈值的执行SQL [问题原因分析]慢日志的功能没有考虑绑定参数的情况 [解决/规 ...
- airflow 学习
入门 Get started developing workflows with Apache Airflow Getting started with Apache Airflow