【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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2804492.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

云HIS系统源码,基于云计算技术的B/S架构的云HIS系统,二甲医院信息管理系统

云HIS系统源码&#xff0c;采用云端SaaS服务的方式提供 基于云计算技术的B/S架构的云HIS系统&#xff0c;采用云端SaaS服务的方式提供&#xff0c;使用用户通过浏览器即能访问&#xff0c;无需关注系统的部署、维护、升级等问题&#xff0c;系统充分考虑了模板化、配置化、智能…

vscode + wsl2 + xmake快速构建c语言编译调试环境

前言 使用这一套是我觉得最方便的&#xff0c;wsl2使得我可以不用脱离windows&#xff0c;且无需安装庞大且臃肿虚拟机。vscode让我可以更加方便快捷的编辑代码&#xff0c;而xmake是一站式的工程构建工具且作者就是中国人文档啥的群啥的都是中文&#xff0c;比起cmake makefi…

python统计分析——线性模型的预测和评估

参考资料&#xff1a;用python动手学统计学 1、导入库 # 导入库 # 导入数据处理的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 导入绘图的库 from matplotlib import pyplot as plt import seaborn as sns sns.set() # 导入估计…

BERT学习笔记

论文&#xff1a;《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》&#xff0c;2019 代码&#xff1a;[tensorflow]&#xff0c;[pytorch] 来源&#xff1a;李沐精度BERT 0、摘要 与之前模型的区别&#xff1a; GPT考虑的是一个单向…

OLTP、OLAP与HTAP、HSAP详解

HTAP、HSAP是OLAP与OLTP综合需求驱动下的新的数据库系统&#xff0c;既满足事务处理&#xff0c;又满足大规模分析查询&#xff0c;并且是基于一套系统下实现。 本节首先我们要了解服务于分析的区别。相当多从应用角度对数据处理分类的划分&#xff0c;大致可以分为Transactio…

计算机网络-网络互联与互联网(一)

1.常用网络互联设备&#xff1a; 1层物理层&#xff1a;中继器、集线器2层链路层&#xff1a;网桥、交换机3层网络层&#xff1a;路由器、三层交换机4层以上高层&#xff1a;网关 2.网络互联设备&#xff1a; 中继器Repeater、集线器Hub&#xff08;又叫多端口中继器&#xf…

PyTorch概述(二)---MNIST

NIST Special Database3 具体指的是一个更大的特殊数据库3&#xff1b;该数据库的内容为手写数字黑白图片&#xff1b;该数据库由美国人口普查局的雇员手写 NIST Special Database1 特殊数据库1&#xff1b;该数据库的内容为手写数字黑白图片&#xff1b;该数据库的图片由高…

Django学习记录04——靓号管理整合

1.靓号表 1.1 表结构 1.2 靓号表的构造 class PrettyNum(models.Model): 靓号表 mobile models.CharField(verbose_name"手机号", max_length11)# default 默认值# null true&#xff0c;blank true 允许为空price models.IntegerField(verbose_name"价…

学校档案室管理制度内容

学校档案室管理制度是指对学校档案室进行管理的规定和流程。以下是一个示例的学校档案室管理制度的内容&#xff1a; 1.档案室的管理部门和责任人员&#xff1a; 学校档案室由学校行政部门负责管理&#xff0c;行政部门指定专门的档案管理员负责档案室的日常管理工作。 2.档案室…

ElasticSearch之单值多字段查询以及dis max query

写在前面 在查询中经常有这样的查询场景&#xff0c;我们只有一个输入框&#xff0c;但是输入的值需要同时对多个字段进行查询&#xff0c;这就是单值多字段的查询&#xff0c;像下图&#xff1a; 1&#xff1a;例子 首先来准备测试数据&#xff1a; DELETE blogs PUT /bl…

记录 | docker内执行apt update报错GPG error

