当前位置: 首页 > news >正文

【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 才能使用以下命令。

  1. 安装WSL

现在,可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入wsl --install命令,然后重启计算机。
image.png
image.png

使用默认的命令安装WSL时,会按默认的发行版本进行安装。
如果需要安装其他版本的Linux系统,可执行wsl --install -d <DistroName>DistroName为发行版本的名称。

如果需要查看所有支持的发行版本,可以执行wsl --list --online
image.png
若需要安装其他的版本,也可执行wsl --install -d <DistroName>进行安装。
当安装了多个版本的Linux后,可通过wsl -l -v命令来查看当前已有的Linux系统,
image.png
启动时,可通过执行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"

image.png
可获得磁盘路径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格式的镜像文件,官方提供了两种方式获取:

  1. 下载提供的 tar 文件。 可在 Alpine Linux 下载站点的“微型根文件系统”部分找到 Alpine 的示例。
  2. 查找 Linux 发行版容器,将实例导出为 tar 文件。 以下示例将使用 CentOS 容器演示此过程。

获取Centos的tar文件

首先需要具备两个条件:

  1. 必须在安装了运行 WSL 2 的 Linux 发行版的情况下启用 WSL。
  2. 必须安装了适用于 Windows 的 Docker Desktop,启用了 WSL 2 引擎并选中了集成,请参阅 Docker Desktop 许可协议,了解使用条款的更新。

打开发行版的命令行,按以下步骤操作:

  1. 在Docker中运行Centos容器
docker run -t centos bash ls /
  1. 使用 grep 和 awk 获取 CentOS 容器 ID:
dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
  1. 将容器 ID 导出到装载的 C 盘上的 tar 文件:
docker export $dockerContainerID > /mnt/c/temp/centos.tar

image.png
这样我们就得到了一个Centos.tar的镜像文件。

导出的目录要提前创建好,否则会找不到路径。

  1. 创建一个目录用于存放导入的系统资源,
cd C:\temp
mkdir E:\wslDistroStorage\CentOS
  1. 通过--import命令,导入镜像文件
wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar

Distribution Name:发行版名称
InstallLocation:安装位置
FileName:镜像文件名称
该命令还有两个可选项
--version:指定用于新分发的版本
--vhd:指定所提供的文件为.vhdx文件,而不是.tar文件

  1. 执行wsl -l -v查看可用的版本

image.png

从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 的一项功能&#xff0c;可用于在 Windows 计算机上运行 Linux 环境&#xff0c;而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。安装 Linux 发行版时&#xff0c…...

【Node.js】自动生成 API 文档

目录 1、直接使用swagger-ui-express 2、配合swagger-jsdoc 如何在Node.js项目中使用 Swagger 来自动生成 API接口文档&#xff0c;使用生成方式有很多种。本文基于swagger-jsdocswagger-ui-express快速实现 1、直接使用swagger-ui-express // 方便来浏览和测试api npm i sw…...

小红书3C家电行业种草营销策略打法,纯干货

小红书作为国内种草营销的鼻祖&#xff0c;拥有庞大的年轻用户群体&#xff0c;特别是在3C家电行业&#xff0c;小红书的种草营销效应更是明显。据相关数据显示&#xff0c;小红书3C家电行业的用户关注度持续攀升&#xff0c;尤其是90后和00后&#xff0c;他们对新鲜事物的接受…...

防火墙的内容安全

目录 1. 内容安全 1.1 IAE引擎 DPI---深度包检测技术 DFI---深度流检测技术 结论(优缺点)&#xff1a; 1.2 入侵防御&#xff08;检测&#xff09;(IPS) IPS的优势: 入侵检测的方法: 入侵检测的流程 签名 查看预定义签名的内容 新建自定义签名 入侵防御的检测…...

Redis 管道详解

Redis 管道 关键词&#xff1a;Pipeline Pipeline 简介 Redis 是一种基于 C/S 模型以及请求/响应协议的 TCP 服务。通常情况下&#xff0c;一个 Redis 命令的请求、响应遵循以下步骤&#xff1a; 客户端向服务端发送一个查询请求&#xff0c;并监听 Socket 返回&#xff08…...

【Redis】理论进阶篇------浅谈Redis的缓存穿透和雪崩原理

一、缓存穿透 1、概念 缓存穿透&#xff08;查不到数据&#xff09;&#xff0c;是指当用户想要查询数据的时候&#xff0c;会先去Redis中取命中&#xff0c;如果Redis中没有该数据&#xff0c;那么就会向数据库中去查找数据。如果数据库中也没有&#xff0c;则该次查询结果失…...

Rocky Linux安装部署Elasticsearch(ELK日志服务器)

