跳到主要内容

WSL实例位置迁移

这个文档可以将默认存放在C盘的wsl实例迁移到D盘

执行这些操作之前,建议备份重要数据,以防万一发生错误。

确定WSl实例的位置

方法一:使用PowerShell脚本

Get-ChildItem "$env:LOCALAPPDATA\Packages" -Recurse -Include ext4.vhdx

方法二:通过文件资源管理器 导航到路径:

C:\Users\<你的用户名>\AppData\Local\Packages\

找到与WSL发行版相关的文件夹,通常以CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc命名,进入LocalState文件夹,查看ext4.vhdx文件。

迁移实例

  1. 确定实例名称: 首先,你需要知道你想要迁移的WSL实例的确切名称。可以通过打开命令提示符或PowerShell并输入以下命令来获取所有WSL实例的列表:

    wsl --list --verbose
  2. 关闭WSL实例: 在迁移之前,确保关闭所有WSL实例。可以使用以下命令:

    wsl --shutdown
  3. 导出WSL实例: 使用以下命令导出WSL实例。将<DistributionName>替换为你的WSL实例名称,将<FilePath>替换为你希望将实例导出到的位置 (可以存放在C盘以外的地方)

    wsl --export <DistributionName> D:\path\to\exported\instance.tar
  4. 注销WSL实例: 在导出实例之后,你需要注销当前的实例,这样才能在新的位置重新导入。使用以下命令注销实例:

    wsl --unregister <DistributionName>
  5. 导入WSL实例至新位置: 现在,使用以下命令将实例导入到D盘的新位置。将<NewDistributionName>替换为你希望为迁移后的实例设定的新名称,将<InstallLocation>替换为实例应该存放的目标文件夹路径。

    wsl --import <NewDistributionName> D:\path\to\new\location D:\path\to\exported\instance.tar
  6. 设置默认用户: 导入实例后,你可能需要设置默认用户,因为导入操作可能会将默认用户设置为root。可以通过在实例中修改/etc/wsl.conf文件或使用第三方工具来设置默认用户。

  7. 启动新的WSL实例: 通过以下命令启动你的新WSL实例:

    wsl -d <NewDistributionName>
  8. 验证: 验证实例是否正常工作,并检查是否所有数据都已经迁移。

请注意,这些步骤可能会随着WSL版本的更新而发生变化。如果在执行这些步骤时遇到任何问题,建议查看官方的WSL文档或在社区论坛中寻求帮助。