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

如何在WSL上导入任何Linux发行版

文章目录

    • 一、准备
      • 1. 开启`WSL`相关功能
      • 2. 升级`WSL`
      • 3. 设置默认的wsl版本
    • 二、通过 Microsoft Store 安装 Linux
      • 1. 查看 Microsoft Store 有哪些可安装的 Linux 发行版
      • 2. 安装 Linux 发行版
      • 3. 查看已安装的 Linux 发行版
      • 4. 启动Linux发行版
    • 三、通过Linux发行商提供的tar文件安装
      • 1. 导入 Alpine 发行版 Linux
      • 2. 启动 Alpine Linux
    • 四、通过Docker中导出容器的tar文件安装
      • 1. 在Docker中拉取CentOS镜像
      • 2. 创建CentOS容器
      • 3. 导出CentOS容器为tar文件
      • 4. 将tar文件导入到WSL
      • 5. 启动新导入的 CentOS

本文将总结如何在WSL上安装Linux发行版。

总结三种方式:
1)从Microsoft Store安装;
2)从Linux发行商提供的tar文件安装;
3)从Docker中导出容器的tar文件安装;

一、准备

1. 开启WSL相关功能

启用或关闭 Windows 功能中,勾选适用于 Linux 的 Windows 子系统虚拟机平台,确认保存后重启系统。
开启WSL

2. 升级WSL

在命令行窗口,执行如下命令,升级wsl

wsl --update

3. 设置默认的wsl版本

在命令行窗口,执行如下命令,设置wsl2为默认的版本

wsl --set-default-version 2

二、通过 Microsoft Store 安装 Linux

1. 查看 Microsoft Store 有哪些可安装的 Linux 发行版

使用wsl -l -o查看Microsoft Store有哪些可安装的 Linux 发行版

D:\WSL2>wsl -l -o
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed

2. 安装 Linux 发行版

这里以Debian为例

D:\WSL2>wsl --install Debian
正在安装: Debian GNU/Linux
已安装 Debian GNU/Linux。
正在启动 Debian GNU/Linux...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: chen
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
chen@GC:~$

安装过程中,会要求创建用户、设置密码,安装成功后便以该用户进入bash交互模式

3. 查看已安装的 Linux 发行版

使用wsl -l -v命令,可以查看当前已安装的Linux发行版

D:\WSL2>wsl -l -vNAME                   STATE           VERSION
* Ubuntu-22.04           Running         2docker-desktop         Running         2docker-desktop-data    Running         2Debian                 Stopped         2

Ubuntu-22.04docker-desktopdocker-desktop-data 这三个是我本地安装Docker Desktop时自动安装的。

4. 启动Linux发行版

首次安装后会自动进入bash交互模式,若后续想再次进入,可执行wsl -d <Distro>命令

D:\WSL2>wsl -d Debian
chen@GC:/mnt/d/WSL2$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

三、通过Linux发行商提供的tar文件安装

部分Linux发行商会提供 包含发行版的所有 Linux 二进制文件 的tar包。比如:Alpine Linux

Alpine各版本下载:https://dl-cdn.alpinelinux.org/alpine/

下载适合你的版本,注意要tar.gz包,不是iso包。
我这里为了演示,下载的是minirootfs(只有3M,你能想象一个系统只有3M真的是牛啊):
alpine-minirootfs-3.18.3-x86_64.tar.gz

1. 导入 Alpine 发行版 Linux

使用wsl --import命令,将指定的 tar 导入为新分发。
完整格式:wsl --import <Distro> <InstallLocation> <FileName> [Options]

D:\WSL2>cd AlpineD:\WSL2\Alpine>dir /B
alpine-minirootfs-3.18.3-x86_64.tar.gzD:\WSL2\Alpine>wsl --import Alpine3.18 . .\alpine-minirootfs-3.18.3-x86_64.tar.gz
正在导入,这可能需要几分钟时间。
操作成功完成。D:\WSL2\Alpine>

2. 启动 Alpine Linux

D:\WSL2\Alpine>wsl -d Alpine3.18
GC:/mnt/d/WSL2/Alpine# cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.18.3
PRETTY_NAME="Alpine Linux v3.18"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
GC:/mnt/d/WSL2/Alpine# cat /etc/alpine-release
3.18.3
GC:/mnt/d/WSL2/Alpine#

四、通过Docker中导出容器的tar文件安装

这里假定你已经按照了Docker DesktopDocker Engine
Windows Docker Desktop 安装
在CentOS中安装Docker Engine

更多安装方式可参考docker官网:
https://docs.docker.com/desktop/
https://docs.docker.com/engine/install/

接下来以安装 CentOS为例
(实际上docker上能找到几乎所有的Linxu/Unix等发行版)

1. 在Docker中拉取CentOS镜像

docker pull quay.io/centos/centos:centos7.9.2009

