将WSL实例从一台计算机复制到另一台计算机

时间:2020-02-24 14:18:53

标签: windows-subsystem-for-linux

所以我最近买了一台新笔记本电脑,想将我的WSL文件从旧机器移到新机器上。像个白痴一样,我实际上只是复制了文件系统 (C:\ Users \ myuser \ AppData \ Local \ Packages \ CanonicalReallyLongDirectoryNameHere \ LocalState \ rootfs)

在新机器上安装WSL后,从旧机器到新机器的

现在,WSL将无法在新计算机上启动。我尝试在新计算机上卸载并重新安装WSL,但是发现不建议使用lxrun,并且找不到关于没有lxrun的情况下如何卸载/重新安装的明确说明的文章。 。我看着这个人:

https://docs.microsoft.com/en-us/windows/wsl/reference

但是注销和终止有什么区别?关于这些命令的确切功能以及它们之间的区别,文档尚不清楚。

编辑:我发现您可以进入设置>应用和功能> Ubuntu [发行版]>高级选项>重置

,这使WSL在我的机器上再次运行。

为了子孙的缘故,是否有任何方法可以轻松地将一个WSL实例复制到另一个?我在上面引用的文档中看到,现在有一个导入和导出WSL发行版的命令。这些操作会保留所有可能已安装的应用程序吗?对于代码,只需将“ home”目录从一个实例复制到另一个实例就很容易了,这不会破坏任何内容,但我不想再次安装所有应用程序。

编辑2:

所以我找到了这篇文章:

https://www.howtogeek.com/426562/how-to-export-and-import-your-linux-systems-on-windows-10/

这表示您可以运行wsl --export distro_name filename.tar来导出文件系统,但是当我在旧计算机上尝试使用它时,它只会吐出wsl.exe的使用信息:

Usage: wsl.exe [option] ...
Options:
-d, --distribution <DistributionName>
    Launch the specified distribition.

-e, --exec <CommandLine>
    Execute the specified Linux command. The remainder of the arguments are
    used as the command line to execute.

-u, --user <UserName>
    Run as the specified user.

--help
    Display this usage information.

--
    Stop parsing arguments and pass the remainder to the Linux process.

编辑3:显然,为了使用--import--export选项,您至少必须在Windows build 1903上

https://github.com/MicrosoftDocs/WSL/issues/419

1 个答案:

答案 0 :(得分:0)

编辑:更新了我的问题。

好的,所以我发现您可以进入设置>应用和功能> Ubuntu [发行版]>高级选项>重置

这帮了我大忙。