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