【Ubuntu】使用WSL安装Ubuntu
WSL
适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。
安装 Linux 发行版时,WSL 2 是默认发行版类型。 WSL 2 使用虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核。 Linux 发行版作为独立的容器在 WSL 2 托管 VM 内运行。 通过 WSL 2 运行的 Linux 发行版将共享同一网络命名空间、设备树(而非 /dev/pts)、CPU/内核/内存/交换空间、/init 二进制文件,但有自己的 PID 命名空间、装载命名空间、用户命名空间、Cgroup 命名空间和 init 进程。
安装
必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。
- 安装WSL
现在,可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入wsl --install命令,然后重启计算机。

使用默认的命令安装WSL时,会按默认的发行版本进行安装。
如果需要安装其他版本的Linux系统,可执行wsl --install -d <DistroName>,DistroName为发行版本的名称。
如果需要查看所有支持的发行版本,可以执行wsl --list --online
若需要安装其他的版本,也可执行wsl --install -d <DistroName>进行安装。
当安装了多个版本的Linux后,可通过wsl -l -v命令来查看当前已有的Linux系统,
启动时,可通过执行wsl -d <DistroName>命令或开始菜单中对应的图标直接启动。
若执行
wsl则会启动默认的版本。
通过图标启动的版本会随着对话框的关闭而自动停止,所以若想虚拟机一直运行,可以通过命令行启动
需要停止虚拟机时,可以使用wsl --shutdown停止所有正在运行的服务,或使用wsl --terminate <DistroName>结束特定的版本。
需要删除虚拟机时,可以使用wsl --unregister <Distro>删除指定的服务
更新和升级
建议使用发行版的首选包管理器定期更新和升级包。 对于 Ubuntu 或 Debian,请使用以下命令:
sudo apt update
sudo apt upgrade
Windows 不会自动更新或升级 Linux 分发版。 大多数 Linux 用户往往倾向于自行控制此任务。
磁盘挂载
标识磁盘
执行以下命令
GET-CimInstance -query "SELECT * from Win32_DiskDrive"

可获得磁盘路径DeviceID。
执行以下命令挂载磁盘,
wsl --mount <DiskPath> --bare
--bare:将磁盘附加到WSL2,但不装载它。
DiskPath为第一步查询到的DeviceID
附加后,可以通过在 WSL 2 中运行以下命令来列出分区:
lsblk
标识文件系统类型
如果不知道磁盘或分区的文件系统类型,可以使用以下命令:
blkid <BlockDevice>
挂载分区
执行以下命令,挂载分区
wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
如果希望将整个磁盘装载为单个卷(即如果磁盘未分区),则可以省略 --partition。
如果省略,则默认文件系统类型为“ext4”。
访问磁盘内容
装载后,可以通过配置值指向路径的磁盘,automount.root,默认值为/mnt/wsl。
卸载磁盘
执行以下命令卸载磁盘,
wsl --unmount <DiskPath>
系统的创建会自动将所有磁盘进行挂载,并存放在
/mnt文件夹下。
导入、导出版本
导入
通过使用 tar 文件导入任何 Linux 发行版,可在适用于 Linux 的 Windows 子系统 (WSL) 中使用该发行版(即使它不在 Microsoft Store 中提供)。
首先需要一个tar格式的镜像文件,官方提供了两种方式获取:
- 下载提供的 tar 文件。 可在 Alpine Linux 下载站点的“微型根文件系统”部分找到 Alpine 的示例。
- 查找 Linux 发行版容器,将实例导出为 tar 文件。 以下示例将使用 CentOS 容器演示此过程。
获取Centos的tar文件
首先需要具备两个条件:
- 必须在安装了运行 WSL 2 的 Linux 发行版的情况下启用 WSL。
- 必须安装了适用于 Windows 的 Docker Desktop,启用了 WSL 2 引擎并选中了集成,请参阅 Docker Desktop 许可协议,了解使用条款的更新。
打开发行版的命令行,按以下步骤操作:
- 在Docker中运行Centos容器
docker run -t centos bash ls /
- 使用 grep 和 awk 获取 CentOS 容器 ID:
dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
- 将容器 ID 导出到装载的 C 盘上的 tar 文件:
docker export $dockerContainerID > /mnt/c/temp/centos.tar

