如何将 WSL 上的 Ubuntu 从一台笔记本电脑转移到另一台笔记本电脑?

如何将 WSL 上的 Ubuntu 从一台笔记本电脑转移到另一台笔记本电脑?

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

我也遇到过类似的问题,但似乎都没有对我的情况有帮助。

我正在尝试在 USB 硬盘上克隆旧笔记本电脑的 WSL,以便将其传输到新笔记本电脑,但是当我输入lsblk或任何其他列出笔记本电脑上的驱动器的命令时,USB 均未列出。

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

  NAME                    STATE      VERSION
  docker-desktop-data     Running    2
* Ubuntu                  Running    2
  docker-desktop          Running    2

我需要从Ubuntu和传输文件docker-desktop-data

答案1

如果你只是想从 Ubuntu 复制一些文件,那么你当然可以使用\\wsl$\Ubuntu@Android776 在其他答案。但是,这几乎只适用于 Linux 用户创建并拥有的文件。其他文件将失去其权限和/或所有者(通常root),并且某些系统文件将完全无法读取(例如/etc/shadow)。

既然您说要将 Docker 数据移到新笔记本电脑上,那么--export无论如何您都需要使用下面描述的方法,因此您不妨将它用于 Ubuntu 文件系统和 Docker 文件系统。

备份是比较简单的部分——WSL 提供了导出分发版的功能,这会创建一个tar文件,然后可以再次导入该文件,无论是在同一台计算机上(作为新分发版)还是在另一个系统上。

我假设您的 USB 驱动器是D:,但请在下面替换您需要的任何驱动器号。

从 PowerShell:

wsl --export Ubuntu D:\ubuntu.tar
wsl --export docker-desktop-data D:\docker-desktop-data.tar

无需导出docker-desktop,因为当您在新笔记本电脑上安装 Docker Desktop 时它将被自动重新创建。

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

在新计算机上的 Windows 11 上:

  • 启动管理 PowerShell。

  • wsl --install(如果你还没有)

  • 按提示重新启动。

  • 完成安装,将会安装一个新的 Ubuntu —— 您不会使用这个。

  • 删除这个新安装的 Ubuntu。从-管理员 PowerShell:

    wsl --unregister Ubuntu
    

    重要的:仅在新电脑上执行此操作,并且仅在安装后立即执行此操作。这将从新安装Ubuntu 版本。

  • 接下来,我们将备份的 Ubuntu 发行版恢复到 USB 驱动器。连接 USB 驱动器(再次假设D:)。

  • 再次,从-管理员 PowerShell:

    # Adjust paths and names below as desired
    mkdir $env:USERPROFILE\WSL\instances\Ubuntu_WSL2
    wsl --import Ubuntu_WSL2 $env:USERPROFILE\WSL\instances\Ubuntu_WSL2 D:\ubuntu.tar --version 2
    wsl --set-default Ubuntu_WSL2
    wsl ~ 
    

    请注意,您需要为新的 Ubuntu 命名,而不是“Ubuntu”或“Ubuntu-20.04”等。这些是 Store 安装程序使用的名称,此安装将与 Store 安装程序“分开”。如果您再次运行 Store 安装程序(无论是有意还是无意),最好不要“混淆”它们。

  • 在这个 Ubuntu 中,您的所有文件都应该存在,但您将root不再是普通用户。您需要通过以下方式设置“默认”用户:

    sudo -e /etc/wsl.conf
    
  • 并添加:

    [user]
    default=your_username
    

    your_username应该是您在旧笔记本电脑上的 Ubuntu 上使用的用户名。

  • 现在退出

  • 然后重新启动 WSL,你应该恢复正常

请让我知道您的效果如何,然后我也会努力添加恢复的方向docker-desktop-data

答案2

好问题——我想我可能有一个解决方案。

传输 WSL 文件的方法如下:

老的PC,确保您的 Ubuntu WSL 正在运行并启动。然后,打开 RUN(只需转到开始并输入运行)并输入\\wsl$\Ubuntu

这是存储 WSL VM 文件的地方。您可以复制在那里看到的所有文件夹,以复制所有内容,尽管可能会出现一些问题。我建议您只复制 的内容\\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

相关内容