随着使用,最近 C 盘快满了,清理了也没清理多少,所以打算移动一下 WSL。在设置中,“Ubuntu on Windows”有一个“移动”按钮,但是被设置成“无法移动”了。清理了半天发现还是挪到别的盘使用比较好,不然很容易爆满。
方法概述和注意事项
研究了一下,发现并没有完美的实现方法,但是有一个勉强可以算作方法的方法(为什么不是完美的后面细说)。操作逻辑大致是:
- 导出目前的 WSL 为一个压缩包(压缩包是因为命令限制,而且可以加快移动速度。并且由于 C 盘爆满,可以直接导出到目标盘)。
- 再导入之前压缩好的 WSL 压缩包。
需要注意一点:之所以说这种方法不完美,是因为会丢失所有关联的数据和软件。
导出需要移动的 WSL
首先是导出需要移动的 WSL,方法很简单。
第一步,打开 PowerShell,然后使用以下命令:
wsl --export 已安装的WSL名称 目标位置\自定义名称.tar
举个例子,当前有一个 WSL 名为“Ubuntu
”,位置在C
盘。我们想将其移动到G
盘,并且输出的 tar 文件名为“myUbuntu.tar
”:
wsl --export Ubuntu G:\\WSL\myUbuntu.tar
导入 WSL 压缩包
这个导入压缩包和导入一个发行版是同一个概念。
如果想移动之后的名称和移动之前相同,那么需要先注销卸载之前的 WSL。如果改名了,那么可以在后面再使用以下命令:
wsl --unregister 已安装的WSL名称
那么按照上文的导出,这里同样举个例子:
wsl -- unregister Ubuntu
然后导入 WSL 压缩包:
wsl --import WSL名称 安装目录 WSL压缩包文件地址
继续举个例子:
wsl --import Ubuntu G:\\WSL G:\\WSL\myUbuntu.tar
好了,这样就移动完成了,重启终端就可以继续使用了,不过数据啥的也没了。
希望可以帮到有需要的人~