WSL 1(旧版)到 2 的迁移

WSL 1(旧版)到 2 的迁移

我已经安装了 WSL(Windows 10 上的 Linux 子系统)和 ubuntu 21.04(不是来自商店,这是第一个出现在 Windows 10 上的版本), 我怎样才能迁移到版本 2(带有实际内核)同时保留所有文件(系统和用户),如果可能的话无需重新安装所有内容?

编辑wsl -l -v给出:

  NAME            STATE           VERSION
* Legacy          Running         1
  Ubuntu-20.04    Stopped         2

也就是 WSL 1。我想转到 WSL 2。

答案1

那是不可能的:

wsl --set-version Legacy 2
Conversion in progress, this may take a few minutes...
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
The Legacy distribution does not support WSL 2.

对于将文件迁移到另一个发行版,有两种可能的方法。

  1. 首先检查是否wsl.exe --help显示--export选项。如果是,则将已安装的发行版导出到 tar 文件。例如,命令将是:wsl.exe --export Legacy myfile.tar。然后使用命令卸载旧版发行版wsl.exe --unregister Legacy。并使用命令重新安装发行版wsl.exe --import

  2. 或者运行旧版发行版并压缩整个发行版,请参阅此处回答.然后卸载 Legacy 发行版并从该 tarball 重新安装。

github并感谢猎羊犬

答案2

这非常简单,但应该首先阅读文档。

$ wsl --help
    --set-version <Distro> <Version>
        Changes the version of the specified distribution.

所以只需这样做wsl --set-version MyDistro 2,等待一会儿,就可以了。

答案3

可能需要启动以管理员身份运行的 PowerShell 并输入:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启并输入:

wsl --set-default-version 2
wsl --set-version Ubuntu 2         (use the name of your distribution)

如果您有任何问题,请让我们知道。

你也可以手动下载并执行 WSL 内核最新包进行升级,具体如下: 适用于 x64 机器的 WSL2 Linux 内核更新包

在开始之前,我建议备份 Linux 发行版。请参阅文章 在 Windows 10 中导出和导入 WSL Linux 发行版 并创建 Windows 系统还原保存。

相关内容