这样我们就得到了一个Centos.tar的镜像文件。
导出的目录要提前创建好,否则会找不到路径。
- 创建一个目录用于存放导入的系统资源,
cd C:\temp
mkdir E:\wslDistroStorage\CentOS
- 通过
--import命令,导入镜像文件
wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
Distribution Name:发行版名称InstallLocation:安装位置FileName:镜像文件名称
该命令还有两个可选项--version:指定用于新分发的版本--vhd:指定所提供的文件为.vhdx文件,而不是.tar文件
- 执行
wsl -l -v查看可用的版本

从Github上获得
除了通过以上方式获得tar格式的镜像包,还可以直接从Github上获得已做好的包
- https://github.com/wsldl-pg/CentWSL/releases
下载完成对应版本后,解压,执行centos.exe文件即可导入该版本。
导出
执行以下命令导出版本为tar镜像
wsl --export <Distribution Name> <FileName>
使用开源 WSL 示例生成适用于 Microsoft Store 的 WSL 发行版包和/或创建用于旁加载的自定义 Linux 发行版包。 可在 GitHub 上查找发行版启动器存储库。
此项目可实现以下目的:
- 使 Linux 发行版维护人员能够打包并提交一个在 WSL 上运行的作为 appx 的 Linux 发行版
- 使开发人员能够创建可在其开发计算机上旁加载的自定义 Linux 发行版
参考:https://learn.microsoft.com/zh-cn/windows/wsl/
相关文章:
【Ubuntu】使用WSL安装Ubuntu
WSL 适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。安装 Linux 发行版时,…...
【Node.js】自动生成 API 文档
目录 1、直接使用swagger-ui-express 2、配合swagger-jsdoc 如何在Node.js项目中使用 Swagger 来自动生成 API接口文档,使用生成方式有很多种。本文基于swagger-jsdocswagger-ui-express快速实现 1、直接使用swagger-ui-express // 方便来浏览和测试api npm i sw…...
小红书3C家电行业种草营销策略打法,纯干货
小红书作为国内种草营销的鼻祖,拥有庞大的年轻用户群体,特别是在3C家电行业,小红书的种草营销效应更是明显。据相关数据显示,小红书3C家电行业的用户关注度持续攀升,尤其是90后和00后,他们对新鲜事物的接受…...
防火墙的内容安全
目录 1. 内容安全 1.1 IAE引擎 DPI---深度包检测技术 DFI---深度流检测技术 结论(优缺点): 1.2 入侵防御(检测)(IPS) IPS的优势: 入侵检测的方法: 入侵检测的流程 签名 查看预定义签名的内容 新建自定义签名 入侵防御的检测…...
Redis 管道详解
Redis 管道 关键词:Pipeline Pipeline 简介 Redis 是一种基于 C/S 模型以及请求/响应协议的 TCP 服务。通常情况下,一个 Redis 命令的请求、响应遵循以下步骤: 客户端向服务端发送一个查询请求,并监听 Socket 返回(…...
【Redis】理论进阶篇------浅谈Redis的缓存穿透和雪崩原理
一、缓存穿透 1、概念 缓存穿透(查不到数据),是指当用户想要查询数据的时候,会先去Redis中取命中,如果Redis中没有该数据,那么就会向数据库中去查找数据。如果数据库中也没有,则该次查询结果失…...
Rocky Linux安装部署Elasticsearch(ELK日志服务器)
一、Elasticsearch的简介 Elasticsearch是一个强大的开源搜索和分析引擎,可用于实时处理和查询大量数据。它具有高性能、可扩展性和分布式特性,支持全文搜索、聚合分析、地理空间搜索等功能,是构建实时应用和大规模数据分析平台的首选工具。 …...
Linux浅学笔记04
目录 Linux实用操作 Linux系统下载软件 yum命令 apt systemctl命令 ln命令 日期和时区 IP地址 主机名 网络传输-下载和网络请求 ping命令 wget命令 curl命令 网络传输-端口 进程 ps 命令 关闭进程命令: 主机状态监控命令 磁盘信息监控:…...
【Day59】代码随想录之动态规划_647回文子串_516最长回文子序列
文章目录 动态规划理论基础动规五部曲:出现结果不正确: 1. 647回文子串2. 516最长回文子序列 动态规划理论基础 动规五部曲: 确定dp数组 下标及dp[i] 的含义。递推公式:比如斐波那契数列 dp[i] dp[i-1] dp[i-2]。初始化dp数组…...
ECLIP
denote the representation of the positive prompt produced by the momentum model as h ξ i h_{\xi}^{i} hξi 辅助信息 作者未提供代码...
STM32 +合宙1.54“ 电子墨水屏(e-paper)驱动显示示例
STM32 合宙1.54“ 电子墨水屏(e-paper)驱动显示示例 📍相关篇《Arduino框架下ESP32/ESP8266合宙1.54“ 电子墨水屏(e-paper)驱动显示示例》🔖程序是从GooDisplay品牌和微雪电子下同型号规格墨水屏的示例程序…...
使用Postman和JMeter进行signature签名
一、前言 有些接口的请求会带上sign(签名)进行请求,各接口对sign的签名内容、方式可能不一样,但一般都是从接口的入参中选择部分内容组成一个字符串,然后再进行签名操作, 将结果赋值给sign; 完整规范的接口文档都会…...
uni-app nvue vue3 setup中实现加载webview,解决nvue中获取不到webview实例的问题
注意下面的方法只能在app端使用, let wv plus.webview.create("","custom-webview",{plusrequire:"none", uni-app: none, width: 300,height:400,top:uni.getSystemInfoSync().statusBarHeight44 }) wv.loadURL("https://ww…...
IPD(集成产品开发)—核心思想
企业发展到一定阶段就会遇到管理瓶颈,IPD流程是一种高度结构化的产品开发流程,它集成了业界很多优秀的产品开发方法论,像搭积木一样的组合成一种非常有效的流程。如果我们能根据企业的规模和行业特点,对全流程的IPD进行合适的裁剪…...
uniapp android 原生插件开发-测试流程
前言 最近公司要求研究一下 uniapp 的 android 原生插件的开发,为以后的工作做准备。这篇文章记录一下自己的学习过程,也帮助一下有同样需求的同学们 : ) 一、下载安装Hbuilder X , Android studio(相关的安装配置过程网上有很多,…...
MyCAT从入门到实战(配置文件介绍)
用户(user) 配置文件位置mycat/conf/user/root.user.json。这个配置文件主要是用来配置MyCAT的登录用户 的,也就是我们连接8066这个端口的用户信息。 [rootservice bin]# cat /usr/local/mycat/conf/users/root.user.json {"dialect&q…...
【LeetCode-300】最长递增子序列(动归)
目录 题目描述 解法1:动态规划 代码实现 题目链接 题目描述 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例…...
Mysterious-GIF-攻防世界-MISC
题目简介: 下载得到gif文件,十六进制编辑器查看,发现末尾有50 4B 03 04文件头。提取后保存为zip文件。 解压该zip文件,得到temp.zip。十六进制编辑器查看temp.zip,会发现有多个文件头和文件尾。 用binwalk分离temp.zi…...
【数据结构和算法初阶(C语言)】链表-单链表(手撕详讲单链表增删查改)
目录 1.前言:顺序表回顾: 1.1顺序表的优缺点 2.主角----链表 2.1链表的概念 2.2定义一个单链表的具体实现代码方式 3.单链表对数据的管理----增删查改 3.1单链表的创建 3.2单链表的遍历实现 3.2.1利用遍历实现一个打印我们链表内容的函数的函数…...
【Go语言】Go语言中的切片
Go语言中的切片 1.切片的定义 Go语言中,切片是一个新的数据类型数据类型,与数组最大的区别在于,切片的类型中只有数据元素的类型,而没有长度: var slice []string []string{"a", "b", "c…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