相信大多数人都无法访问 https://hub.docker.com/
如何知道CentOS有哪些版本(tag)可下载呢?
请参考:
Docker 中下载各版本的 CentOS、CentOS Steam 方式

也可以用官方的centos仓库下载

docker pull centos:centos7.9.2009

但官方的仓库里没有 stream 的版本,quay.io/centos/centos 仓库提供了所有版本(CentOS、CentOS Stream 各个版本)

2. 创建CentOS容器

D:\WSL2>docker images
REPOSITORY               TAG              IMAGE ID       CREATED         SIZE
quay.io/centos/centos    stream9          e3d50dda340a   38 hours ago    154MB
alpine                   latest           7e01a0d0a1dc   3 weeks ago     7.34MB
centos                   centos7.9.2009   eeb6ee3f44bd   23 months ago   204MB
quay.io/centos/centos    centos7.9.2009   8652b9f0cb4c   2 years ago     204MBD:\WSL2>docker create --name CentOS7.9 8652b9f0cb4c
bd2f4bc3336e492dbea363e41c70f5356f70449395a1a3122acbafa604c9034b

直接复制IMAGE ID,然后使用docker create命令创建

3. 导出CentOS容器为tar文件

D:\WSL2\CentOS>docker ps -a
CONTAINER ID   IMAGE                    COMMAND       CREATED              STATUS                    PORTS     NAMES
bd2f4bc3336e   8652b9f0cb4c             "/bin/bash"   About a minute ago   Created                             
1852bde26843   centos:centos7.9.2009    "/bin/bash"   4 days ago           Exited (127) 4 days ago             centos7D:\WSL2\CentOS>docker export -o centos7.9.2009.tar bd2f4bc3336eD:\WSL2\CentOS>dir /B
centos7.9.2009.tar

复制CONTAINER ID,使用docker export -o命令导出容器为tar文件

4. 将tar文件导入到WSL

D:\WSL2\CentOS>wsl --import CentOS7.9 . .\centos7.9.2009.tar
正在导入,这可能需要几分钟时间。
操作成功完成。D:\WSL2\CentOS>wsl -l -vNAME                   STATE           VERSION
* Ubuntu-22.04           Running         2docker-desktop         Running         2docker-desktop-data    Running         2Alpine3.18             Stopped         2CentOS7.9              Stopped         2

5. 启动新导入的 CentOS

D:\WSL2\CentOS>wsl -d CentOS7.9
[root@GC CentOS]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@GC CentOS]#

相关文章:

如何在WSL上导入任何Linux发行版

文章目录 一、准备1. 开启WSL相关功能2. 升级WSL3. 设置默认的wsl版本 二、通过 Microsoft Store 安装 Linux1. 查看 Microsoft Store 有哪些可安装的 Linux 发行版2. 安装 Linux 发行版3. 查看已安装的 Linux 发行版4. 启动Linux发行版 三、通过Linux发行商提供的tar文件安装1…...

汽车自适应巡航系统车距控制策略研究

