WSL1和WSL2相互转换以及安装路径迁移相关问题
目录
1.从WSL 1如何切换到WSL 2?
2.从WSL 2如何切换回WSL 1?
3.WSL1转换为WSL2后,WSL1里面安装的程序和库需要重装吗?
4.WSL2转换为WSL1后,WSL2里面安装的程序和库需要重装吗?
5.如何备份WSL2?
6.一台电脑上面可以同时运行WSL1和WSL2吗?
7.WSL2如何从C盘转移到D盘?
8.导入到D盘之后,原来的WSL还在吗?是不是我的电脑上面同时就有了2个wsl?
9.当有多个WSL时,如何启动特定的WSL?
10.电脑上现在运行了2个WSL,想关闭其中一个,但使用--shutdown命令全部都关闭了,我想另外一个依然运行,怎么操作?
1.从WSL 1如何切换到WSL 2?
从WSL 1切换到WSL 2的过程中,需要执行以下步骤:
确保Windows版本为1903或更高版本,并启用了虚拟化功能。
下载并安装WSL 2更新:Install WSL | Microsoft Learn
将WSL 2设置为默认版本,可以使用以下命令:
wsl --set-default-version 2
更新WSL 1发行版,以便其在WSL 2中运行,可以使用以下命令:
wsl --set-version <distribution name> 2
请注意,切换到WSL 2后,需要下载并安装适用于WSL 2的Linux内核,但不需要重新安装Linux发行版。现有的WSL 1发行版将自动转换为WSL 2发行版。
2.从WSL 2如何切换回WSL 1?
可以通过以下步骤将WSL 2转换回WSL 1:
打开 PowerShell 并运行以下命令以将 WSL 1设置为默认版本:
wsl --set-default-version 1
然后,运行以下命令以将 WSL 2 发行版转换为 WSL 1 发行版。请将
<distribution name>
替换为想要转换的发行版的名称:
wsl --set-version <distribution name> 1
,如我这边的WSL2的名称为Ubuntu-20.04-e,那么我输入的命令就是:wsl --set-version Ubuntu-20.04-e 1,稍等片刻就会显示转换完成:
等待转换过程完成。此过程可能需要一些时间,具体取决于发行版的大小和计算机的性能。
请注意,转换过程将删除 WSL 2 的所有状态和文件,并将其转换为 WSL 1。如果之前在 WSL 2 中安装了任何程序或库,则需要在 WSL 1 中重新安装它们。
另外,如果之前已删除 WSL 1 的状态或文件,则可能需要在转换回 WSL 1 之前重新安装 WSL 1 发行版。可以从 Microsoft Store 或其他适当的渠道重新安装 WSL 1 发行版。
3.WSL1转换为WSL2后,WSL1里面安装的程序和库需要重装吗?
通常来说,在WSL 1中安装的程序和库可以在WSL 2中继续使用,无需重新安装。
将WSL 1升级为WSL 2时,WSL 1发行版会自动转换为WSL 2发行版,并且已经安装的程序和库将保留在转换后的发行版中。可以使用与WSL 1相同的方式在WSL 2中运行这些程序和库,只是在性能和功能方面会有所提升。
但是,如果程序或库依赖于特定于WSL 1的功能或配置,则可能需要在WSL 2中进行适当的修改或重新安装。此外,WSL 2中使用的Linux内核与WSL 1中使用的Linux内核有所不同,因此某些特定的Linux驱动程序或内核模块可能需要重新安装或重新编译以在WSL 2中正常运行。
4.WSL2转换为WSL1后,WSL2里面安装的程序和库需要重装吗?
在将 WSL 2 转换回 WSL 1 后,WSL 2 中安装的程序和库不会自动转移到 WSL 1,因此需要在 WSL 1 中重新安装它们。
当在 WSL 2 中安装程序或库时,它们将安装在 WSL 2 文件系统中。而在将 WSL 2 转换回 WSL 1 后,WSL 1 文件系统将替换 WSL 2 文件系统,因此之前在 WSL 2 中安装的程序和库将无法在 WSL 1 中访问。
如果需要在 WSL 1 中使用之前在 WSL 2 中安装的程序和库,则需要在 WSL 1 中重新安装它们。在 WSL 1 中安装程序和库的过程与在 WSL 2 中安装它们的过程类似,只需要在 WSL 1 中打开终端并使用适当的包管理器(如 apt-get 或 yum)来安装它们。
请注意,在 WSL 1 和 WSL 2 之间切换可能会涉及到文件系统和网络配置的变化,因此在切换之前最好备份重要数据并了解这些变化的影响。
5.如何备份WSL2?
在备份 WSL 2 之前,需要先理解 WSL 2 的文件系统和状态存储位置。在 WSL 2 中,Linux 文件系统存储在虚拟硬盘(VHD)中,并位于 Windows 文件系统中的特定位置。此外,WSL 2 状态信息存储在 Windows 注册表中的特定位置。
要备份 WSL 2,需要完成以下步骤:
停止 WSL 2 发行版:在 PowerShell 中运行以下命令,其中
<distribution name>
是要备份的发行版的名称:
wsl --terminate <distribution name>
导出 WSL 2 的 VHD 文件:在 PowerShell 中运行以下命令,其中
<Distribution Name>
是要备份的发行版的名称,<FileName>
是导出文件的路径和名称。
wsl --export <Distribution Name> <FileName>
备份 WSL 2 的状态信息:打开 Windows 注册表编辑器,并导航到以下位置:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\<distribution GUID>
。右键单击此位置并选择“导出”,然后选择保存导出文件的位置和名称。备份完毕后,可以重新启动 WSL 2 发行版:在 PowerShell 中运行以下命令,其中
<Distribution Name>
是要重新启动的发行版的名称:
wsl --start <Distribution Name>
要恢复备份,只需执行以下操作:
将导出的 VHD 文件复制到要恢复的计算机上,并将其重命名为要还原的发行版的名称。
在 PowerShell 中运行以下命令,其中
<Distribution Name>
是要还原的发行版的名称,<FileName>
是上一步导出文件的路径和名称。
wsl --import <Distribution Name> <InstallLocation> <FileName>
注意,
<InstallLocation>
是要导入发行版的安装位置。如果这个位置不存在,WSL 2 会自动创建它。导入成功后,可以使用以下命令启动 WSL 2 发行版:
wsl --start <Distribution Name>
请注意,备份和恢复 WSL 2 可能需要一些时间,具体取决于发行版的大小和计算机的性能。同时,由于 WSL 2 使用的是动态虚拟硬盘文件,因此备份文件的大小可能会超过发行版的实际大小。
6.一台电脑上面可以同时运行WSL1和WSL2吗?
一台计算机可以同时安装 WSL 1 和 WSL 2。在 Windows 10 版本 2004 及更高版本中,可以使用“启用或关闭 Windows 功能”对话框来启用或禁用 WSL 1 和 WSL 2。
要同时使用 WSL 1 和 WSL 2,请先确保已启用 WSL 功能。打开 Windows PowerShell 并以管理员身份运行,然后运行以下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all
接下来,需要启用 WSL 2。打开 Windows PowerShell 并以管理员身份运行,然后运行以下命令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
然后,需要下载和安装 WSL 2 更新内核。可以从 Microsoft 的官方网站上下载适用于的Windows 版本的最新内核更新。安装完成后,请重启计算机以使更改生效。
一旦 WSL 1 和 WSL 2 都启用并且最新的 WSL 2 更新内核已安装,可以在 Windows 终端中使用 wsl --set-version <distribution name> <versionNumber>
命令将特定的 WSL 发行版切换为 WSL 1 或 WSL 2 版本。请注意,WSL 1 和 WSL 2 版本之间的切换可能需要一些时间,并且需要重新启动 WSL 发行版才能生效。
在同一台计算机上使用 WSL 1 和 WSL 2 可以让在不同的环境中运行不同的 Linux 发行版和应用程序,并且具有更高的灵活性和兼容性。
7.WSL2如何从C盘转移到D盘?
要将 WSL 2 安装从 C 盘转移到 D 盘,可以执行以下步骤:
在 D 盘创建一个新的目录,用于存储 WSL 2 安装文件。例如,可以在 D 盘根目录下创建一个名为
wsl
的文件夹。打开 Windows 终端,使用管理员权限运行。
通过
wsl --list --verbose
命令查找要移动的 WSL 2 发行版的 GUID(Global Unique Identifier)。在 Windows 终端中,执行以下命令,将 WSL 2 安装文件从 C 盘移动到 D 盘:
wsl --export <Distribution Name> <FileName>
其中,
<Distribution Name>
是要移动的 WSL 2 发行版的名称,例如 Ubuntu,<FileName>
是导出文件的路径和名称,例如D:\wsl\ubuntu.tar
。如:wsl --export Ubuntu-20.04 D:\WSL\Ubuntu-20.04-d
然后,执行以下命令,从导出的文件中导入 WSL 2 安装到 D 盘:
wsl --import <Distribution Name> <InstallLocation> <FileName>
其中,<Distribution Name>
是要导入的 WSL 2 发行版的名称,例如 Ubuntu,<InstallLocation>
是要在 D 盘上创建的新 WSL 2 安装文件夹的路径,例如 D:\WSL,<FileName>
是上一步导出文件的路径和名称,例如D:\WSL\Ubuntu-20.04-d。总的命令就是:wsl --import Ubuntu-20.04-d D:\WSL D:\WSL\Ubuntu-20.04-d- 然后,使用
wsl --set-default <distribution name>
命令将新导入的 WSL 2 发行版设置为默认发行版。
通过这些步骤,可以将 WSL 2 安装文件从 C 盘移动到 D 盘,并在 D 盘上重新导入和安装 WSL 2 发行版。请注意,在此过程中,需要确保 WSL 2 发行版的数据和配置已备份,并且已将它们迁移到新的安装文件夹中。
8.导入到D盘之后,原来的WSL还在吗?是不是我的电脑上面同时就有了2个wsl?
导入到 D 盘后,原来的 WSL 2 发行版仍然存在于 C 盘中,并且在 D 盘上创建了一个新的 WSL 2 发行版。因此,电脑上现在有两个 WSL 2 发行版。
可以使用 wsl --list --verbose
命令查看所有已安装的 WSL 发行版的详细信息,包括它们的 GUID、状态、路径和默认状态。默认情况下,新导入的 WSL 2 发行版可能不会自动成为默认的 WSL 发行版,因此可能需要使用 wsl --set-default <distribution name>
命令将其设置为默认的 WSL 发行版。
请注意,当创建新的 WSL 发行版时,WSL 2 发行版和 WSL 1 发行版都可以存在于同一台计算机上,且可以同时运行。但是,当使用 wsl --set-version
命令将 WSL 2 发行版转换为 WSL 1 发行版或将 WSL 1 发行版转换为 WSL 2 发行版时,需要重启 WSL 发行版,这可能会导致的应用程序和库需要重新安装和配置。
9.当有多个WSL时,如何启动特定的WSL?
如果在计算机上同时安装了多个 WSL 2 发行版,可以使用以下步骤启动想要的 WSL 发行版:
- 打开 Windows 终端。
- 运行
wsl --list --verbose
命令列出所有已安装的 WSL 发行版及其详细信息。- 查找想要启动的 WSL 发行版的名称,该名称在第一列中。
- 运行
wsl --distribution <distribution name>
命令,其中<distribution name>
是想要启动的 WSL 发行版的名称。
例如,如果想要单独启动名为 "Ubuntu" 的 WSL 发行版,可以运行以下命令:
wsl --distribution Ubuntu
请注意,也可以使用以下命令来启动默认的 WSL 发行版:
wsl
此命令将启动在上一次使用 wsl
命令时设置的默认 WSL 发行版。如果想要更改默认的 WSL 发行版,请使用 wsl --set-default <distribution name>
命令,其中 <distribution name>
是想要设置为默认的 WSL 发行版的名称。
10.电脑上现在运行了2个WSL,想关闭其中一个,但使用--shutdown命令全部都关闭了,我想另外一个依然运行,怎么操作?
如果想要关闭一个 WSL 发行版,但让另一个 WSL 发行版继续运行,请按照以下步骤操作:
- 打开 Windows 终端。
- 运行
wsl --list
命令列出所有已安装的 WSL 发行版及其名称。- 找到想要关闭的 WSL 发行版的名称。
- 运行
wsl --terminate <distribution name>
命令,其中<distribution name>
是想要关闭的 WSL 发行版的名称。
例如,如果想要关闭名为 "Ubuntu" 的 WSL 发行版,可以运行以下命令:
wsl --terminate Ubuntu
请注意,这个命令将立即终止 WSL 发行版中所有正在运行的进程,因此请确保已经保存并关闭了所有需要保存的文件和应用程序。
相关文章:

