首页 > 解决方案 > 将 WSL 实例从一台机器复制到另一台机器

问题描述

所以我最近买了一台新笔记本电脑,想把我的 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 发行版的命令;这些操作是否会保留所有可能已安装的应用程序?对于代码,只需将“主”目录从一个实例复制到另一个实例就很容易了,这不会破坏任何东西,但我不想再次重新安装所有应用程序。

编辑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:显然,为了使用--importand--export选项,您至少需要使用 Windows build 1903

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

标签: windows-subsystem-for-linux

解决方案


编辑:更新了我的问题。

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

这对我有用。


推荐阅读