【WSL2教程】WSL迁移到非系统盘 | 您所在的位置:网站首页 › 系统盘数据迁移数据盘 › 【WSL2教程】WSL迁移到非系统盘 |
一、问题引入
默认情况下,WSL会安装在C盘(系统盘),而C盘空间有限,随着WSL子系统的使用,C盘空间越来越少,最后有可能出现C盘不足导致WSL系统崩溃。 有效的解决方法是,将WSL子系统迁移到其他盘(非系统盘)。 二、WSL磁盘迁移(方式一)wsl的安装及迁移至其他盘 1. 整体流程亲测有效。 查看wsl下的Linux是否为关闭状态,当wsl为Stopped才能进行下一步。 wsl -l -v C:\Users\xxx\Desktop>wsl -l -v NAME STATE VERSION * Ubuntu Stopped 2 3. 导出系统镜像以压缩包的形式导出到其他盘。 wsl --export Ubuntu D:\UbuntuWSL\ubuntu.tar 4. 注销原有的linux系统 wsl --unregister Ubuntu 5. 查看系统状态查看是否真的注销成功。 wsl -l -v 6. 导入系统wsl --import --version 2 (代表wsl2) wsl --import Ubuntu D:\UbuntuWSL\ D:\UbuntuWSL\ubuntu.tar --version 2 7. 修改默认用户打开wsl ubuntu之后,默认以root身份登录。 ubuntu.exe config --default-user vincent在导入任意盘linux系统时,我起名Ubuntu,所以这里是ubuntu.exe;如果你起的名字是Ubuntu-20.04,那这里就是ubuntu2004.exe;如果你起的名字是ubuntu-18.04,那这里就是ubuntu1804.exe。 vincent是原有wsl ubuntu的用户名称。 三、WSL磁盘迁移(方式二)拯救被WSL占满的C盘 1. 整体流程亲测有效。 在PowerShell中运行如下命令,停止正在运行的Linux子系统。 wsl --shutdown 4. 查看wsl状态查看wsl下的Linux是否为关闭状态,当wsl为Stopped才能进行下一步。 wsl -l -v C:\Users\xxx\Desktop>wsl -l -v NAME STATE VERSION * Ubuntu Stopped 2 5. 开始移动 cd d:\move-wsl-master .\move-wsl.ps1
输入目标路径如 D:\WSL 然后回车,便会执行移动。根据移动目标的大小,时间可长可短,请耐心等待。 移动完成后,脚本会删掉原来C盘中的相应内容,释放C盘空间。 6. 修改默认用户操作步骤,参考方式一。 四、回收Docker环境中的空间Docker用久了会残留很多无用的Image。这些Image文件少则几十上百兆,多则几个G,给本就捉襟见肘的磁盘空间造成巨大浪费, 这时可以删掉不需要的Image文件。但你可能愕然发现,即使删掉了好几个Image,磁盘依然没有苗条下来。 这是因为ext4.vhdx磁盘空间会根据加载的数据自动增长,但是无法自动回收。下面是手动回收的步骤。 1. 停止WSL子系统在PowerShell中运行如下命令,停止正在运行的Linux子系统。 wsl --shutdown 2. 运行diskpart释放空间 # open window Diskpart diskpart # 选择虚拟机文件执行瘦身 select vdisk file="D:\WSL\docker-desktop-data\ext4.vhdx" attach vdisk readonly compact vdisk detach vdisk exit 五、FAQ Q:WSL出现“灾难性故障” |
CopyRight 2018-2019 实验室设备网 版权所有 |