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的过程中,需要执行以下步骤:

  1. 确保Windows版本为1903或更高版本,并启用了虚拟化功能。

  2. 下载并安装WSL 2更新:Install WSL | Microsoft Learn

  3. 将WSL 2设置为默认版本,可以使用以下命令:wsl --set-default-version 2

  4. 更新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:

  1. 打开 PowerShell 并运行以下命令以将 WSL 1设置为默认版本:

    wsl --set-default-version 1

  2. 然后,运行以下命令以将 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,稍等片刻就会显示转换完成:

  3. 等待转换过程完成。此过程可能需要一些时间,具体取决于发行版的大小和计算机的性能。

        请注意,转换过程将删除 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,需要完成以下步骤:

  1. 停止 WSL 2 发行版:在 PowerShell 中运行以下命令,其中 <distribution name> 是要备份的发行版的名称:

    wsl --terminate <distribution name>

  2. 导出 WSL 2 的 VHD 文件:在 PowerShell 中运行以下命令,其中 <Distribution Name> 是要备份的发行版的名称,<FileName> 是导出文件的路径和名称。

    wsl --export <Distribution Name> <FileName>

  3. 备份 WSL 2 的状态信息:打开 Windows 注册表编辑器,并导航到以下位置:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\<distribution GUID>。右键单击此位置并选择“导出”,然后选择保存导出文件的位置和名称。

  4. 备份完毕后,可以重新启动 WSL 2 发行版:在 PowerShell 中运行以下命令,其中 <Distribution Name> 是要重新启动的发行版的名称:

    wsl --start <Distribution Name>

        要恢复备份,只需执行以下操作:

  1. 将导出的 VHD 文件复制到要恢复的计算机上,并将其重命名为要还原的发行版的名称。

  2. 在 PowerShell 中运行以下命令,其中 <Distribution Name> 是要还原的发行版的名称,<FileName> 是上一步导出文件的路径和名称。

    wsl --import <Distribution Name> <InstallLocation> <FileName>

    注意,<InstallLocation> 是要导入发行版的安装位置。如果这个位置不存在,WSL 2 会自动创建它。

  3. 导入成功后,可以使用以下命令启动 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 盘,可以执行以下步骤:

  1. 在 D 盘创建一个新的目录,用于存储 WSL 2 安装文件。例如,可以在 D 盘根目录下创建一个名为 wsl 的文件夹。

  2. 打开 Windows 终端,使用管理员权限运行。

  3. 通过 wsl --list --verbose 命令查找要移动的 WSL 2 发行版的 GUID(Global Unique Identifier)。

  4. 在 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 盘:

  1. 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
  2. 然后,使用 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 发行版:

  1. 打开 Windows 终端。
  2. 运行 wsl --list --verbose 命令列出所有已安装的 WSL 发行版及其详细信息。
  3. 查找想要启动的 WSL 发行版的名称,该名称在第一列中。
  4. 运行 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 发行版继续运行,请按照以下步骤操作:

  1. 打开 Windows 终端。
  2. 运行 wsl --list 命令列出所有已安装的 WSL 发行版及其名称。
  3. 找到想要关闭的 WSL 发行版的名称。
  4. 运行 wsl --terminate <distribution name> 命令,其中 <distribution name> 是想要关闭的 WSL 发行版的名称。

        例如,如果想要关闭名为 "Ubuntu" 的 WSL 发行版,可以运行以下命令:

  wsl --terminate Ubuntu

        请注意,这个命令将立即终止 WSL 发行版中所有正在运行的进程,因此请确保已经保存并关闭了所有需要保存的文件和应用程序。

猜你喜欢

转载自blog.csdn.net/qq_15969343/article/details/129112516
今日推荐