WSL1和WSL2相互转换以及安装路径迁移相关问题
目录 1.从WSL 1如何切换到WSL 2? 2.从WSL 2如何切换回WSL 1? 3.WSL1转换为WSL2后,WSL1里面安装的程序和库需要重装吗? 4.WSL2转换为WSL1后,WSL2里面安装的程序和库需要重装吗? 5.如何备份WSL2…...
系统分析*
文章目录系统分析分析的任务结构化方法OO的方法的任务常用的详细调查方法有哪些?系统分析的建模TFD业务流程图DFDDD数据流图用例模型(重点用例图)用例图的内容:用例之间的关系:对象模型(类图)时…...
【redis】持久化:RDB和AOF
redis的持久化指将数据写入可靠内存中,如ssd。Redis提供了4种持久化策略 RDB:Redis Database,周期性的将某个时间点的数据集快照持久化AOF:Append Only File,每次redis服务接收到写操作(修改内存的操作),都…...

2023Python接口自动化测试实战教程,附视频实战讲解
这两天一直在找直接用python做接口自动化的方法,在网上也搜了一些博客参考,今天自己动手试了一下。 一、整体结构 上图是项目的目录结构,下面主要介绍下每个目录的作用。 Common:公共方法:主要放置公共的操作的类,比如数据库sql…...

