迁移 WSL2 安装位置
WSL2 默认安装在 C 盘,我们可以通过以下步骤迁移安装位置
通过以下命令列出已安装的 Linux 发行版:
wsl -l -v
可以看到已安装了 Ubuntu-22.04,其运行状态为:Stopped
如果运行状态为 Running,需先通过以下命令关闭:
wsl --shutdown
然后我们通过以下命令将 Ubuntu-22.04 导出为 tar 文件:
wsl --export Ubuntu-22.04 e:\Ubuntu-22.04.tar
注:
wsl --export <Distribution Name> <FileName>
<Distribution Name> 为目标 Linux 发行版的名称,我安装的为: Ubuntu-22.04
<FileName> 为导出的文件名,这里我导出到 e:\Ubuntu-22.04.tar
导出成功后,可以在导出的路径下看到导出的 tar 文件:
然后注销并卸载 Ubuntu-22.04
wsl --unregister Ubuntu-22.04
再次查看已安装的 Linux 发行版:
wsl -l -v
可以看到 Ubuntu-22.04 已经注销并卸载了
然后将 Ubuntu-22.04 导入到新位置:
wsl --import Ubuntu-22.04 E:\ubuntu2204 E:\Ubuntu-22.04.tar
注:wsl --import <Distribution Name> <InstallLocation> <FileName>
<Distribution Name> 为目标 Linux 发行版的名称,我安装的为: Ubuntu-22.04
<InstallLocation> 为要安装到的新位置,这里我安装到:E:\ubuntu2204
<FileName> 为要导入的文件名,这里导入刚才导出的 e:\Ubuntu-22.04.tar
导入完成后,再次查看已安装的 Linux 发行版:
wsl -l -v
可以看到 Ubuntu-22.04 已成功导入到新的位置
最后需要更改一下默认用户:
Ubuntu2204 config --default-user lin
注:<DistributionName> config --default-user <Username>
<Distribution Name> 为目标 Linux 发行版的名称,我安装的为: Ubuntu-22.04,命令里要写为:Ubuntu2204
<Username> 为 WSL 发行版中存在的用户名,在设置 Linux 用户名和密码时我创建的用户为:lin ,所以命令里的 <Username> 这里就为:lin
以上步骤完成后,看到指定安装的新位置下有 .vhdx 文件:
说明迁移成功
迁移 docker-desktop-data 和 docker-desktop 安装位置
Docker Desktop 会创建两个发行版:docker-desktop-data 和 docker-desktop,它们的默认位置在 C:\Users<你电脑的用户名>\AppData\Local\Docker\wsl,我们同样可以参考上面导入导出 Ubuntu-22.04 的过程将docker-desktop-data 和 docker-desktop 迁移到其他位置
wsl --export docker-desktop-data e:\docker-desktop-data.tar
wsl --export docker-desktop e:\docker-desktop.tar
wsl --unregister docker-desktop-data
wsl --unregister docker-desktop
wsl --import docker-desktop-data E:\wsl\docker-desktop-data E:\docker-desktop-data.tar
wsl --import docker-desktop E:\wsl\docker-desktop E:\docker-desktop.tar
以上步骤完成后,看到指定安装的新位置下有以下 .vhdx 文件,说明迁移成功