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 2wsl --shutdown Ubuntu
//如果是running, 則關閉Ubuntuwsl --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 2wsl --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 速度更快。