1 引言 自适应巡航控制( Adaptive Cruise Control&#xff0c;ACC) 是汽车驾驶辅助系统的重要组成部分&#xff0c;其作用是根据车距传感器探测到本车( ACC 车辆) 与主目标车辆( 前车) 之间的相对位置和相对速度信息&#xff0c;自动调节ACC 车辆的节气门开度或部分制动力矩( 即…...

鸿蒙系列-如何更好地使用 ArkUI 的 Image 组件?

如何使用好 ArkUI 的 Image 组件&#xff1f; 开发者经常需要在应用中显示一些图片&#xff0c;例如&#xff1a;按钮中的logo、网络图片、本地图片等。在应用中显示图片需要使用 Image 组件实现&#xff0c;Image支持多种图片格式&#xff0c;包括png、jpg、bmp、svg和gif&am…...

机器学习简介[01/2]:简单线性回归

Python 中的机器学习简介&#xff1a;简单线性回归 一、说明 简单线性回归为机器学习提供了优雅的介绍。它可用于标识自变量和因变量之间的关系。使用梯度下降&#xff0c;可以训练基本模型以拟合一组点以供未来预测。 二、技术背景 这是涵盖回归、梯度下降、分类和机器学习的其…...

Kubernetes技术--k8s核心技术yaml资源编排

(1).引入 我们可以使用kubectl实现单行指令的操作,但是这样做的坏处是不复用,所以为了更好的实现对一系列资源的编排工作。kuberntes中使用一种叫做资源清单文件(yaml)来实现对资源管理和资源对象编排部署。 (2).概述 yaml是一种标记语言。为了强调这种语言以数据做为中心,而…...

clickhouse-配置解释

详细内容看官网文档 一、全局服务配置 1.配置详解 名称含义默认值allow_use_jemalloc_memory允许使用 jemalloc 内存1&#xff08;布尔&#xff09;asynchronous_heavy_metrics_update_period_s更新异步指标的时间段&#xff08;以秒为单位&#xff09;120asynchronous_metr…...

基于亚马逊云科技无服务器服务快速搭建电商平台——性能篇

使用 Serverless 构建独立站的优势 在传统架构模式下&#xff0c;如果需要进行电商大促需要提前预置计算资源以支撑高并发访问&#xff0c;会造成计算资源浪费并且增加运维工作量。本文介绍一种新的部署方式&#xff0c;将 WordPress 和 WooCommerce 部署在 Amazon Lambda 中。…...

LINQ详解(查询表达式)

什么是LINQ&#xff1f; LINQ(语言集成查询)是将查询功能直接集成到C#中。数据查询表示简单的字符串&#xff0c;在编译时不会进行类型检查和IntelliSense(代码补全辅助工具)支持。 在开发中&#xff0c;通常需要对不同类型的数据源了解不同的查询语句&#xff0c;如SQL数据库…...

【DEVOPS】现状篇

0. 目录 1. 前言2. 现状2.1 需求管理2.2 开发流程2.3 测试流程2.4 部署流程2.5 维护阶段 3. 后记4. 相关 1. 前言 一直以来&#xff0c;深感内部工程化能力欠缺&#xff0c;急于将事情向前推进&#xff0c;总是希望能够向前走几步&#xff0c;再走几步。 可惜的是&#xff0c…...

Linux文件管理知识:查找文件(第二篇)

Linux文件管理知识:查找文件&#xff08;第二篇&#xff09; 上篇文章详细介绍了linux系统中查找文件的工具或者命令程序locate和find命令的基本操作。那么&#xff0c;今天这篇文章紧接着查找文件相关操作内容介绍。 Find命令所属操作列表中的条目&#xff0c;有助于我们想要…...

医疗小程序:让服务更高效,用户体验更优化

随着移动互联网的快速发展&#xff0c;小程序已经成为了一个热门的开发方向。医疗健康类小程序也不例外&#xff0c;拥有广泛的市场需求和前景。本文将为你提供一份完整的医疗健康类小程序开发攻略&#xff0c;帮助你快速开发上线一个专业成熟的小程序商城。 一、选择合适的小程…...

C++11 std::transform函数使用说明

std::transform是C标准库中的一个算法&#xff0c;它用于对输入范围内的元素进行操作&#xff0c;并将结果存储在输出范围内。这个算法特别适合于将一种数据类型转换为另一种数据类型。 函数定义在头文件algorithm中 std::transform的基本语法如下&#xff1a; std::transfor…...

JavaScript-DOM查询

获取元素节点 获取元素节点的子节点 元素节点的属性 节点的修改 JavaScript中的DOM&#xff08;文档对象模型&#xff09;是一种编程接口&#xff0c;它允许JavaScript与HTML文档交互。创建DOM查询&#xff0c;可以使用多种方法. 获取元素节点 1. getElementById() – 通…...

大数据-玩转数据-Flink 水印

一、Flink 中的水印 在Flink的流式操作中, 会涉及不同的时间概念&#xff1a; 1.1 处理时间 是指的执行操作的各个设备的时间&#xff0c;对于运行在处理时间上的流程序, 所有的基于时间的操作(比如时间窗口)都是使用的设备时钟。比如, 一个长度为1个小时的窗口将会包含设备…...

【Apollo】阿波罗自动驾驶系统:驶向未来的智能出行(含源码安装)

前言 Apollo (阿波罗)是一个开放的、完整的、安全的平台&#xff0c;将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统&#xff0c;快速搭建一套属于自己的自动驾驶系统。 开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、…...

网络-Netty

how pipeline.addLast(ChannelHandler)...

如何使用vue-smooth-dnd

Vue Smooth DnD是一个基于Vue的平滑易用的拖放库。它提供了简单易用的API和可自定义的样式。 要使用Vue Smooth DnD&#xff0c;可以按照以下步骤进行操作&#xff1a; 安装Vue Smooth DnD npm install vue-smooth-dnd --save 在组件中引入Vue Smooth DnD import VueSmoot…...

为AWS认证做好准备:一份全面的备考指南

随着云计算的快速发展&#xff0c;越来越多的专业人士选择获取AWS&#xff08;亚马逊网络服务&#xff09;认证。这个认证不仅可以证明你对AWS的理解和专业技能&#xff0c;还有助于你在云计算领域获得更好的工作机会。 以下是一份全面的备考指南&#xff0c;帮助你为AWS认证做…...

尚硅谷SpringMVC

九、HttpMessageConverter...

django的简易的图书管理系统jsp书店进销存源代码MySQL

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 django的简易的图书管理系统 系统有1权限&#xff1a…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...