1. 执行 sudo apt-get update 命令时遇到这个错误&#xff0c;是服务器没有这个公钥的意思 rootadmin:~# sudo apt-get update Get:1 https://download.docker.com/linux/ubuntu focal InRelease [36.2 kB] Err:1 https://download.docker.com/linux/ubuntu focal InRelease T…

基于Python网络爬虫的IT招聘就业岗位可视化分析推荐系统

文章目录 基于Python网络爬虫的IT招聘就业岗位可视化分析推荐系统项目概述招聘岗位数据爬虫分析系统展示用户注册登录系统首页IT招聘数据开发岗-javaIT招聘数据开发岗-PythonIT招聘数据开发岗-Android算法方面运维方面测试方面招聘岗位薪资多维度精准预测招聘岗位分析推荐 结语…

Linux之ACL访问控制列表

一、ACL权限的介绍 1.1 什么是ACL 访问控制列表&#xff08;ACL&#xff09;是一种网络安全技术&#xff0c;它通过在网络设备&#xff08;如路由器、交换机和防火墙&#xff09;上定义一系列规则&#xff0c;对进出接口的数据包进行控制。这些规则可以包含“允许”&…

【Java EE初阶二十四】servlet的深入理解

1. Servlet API 的学习 下面主要学习这三个类&#xff0c;就已经可以完成 Servlet 的大部分开发了&#xff1b; 1. Httpservlet 2. HttpServletRequest 3. HttpServletResponse 2. Httpservlet的学习 2.1 Httpservlet在tomcat的工作原理 写一个 Servlet 代码&#xff0c;往往都…

跟随realworldCTF,做一个http网络协议黑客

前言 本报告旨在对RealWorldCTF 2024体验赛中的Pwn方向题目——"Be-an-HTPPd-Hacker"进行深入解析和讲解。该题目涉及一个十一年前的项目&#xff0c;其基于C语言实现了HTTP协议。我们将通过对该协议进行栈溢出攻击&#xff0c;探索真实世界中的攻击手法&#xff0c;…

PostgreSQL索引篇 | BTree

B-Tree索引 &#xff08;本文为《PostgreSQL数据库内核分析》一书的总结笔记&#xff0c;需要电子版的可私信我&#xff09; B树特点&#xff1a; 非叶子节点含一个或多个关键字值和子节点指针&#xff0c;不指向实际数据的存储位置所有关键字都是叶子节点&#xff0c;每个叶…

React18源码: schedule任务调度messageChannel

React调度原理(scheduler) 在React运行时中&#xff0c;调度中心&#xff08;位于scheduler包&#xff09;是整个React运行时的中枢&#xff08;其实是心脏&#xff09;&#xff0c;所以理解了scheduler调度&#xff0c;就基本掌握了React的核心React两大循环&#xff1a;从宏…

git修改及合并commit提交

在开发过程中&#xff0c;保持代码记录清晰会更方便追踪&#xff0c;对代码审核人员也更有便宜。 修改commit提交 比如我们刚提交了一个commit&#xff0c;但之后要追加代码到已经推送到远程仓库的提交中&#xff0c;这时我们可以选择修改commit提交&#xff0c;使新的更改也推…

详解编译和链接!

目录 1. 翻译环境和运行环境 2. 翻译环境 2.1 预处理 2.2 编译 2.3 汇编 2.4 链接 3. 运行环境 4.完结散花 悟已往之不谏&#xff0c;知来者犹可追 创作不易&#xff0c;宝子们&#xff01;如果这篇文章对你们…

Sora - 探索AI视频模型的无限可能

随着人工智能技术的飞速发展&#xff0c;AI视频模型已成为科技领域的新热点。而在这个浪潮中&#xff0c;OpenAI推出的首个AI视频模型Sora&#xff0c;以其卓越的性能和前瞻性的技术&#xff0c;引领着AI视频领域的创新发展。让我们将一起探讨Sora的技术特点、应用场景以及对未…