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
文件。
迁移实例
-
确定实例名称: 首先,你需要知道你想要迁移的WSL实例的确切名称。可以通过打开命令提示符或PowerShell并输入以下命令来获取所有WSL实例的列表:
wsl --list --verbose
-
关闭WSL实例: 在迁移之前,确保关闭所有WSL实例。可以使用以下命令:
wsl --shutdown
-
导出WSL实例: 使用以下命令导出WSL实例。将
<DistributionName>
替换为你的WSL实例名称,将<FilePath>
替换为你希望将实例导出到的位置 (可以存放在C盘以外的地方)wsl --export <DistributionName> D:\path\to\exported\instance.tar
-
注销WSL实例: 在导出实例之后,你需要注销当前的实例,这样才能在新的位置重新导入。使用以下命令注销实例:
wsl --unregister <DistributionName>
-
导入WSL实例至新位置: 现在,使用以下命令将实例导入到D盘的新位置。将
<NewDistributionName>
替换为你希望为迁移后的实例设定的新名称,将<InstallLocation>
替换为实例应该存放的目标文件夹路径。wsl --import <NewDistributionName> D:\path\to\new\location D:\path\to\exported\instance.tar
-
设置默认用户: 导入实例后,你可能需要设置默认用户,因为导入操作可能会将默认用户设置为root。可以通过在实例中修改
/etc/wsl.conf
文件或使用第三方工具来设置默认用户。 -
启动新的WSL实例: 通过以下命令启动你的新WSL实例:
wsl -d <NewDistributionName>
-
验证: 验证实例是否正常工作,并检查是否所有数据都已经迁移。
请注意,这些步骤可能会随着WSL版本的更新而发生变化。如果在执行这些步骤时遇到任何问题,建议查看官方的WSL文档或在社区论坛中寻求帮助。