win10 WSL2 使用Ubuntu配置与安装教程
- Win10 22H2
- ubuntu 22.04
- ROS2
文章目录
- 一、什么是WSL2
- 二、Win10 系统配置
- 2.1 更新Windows版本
- 2.2 Win10系统启用两个功能
- 2.3 Win10开启BIOS/CPU开启虚拟化(VT)(很关键)
- 2.4 下载并安装wsl_update_x64.msi
- 2.5 PowerShell安装组件
- 三、PowerShell安装Ubuntu
- 3.1 PowerShell运行`wsl --set-default-version 2`,设置默认安装WSL2版本
- 3.2 PowerShell运行`wsl --list --online`查看可用的Linux系统版本
- 3.3 PowerShell运行`wsl --install -d <distro name>`安装指定版本的Linux系统
- 3.4 PowerShell运行`wsl -l -v`查看安装的Linux版本与WSL版本
- 3.5 PowerShell运行`wsl --version`查看安装的WSL是否为最新版本
- 四、安装Ubuntu 图形界面(可选项)
- 五、在Ubuntu中配置systemd
- 六、参考[win10安装wsl2并安装docker](https://blog.csdn.net/sun1613/article/details/124782691)第四节使用VS code在Win10中远程连接Ubuntu-22.04
- 七、配置python+juypter notebook实现win10远程访问
- 八、[安装ROS2](http://docs.ros.org/en/rolling/Installation/Ubuntu-Install-Debians.html#)
一、什么是WSL2
“win10 + Linux 双系统”与“win10安装Linux虚拟机”一度是使一台电脑具备win10与ubuntu两套系统的经典方法。但是,“win10 + Linux 双系统”需要在两种系统间进行切换,不能同时在一台电脑上使用两套系统。“win10安装Linux虚拟机”虽可以避免切换的麻烦,但是性能低、启动慢、管理不便、和宿主机Win10系统互操作不方便,让双系统重度用户情愿选择也并不完美的“win10 + Linux 双系统”。
Win10 中的WSL (Windows Subsystem for Linux)的目的就是让双系统用户既不需要在系统间切换,又能做到流畅使用双系统。 本章的主角WSL2是第二代WSL,具有新的架构,使用了真正的Linux内核,几乎具有Linux的所有完整功能。WLS2可以直接原生运行Docker、VS Code、Remote-WSL等。WSL2架构图如下所示:

我们发现,Windows逐步向虚拟平台靠拢,Windows NT内核和Linux内核作为平级一起运行在虚拟平台之上。
二、Win10 系统配置
2.1 更新Windows版本
微软官方WSL2安装说明给出WSL的先决条件为:Windows 10版本为2004或更高版本(Windows 11也可以用WSL)。查看Win10版本步骤如下:
设置->更新和安全->操作系统内部版本信息
具体查看Win10版本步骤见Win10查看版本号的多种方法。

我Win10系统的版本号为22H2,如果你的版本不是,最好更新到这个最新的版本【设置->更新和安全->检查更新】。
2.2 Win10系统启用两个功能
打开 【控制面板->程序->程序和功能->启用或关闭Windows功能】,出现如下界面,启用“适用于Linux的Windows子系统”与“虚拟机平台”两个功能。注意,千万不要漏掉“虚拟机平台”。

2.3 Win10开启BIOS/CPU开启虚拟化(VT)(很关键)
启用步骤见Win10在BIOS中如何启用虚拟化(VT)
2.4 下载并安装wsl_update_x64.msi
将地址“https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi”复制到浏览器,下载并安装wsl_update_x64.msi。
2.5 PowerShell安装组件
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

三、PowerShell安装Ubuntu
3.1 PowerShell运行wsl --set-default-version 2,设置默认安装WSL2版本

3.2 PowerShell运行wsl --list --online查看可用的Linux系统版本

3.3 PowerShell运行wsl --install -d <distro name>安装指定版本的Linux系统
此处以安装Ubuntu-22.04为例:


安装完会弹出一个框,设置好用户名和密码,一个专属于你的Linux系统就成了。


3.4 PowerShell运行wsl -l -v查看安装的Linux版本与WSL版本
如下图所示,我们安装的是Ubuntu-22.04版本的Linux系统,Version为2表示WSL2,若为1则为WSL。

至此,我们成功在Win10中安装了WSL2版本的Ubuntu 22.04系统。
3.5 PowerShell运行wsl --version查看安装的WSL是否为最新版本
若输出的信息类似下面这种,说明安装的WSL2为最新的版本。版本的不同决定了后面systemd配置是否能成功。

若输出为一大堆其它的信息,则需要想办法将wsl版本升级到最新。可以尝试wsl --update --web-download或wsl --update,甚至是卸载WSL重装。无论用什么方法一定要看到上面的图片。我自己也是各种尝试了,最终也不确定一定能成功升级的方法,反正最终升级成功了。
四、安装Ubuntu 图形界面(可选项)
我开始一直执着于gnome桌面,不过最后都尝试失败了。
博客Windows10访问Ubuntu子系统(WSL)的桌面环境中给出xubuntu(是xfce4的一个扩展
)的安装方法,步骤验证过是可行的。

注意:win10中利用WSL来使用Ubuntu,并不一定需要安装图形界面。不安图形界面一点也不影响正常使用。可以利用Win10中安装VS code,以及Ubuntu中安装Juypyter notebook的方使,在Win10界面中进行开发。
五、在Ubuntu中配置systemd
WSL 不支持 systemd ,但是很多应用又是基于 systemd,所以要解决这个问题。
在3.5小节顺利的前提下,在Ubuntu-22.04下,新建wsl.conf,并输入如图所示的内容,保存退出。
sudo vim /etc/wsl.conf

然后,在win10的powershell下执行wsl --shutdown关闭Ubuntu-22.04,然后重启。在Ubuntu-22.04中输入systemctl,若打印一大堆LOG,说明配置成功。

六、参考win10安装wsl2并安装docker第四节使用VS code在Win10中远程连接Ubuntu-22.04

也可参考win10安装wsl2并安装docker第三节安装docker。这个docker安装方法真的很方便。
七、配置python+juypter notebook实现win10远程访问
- 在Ubuntu-22.04中安装Anaconda(具体可参考Ubuntu安装Anaconda步骤及常用命令):
cd ~/Downloads
wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh
bash Anaconda3-2021.11-Linux-x86_64.sh
- 参考ubuntu安装jupyter 并设置远程访问 或Ubuntu下开启jupyter远程开启juyter远程访问。记住设置的密码与端口号。在Win10的浏览器内输入
localhost:端口号回车,看到有提示输入密码的框输入设置的密码就能在Win10下开发基于python的Linux项目了。
八、安装ROS2
相关文章:
win10 WSL2 使用Ubuntu配置与安装教程
Win10 22H2ubuntu 22.04ROS2 文章目录一、什么是WSL2二、Win10 系统配置2.1 更新Windows版本2.2 Win10系统启用两个功能2.3 Win10开启BIOS/CPU开启虚拟化(VT)(很关键)2.4 下载并安装wsl_update_x64.msi2.5 PowerShell安装组件三、PowerShell安装Ubuntu3.…...
LeetCode每日一题(28. Find the Index of the First Occurrence in a String)
Given two strings needle and haystack, return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. Example 1: Input: haystack “sadbutsad”, needle “sad” Output: 0 Explanation: “sad” occurs at index 0 and…...
Android 圆弧形 SeekBar
效果预览package com.gcssloop.widget;import android.annotation.SuppressLint;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graph…...
java 字典
java 字典 数据结构总览 Map Map 描述的是一种映射关系,一个 key 对应一个 value,可以添加,删除,修改和获取 key/value,util 提供了多种 Map HashMap: hash 表实现的 map,插入删除查找性能都是 O(1)&…...
【企业服务器LNMP环境搭建】mysql安装
MySQL安装步骤: 1、相关说明 1.1、编译参数的说明 -DCMAKE_INSTALL_PREFIX安装到的软件目录-DMYSQL_DATADIR数据文件存储的路径-DSYSCONFDIR配置文件路径 (my.cnf)-DENABLED_LOCAL_INFILE1使用localmysql客户端的配置-DWITH_PARTITION_STORAGE_ENGINE使mysql支持…...
vue自定义指令以及angular自定义指令(以禁止输入空格为例)
哈喽,小伙伴们,大家好啊,最近要实现一个vue自定义指令,就是让input输入框禁止输入空格建立一个directives的指令文件,里面专门用来建立各个指令的官方文档:自定义指令 | Vue.js (vuejs.org)我们都知道vue中…...
异常 复习
异常复习 异常(广义):泛指程序中一切不正常的情况 错误:例如内存不够用,程序是无法解决的 异常(狭义):程序在运行中出现问题,但是可以通过异常处理机制处理,程序可以继续向后执行 异常体系 Throwable类有两个直接子类:Excepti…...
K8s:开源安全平台 kubescape 实现 Pod 的安全合规检查/镜像漏洞扫描
写在前面 生产环境中的 k8s 集群安全不可忽略,即使是内网环境容器化的应用部署虽然本质上没有变化,始终是机器上的一个进程但是提高了安全问题的处理的复杂性分享一个开源的 k8s 集群安全合规检查/漏洞扫描 工具 kubescape博文内容涉及: kube…...
C#中,FTP同步或异步读取大量文件
一次快速读取上万个文件中的内容 在C#中,可以使用FTP客户端类(如FtpWebRequest)来连接FTP服务器并进行文件操作。一次快速读取上万个文件中的内容,可以采用多线程的方式并发读取文件。 以下是一个示例代码,用于读取FT…...
STM32单片机的FLASH和RAM
STM32内置有Flash和RAM(而RAM分为SRAM和DRAM,STM32内为SRAM),硬件上他们是不同的设备存储器、属于两个器件,但这两个存储器的寄存器输入输出端口被组织在同一个虚拟线性地址空间内。 MDK预处理、编译、汇编、链接后编…...
Java 二叉树的遍历
二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。前序遍历(根 左 右)先访问根结点,然后前序遍历左子树…...
实习日记-C#
数据类型 字符串常量 string a "hello, world"; // hello, world string b "hello, world"; // hello, world string c "hello \t world"; // hello world string d "hello \t wor…...
Tech Lead如何引导团队成员解决问题?
作为一个开发团队的Tech Lead,当团队成员向你寻求帮助时,你有没有说过下面这些话? 你别管了,我来解决这个问题你只要。。。就行了你先做其他的吧,我研究一下,然后告诉你怎么做 当我们说这些话时ÿ…...
07--组件
一、小程序组件分类微信团队为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。小程序中的组件也是非常丰富的,开发者可以基于组件快速搭建出漂亮的页面结构。小程序中的组件其实相当于网页中的HTML标签,只不过标签…...
怎么做好一个完整的项目复盘
复盘,是运营必不可少的能力,小到一次买菜的经历,大到百亿千亿的投资项目,都可以通过复盘来总结规律、提升水平。简单说来,复盘可以达到的效果有两条:优化弱项,强化强项明确自己的价值࿰…...
浅谈一下mysql8.0与5.7的字符集
修改字符集 修改步骤 在MySQL8.0版本之前,默认字符集为1atin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为ut8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL8.0开始,数据库的默认编码将改…...
paddle推理部署(cpu)
我没按照官方文档去做,吐槽一下,官方文档有点混乱。。一、概述总结起来,就是用c示例代码,用一个模型做推理。二、示例代码下载https://www.paddlepaddle.org.cn/paddle/paddleinferencehttps://github.com/PaddlePaddle/Paddle-In…...
想开发IM集群?先搞懂什么是RPC!
即时通讯网官方技术群和社区里,经常有开发者在纠结怎么开发IM集群,虽然真正的使用人数,可能用个人电脑单机都能支撑。你也许会说,明明不需要用到IM集群,干吗要自找麻烦?答曰:“老板说这个得有&a…...
案例13-前端对localStorage的使用分析
一:背景介绍 前端在调用后端接口获取某一个人的评论次数、获赞次数、回复次数。调用之后判断后端返回过来的值。如果返回回来的值是0的话,从缓存中获取对应的值,如果从缓存中获取的评论次数为空那么其他两个的次数也为0。 二:思路…...
CNNIC第51次中国互联网络发展状况统计报告用户规模变化发布、解读与白杨SEO看法
一、第51次《中国互联网络发展状况统计报告》发布 3月2日,中国互联网络信息中心(简称CNNIC)在京发布第51次《中国互联网络发展状况统计报告》。《报告》显示,截至2022年12月,我国网民规模达10.67亿,较2021…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
41道Django高频题整理(附答案背诵版)
解释一下 Django 和 Tornado 的关系? Django和Tornado都是Python的web框架,但它们的设计哲学和应用场景有所不同。 Django是一个高级的Python Web框架,鼓励快速开发和干净、实用的设计。它遵循MVC设计,并强调代码复用。Django有…...
