WSL的ubuntu默认安装在C盘,数据文件位于:C:\Users\hzgdi\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx, 使用一段时间后,尤其时使用大量的docker image 和容器后,占用空间较大, 我的ext4.vhdx竟然达到了300多个G,下面介绍迁移ext4.vhdx到其它磁盘的方法, 有两种方法:

1.  export/import

以管理员权限打开power shell

wsl -l -v
//查询目前wsl状态
//  NAME      STATE           VERSION
// * Ubuntu    Running         2

wsl --shutdown Ubuntu
//如果是running, 则关闭Ubuntu

wsl --export Ubuntu D:\WSL\Ubuntu2204\export.tar
//导出Ubuntu 为export.tar,这可能需要几分钟时间

wsl --unregister Ubuntu
//去注册

wsl --import Ubuntu D:\WSL\Ubuntu2204\ D:\WSL\Ubuntu2204\export.tar --version 2
//导入export.tar, 数据保存至D:\WSL\Ubuntu2204\

Ubuntu config --default-user ricky
//设置默认用户

2. mklink 建立链接

以管理员权限打开power shell,

2.1 关闭运行的wsl

wsl -l -v
//查询目前wsl状态
//  NAME      STATE           VERSION
// * Ubuntu    Running         2
 
wsl --shutdown Ubuntu
//如果是running, 则关闭Ubuntu

2.2 拷贝C:\Users\hzgdi\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx 至路径 G:\WSL\Ubuntu\, 删除C:\Users\hzgdi\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx

2.3 将ext4.vhdx建立软连接,运行如下命令

cmd /c mklink "C:\Users\hzgdi\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx" "G:\WSL\Ubuntu\ext4.vhdx"

个人更喜欢第二种,mklink的比export/import 速度更快。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