方法一:通过 wsl --export 和 wsl --import 命令
-
导出当前的 WSL 分发版:
首先,您需要导出当前运行的 WSL 分发版。假设您的分发版名称为
Ubuntu-20.04
,执行以下命令:bashwsl --export Ubuntu-20.04 D:\WSL\Ubuntu-20.04.tar
这会将当前的 WSL 分发版导出到指定路径下的压缩文件中。
-
删除当前的 WSL 分发版:
如果您计划彻底移动,可以删除当前的 WSL 分发版。在 PowerShell 或命令提示符中执行以下命令(注意:这将删除所有该分发版的数据):
bashwsl --unregister Ubuntu-20.04
-
导入到新的位置:
现在,将导出的分发版导入到新的位置。假设您要将其导入到 D 盘的
WSL
目录下,执行以下命令:bashwsl --import Ubuntu-20.04 D:\WSL\Ubuntu-20.04 D:\WSL\Ubuntu-20.04.tar --version 2
Ubuntu-20.04
是分发版的名称。D:\WSL\Ubuntu-20.04
是新的安装位置。D:\WSL\Ubuntu-20.04.tar
是之前导出的压缩文件路径。--version 2
指定使用 WSL 2。
-
启动和配置新的 WSL 分发版:
现在,您可以启动新的 WSL 分发版并按照需要进行配置。启动方法如下:
bashwsl -d Ubuntu-20.04
方法二:通过 wsl --export 和 wsl --import 实现目录符号链接
另一种方法是使用目录符号链接,而不是导出和导入分发版。这种方法允许您将 WSL 文件系统中的某些部分链接到其他位置,但不需要重新导入分发版。
-
导出当前的 WSL 分发版(如果需要备份):
bashwsl --export Ubuntu-20.04 D:\WSL\Ubuntu-20.04.tar
-
停止 WSL 服务:
bashwsl --shutdown
-
将 WSL 文件系统目录链接到新的位置:
假设您想将 WSL 文件系统中的
/home
目录链接到 D 盘的WSLHome
目录:bashmkdir D:\WSLHome wsl --mount D:\WSLHome --target /home
这会创建一个目录符号链接,使得
/home
目录在 WSL 中实际指向D:\WSLHome
目录。 -
重新启动 WSL 服务:
bashwsl
通过这些方法,您可以将 WSL 移动到另一个盘,并根据需要选择合适的方法进行操作。