一、Elasticsearch的简介 Elasticsearch是一个强大的开源搜索和分析引擎&#xff0c;可用于实时处理和查询大量数据。它具有高性能、可扩展性和分布式特性&#xff0c;支持全文搜索、聚合分析、地理空间搜索等功能&#xff0c;是构建实时应用和大规模数据分析平台的首选工具。 …...

Linux浅学笔记04

目录 Linux实用操作 Linux系统下载软件 yum命令 apt systemctl命令 ln命令 日期和时区 IP地址 主机名 网络传输-下载和网络请求 ping命令 wget命令 curl命令 网络传输-端口 进程 ps 命令 关闭进程命令&#xff1a; 主机状态监控命令 磁盘信息监控&#xff1a…...

【Day59】代码随想录之动态规划_647回文子串_516最长回文子序列

文章目录 动态规划理论基础动规五部曲&#xff1a;出现结果不正确&#xff1a; 1. 647回文子串2. 516最长回文子序列 动态规划理论基础 动规五部曲&#xff1a; 确定dp数组 下标及dp[i] 的含义。递推公式&#xff1a;比如斐波那契数列 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“ 电子墨水屏&#xff08;e-paper&#xff09;驱动显示示例 &#x1f4cd;相关篇《Arduino框架下ESP32/ESP8266合宙1.54“ 电子墨水屏&#xff08;e-paper&#xff09;驱动显示示例》&#x1f516;程序是从GooDisplay品牌和微雪电子下同型号规格墨水屏的示例程序…...

使用Postman和JMeter进行signature签名

一、前言 ​ 有些接口的请求会带上sign&#xff08;签名&#xff09;进行请求&#xff0c;各接口对sign的签名内容、方式可能不一样&#xff0c;但一般都是从接口的入参中选择部分内容组成一个字符串&#xff0c;然后再进行签名操作, 将结果赋值给sign; 完整规范的接口文档都会…...

uni-app nvue vue3 setup中实现加载webview,解决nvue中获取不到webview实例的问题

注意下面的方法只能在app端使用&#xff0c; 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(集成产品开发)—核心思想

企业发展到一定阶段就会遇到管理瓶颈&#xff0c;IPD流程是一种高度结构化的产品开发流程&#xff0c;它集成了业界很多优秀的产品开发方法论&#xff0c;像搭积木一样的组合成一种非常有效的流程。如果我们能根据企业的规模和行业特点&#xff0c;对全流程的IPD进行合适的裁剪…...

uniapp android 原生插件开发-测试流程

前言 最近公司要求研究一下 uniapp 的 android 原生插件的开发&#xff0c;为以后的工作做准备。这篇文章记录一下自己的学习过程&#xff0c;也帮助一下有同样需求的同学们 : ) 一、下载安装Hbuilder X , Android studio&#xff08;相关的安装配置过程网上有很多&#xff0c;…...

MyCAT从入门到实战(配置文件介绍)

用户&#xff08;user&#xff09; 配置文件位置mycat/conf/user/root.user.json。这个配置文件主要是用来配置MyCAT的登录用户 的&#xff0c;也就是我们连接8066这个端口的用户信息。 [rootservice bin]# cat /usr/local/mycat/conf/users/root.user.json {"dialect&q…...

【LeetCode-300】最长递增子序列(动归)

目录 题目描述 解法1&#xff1a;动态规划 代码实现 题目链接 题目描述 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例…...

Mysterious-GIF-攻防世界-MISC

题目简介&#xff1a; 下载得到gif文件&#xff0c;十六进制编辑器查看&#xff0c;发现末尾有50 4B 03 04文件头。提取后保存为zip文件。 解压该zip文件&#xff0c;得到temp.zip。十六进制编辑器查看temp.zip&#xff0c;会发现有多个文件头和文件尾。 用binwalk分离temp.zi…...

【数据结构和算法初阶(C语言)】链表-单链表(手撕详讲单链表增删查改)

目录 1.前言&#xff1a;顺序表回顾&#xff1a; 1.1顺序表的优缺点 2.主角----链表 2.1链表的概念 2.2定义一个单链表的具体实现代码方式 3.单链表对数据的管理----增删查改 3.1单链表的创建 3.2单链表的遍历实现 3.2.1利用遍历实现一个打印我们链表内容的函数的函数…...

【Go语言】Go语言中的切片

Go语言中的切片 1.切片的定义 Go语言中&#xff0c;切片是一个新的数据类型数据类型&#xff0c;与数组最大的区别在于&#xff0c;切片的类型中只有数据元素的类型&#xff0c;而没有长度&#xff1a; var slice []string []string{"a", "b", "c…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...