【原创】java+swing+sqlserver药品管理系统设计与实现
之前数据库都是用的mysql,今天我们使用sqlserver在配合swing来开发一个药品管理系统。方便医院工作人员进行药品的管理,基础功能基本都是一些增删改查操作。 功能分析: 药品管理系统主要提供给管理员和员工使用,功能如下&#x…...
软考高级信息系统项目管理师系列之二十七:信息文档管理与配置管理
软考高级信息系统项目管理师系列之二十七:信息文档管理与配置管理 一、信息文档管理与配置管理内容整理二、信息系统文档管理1.信息系统文档概念2.软件文档分类与质量等级三、配置管理1.配置管理2.典型配置项3.配置项4.配置项操作权限5.配置项状态6.配置项版本号7.配置项版本管…...
软考高级-信息系统管理师之项目管理基础(最新版)
项目管理基础 项目管理特点战略管理三个过程IT项目特点项目管理概念项目管理特点软技能PRINCE2的四个要素组织结构职能型组织优缺点职能型组织优点同时,职能型组织也存在着如下缺点:项目型组织优缺点项目型组织优点项目型组织也存在着如下缺点:矩阵型组织优缺点矩阵型组织的优…...
leetcode240+Search a 2D Matrix II+从右上角开始
链接 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {if(matrix.size()0 || matrix[0].size()0) return false;int i0, jmatrix[0].size()-1; //从右上角开始while (i<matrix.size()&&j>0) {int x mat…...

0xL4ugh 2023
这回跟着个队伍跑,不过还是2X以后的成绩,前边太卷了。自己会的部分,有些是别人已经提交了的。记录一下。Cryptocrypto 1给了一些数据,像这样就没有别的了ct [0, 1, 1, 2, 5, 10, 20, 40, 79, 159, 317, 635, 1269, 2538, 5077, 1…...

Mybatis(4)之跟着老杜做一个简单的银行转账会话
这是个MVC项目,我不一定可以完整的实现这个项目,但力求把这个复现出来,尽量的复现细节。 第一步:创建数据库 表 创建表如下: 我们使用 int 是为了方便 然后采用 demcial,精确度较高 添加两个用户 然后…...

VBA提高篇_ 22 事件处理
文章目录1.事件编程2.常用工作簿事件名称与对应处理过程名称示例3. 事件编程的步骤4.工作簿事件4.1 Open4.2 BeforeClose4.3 NewSheet5.工作表事件6.变量和过程函数的作用域1.事件编程 写在事件发生地(对应工作簿或工作表) 2.常用工作簿事…...
【蓝桥杯集训·周赛】AcWing 第91场周赛
文章目录第一题 AcWing 4861. 构造数列一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解第二题 AcWing 4862. 浇花一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解第三题 AcWing 4861. 构造数列一、题目1、原题…...

【人工智能AI】三、NoSQL 实战《NoSQL 企业级基础入门与进阶实战》
帮我写一篇介绍NoSQL的技术文章,文章标题是《NoSQL 实战》,不少于3000字。这篇文章的目录是 3.NoSQL 实战 3.1 MongoDB 入门 3.1.1 MongoDB 基本概念 3.1.2 MongoDB 安装与配置 3.1.3 MongoDB 数据库操作 3.2 Redis 入门 3.2.1 Redis 基本概念 3.2.2 Red…...

platform 总线
驱动的分离与分层思想 分离:硬件信息分离; 在编写硬件驱动的时候,需要操作许多硬件寄存器。比如gpio 驱动,你需要知道gpio控制器 寄存器的地址,你想要哪个gpio输出?或是输入? 这些操作最终都是靠设置寄存…...

2023第10届生物发酵展3月30-4月1号山东济南开展,参观路线来了
2023第10届生物发酵展3月30-4月1号山东济南开展,参观路线来了!展会时间:2023年3月30日-4月1日展馆地址:山东国际会展中心(济南市槐荫区日照路1号)展馆:4号馆、5号馆BIO CHINA生物发酵展…...

RK356x U-Boot研究所(命令篇)3.6 fdt命令的用法
平台U-Boot 版本Linux SDK 版本RK356x2017.09v1.2.3文章目录 一、fdt命令的配置二、fdt命令的定义三、fdt命令的用法3.1 fdt list3.2 fdt rm3.3 fdt set一、fdt命令的配置 .config配置文件需要有以下配置: rk3568_defconfig默认已使能。 二、fdt命令的定义 usb命令定义在cm…...
2023年社工工资多少钱一月 能领多少补贴
2023年社会工作者人员的待遇还算可以,每月的全额工资一共5000多,扣完五险一金以后每月的到手工资一共4000多,不同地区薪资也是不同的,一线城市会在7千元以上,还可以领取几百到几千元不等的补贴。 12023年社工工资多少钱…...

面试攻略,Java 基础面试 100 问(十一)
抽象类(abstract class)和接口(interface)有什么异同? 抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现ÿ…...

接口测试(Fiddler工具)
目录 1.Fiddler是什么? 2.Fiddler的原理 3.Fiddler安装 4.Fiddler界面 4.1.常用工具 4.2 会话列表 4.3 状态栏 4.4 内容显示区 1.Fiddler是什么? Fiddler是客户端与服务器之间的HTTP代理,是当前最常用的HTTP协议抓包工具。 主要功能&a…...
Debian/Ubuntu 安装和使用 perf 调试工具
为操作系统安装基本依赖环境:apt-get update -y apt-get upgrade -y apt-get install lrzsz zip unzip libkrb5-dev libicu-dev screen iftop openssl libssl-dev libunwind8 iftop net-tools gcc gdb cmake curl wget -y apt-get install gcc gdb cmake python-dev…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...