首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将WSL上的Ubuntu从一台笔记本电脑传输到另一台笔记本电脑?

如何将WSL上的Ubuntu从一台笔记本电脑传输到另一台笔记本电脑?
EN

Ask Ubuntu用户
提问于 2022-09-14 18:31:26
回答 2查看 3.4K关注 0票数 1

Linux和Ubuntu的新手。我正在尝试将我的旧Ubuntu文件传输到我的新Windows 11笔记本电脑。

我也曾经历过类似的问题,但似乎没有一个问题对我的案子有帮助。

我试图在一个USB硬盘上克隆我的旧笔记本电脑的WSL,这样我就可以将它传输到我的新笔记本上,但是当我输入lsblk或其他列出笔记本上的驱动器的命令时,它并没有列出。

来自评论的wsl -l -v结果:

代码语言:javascript
复制
  NAME                    STATE      VERSION
  docker-desktop-data     Running    2
* Ubuntu                  Running    2
  docker-desktop          Running    2

我需要同时从Ubuntudocker-desktop-data传输文件。

EN

回答 2

Ask Ubuntu用户

发布于 2022-09-15 02:32:01

如果您只想从Ubuntu中复制几个文件,那么当然可以使用@Android776 776在其他答案中提议的C1方法。但是,这几乎只适用于Linux用户创建和拥有的文件。其他文件将失去它们的权限和/或所有者(通常是root),而且有些系统文件根本就无法读取,例如/etc/shadow)。

既然您说要将Docker数据移到新的膝上型计算机上,那么无论如何都需要使用下面描述的--export方法,所以您可以同时将它用于Ubuntu文件系统和Docker文件系统。

备份是容易的部分-- WSL提供了导出发行版的能力,它创建了一个tar文件,然后可以在同一台计算机上(作为一个新发行版)或在另一个系统上再次导入。

我将假设您的USB驱动器是D:,但是替换任何您需要的驱动器字母下面。

来自PowerShell:

代码语言:javascript
复制
wsl --export Ubuntu D:\ubuntu.tar
wsl --export docker-desktop-data D:\docker-desktop-data.tar

没有必要导出docker-desktop,因为当您在新笔记本上安装Desktop时,它将自动重新创建。

弹出USB驱动器(正确地使用任务栏中的弹出命令)并将其移动到另一台计算机。

在新计算机上的Windows 11上:

  • 启动一个管理PowerShell。
  • wsl --install (如果您还没有)
  • 当被告知时重新启动。
  • 完成安装,这将安装一个新的Ubuntu --您不会使用这个。
  • 删除这个新安装的Ubuntu。从一个非管理员PowerShell: wsl --注销Ubuntu 重要的:只在新计算机上执行此操作,并且只在以这种方式安装之后才这样做。这将从新安装的Ubuntu版本中删除所有文件。
  • 接下来,我们恢复我们备份到USB驱动器的Ubuntu发行版。附加USB驱动器(同样,假设是D:)。
  • 再次,从一个非Admin PowerShell:#调整路径和名称如下所需的mkdir $env:USERPROFILE\WSL\instances\Ubuntu_WSL2 wsl -导入Ubuntu_WSL2 $env:USERPROFILE\WSL\instances\Ubuntu_WSL2 D:\ubuntu.tar -版本2 wsl -设置-默认的Ubuntu_WSL2 wsl ~注意,您需要命名新的Ubuntu以外的东西"Ubuntu",或"Ubuntu-20.04“等。这些是商店安装程序使用的名称,这个安装将是”独立的“。最好不要“混淆”商店安装程序,如果你再一次运行它们(故意的或偶然的)。
  • 在这个Ubuntu中,您的所有文件都应该是存在的,但是您将是root而不是您的普通用户。您需要将“默认”用户设置为: sudo -e /etc/wsl.conf
  • 添加: default=your_username your_username应该是您在旧笔记本上Ubuntu上使用的用户名。
  • 现在出口
  • 重新启动WSL,您应该会恢复正常。

让我知道这是如何为您工作的,我也将努力添加恢复docker-desktop-data的指导。

票数 3
EN

Ask Ubuntu用户

发布于 2022-09-15 00:40:05

好问题-我想我可能有个解决办法。

下面是如何传输WSL文件:

旧的 PC上,确保您的Ubuntu正在运行和引导。然后,打开RUN (只需开始并键入run)并键入\\wsl$\Ubuntu

这是存储WSL的文件的地方。您可以复制您在那里看到的所有文件夹,以便复制所有内容,尽管它们可能存在一些问题。我建议您只复制\\wsl$\Ubuntu\home\your-username的内容,但是可以尝试复制整个\\wsl$\Ubuntu目录。

然后,在新的 PC上,创建一个新的WSL环境,并将先前复制的文件复制到Windows中的某个地方,比如C:\Users\yourusername\Documents。然后使用RUN导航到\\wsl$\Ubuntu

如果您复制了整个WSL目录,请选择\\wsl$\Ubuntu中的所有文件,然后从C:\Users\yourusername\Documents粘贴复制的文件。

如果您只是复制您的主目录,只需导航到\\wsl$\Ubuntu\home\username,删除所有其他文件并粘贴您现有的文件。

您的新用户名和旧用户名需要相同才能工作。

希望这能帮上忙,Android776

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1429369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档