WSL2子系统迁移指南:从C盘到D盘及用户配置修复

张开发
2026/5/24 12:50:24 15 分钟阅读
WSL2子系统迁移指南:从C盘到D盘及用户配置修复
1. 为什么需要迁移WSL2子系统到D盘很多开发者刚开始使用WSL2时系统默认会把Linux子系统安装在C盘。随着使用时间的增加你会发现C盘空间越来越紧张。我自己就遇到过这种情况——原本100GB的C盘在安装了WSL2的Ubuntu系统后不到半年就只剩下不到20GB空间了。这主要是因为WSL2采用的是虚拟磁盘机制所有Linux系统的文件都存储在一个ext4.vhdx虚拟硬盘文件中。随着你在Linux系统中安装软件、下载文件、编译项目这个虚拟硬盘文件会不断膨胀。更麻烦的是Windows的磁盘清理工具无法识别和清理WSL2占用的空间。迁移到D盘或其他非系统盘有三大好处释放宝贵的C盘空间避免系统运行缓慢可以更自由地管理Linux系统的存储空间重装Windows系统时不会丢失WSL环境2. 准备工作安全迁移前的必要检查在开始迁移前有几个重要事项需要确认2.1 检查当前WSL2子系统状态首先打开PowerShell或CMD运行以下命令查看已安装的子系统wsl -l -v这会列出所有已安装的WSL发行版及其状态。确保你要迁移的子系统比如Ubuntu-22.04处于Stopped状态。如果显示为Running需要先关闭wsl --shutdown2.2 备份重要数据虽然迁移过程一般不会导致数据丢失但安全起见建议将/home目录下的个人文件备份到Windows系统记录下已安装的软件列表可以用apt list --installed如果有自定义的服务或配置最好也做个备份2.3 准备目标位置在D盘或其他目标盘创建一个新文件夹用于存放迁移后的系统比如D:\WSL\Ubuntu2204确保目标分区有足够的空间——至少是当前子系统占用空间的1.5倍。可以用以下命令查看当前子系统大小wsl --systeminfo3. 完整迁移步骤详解3.1 导出当前子系统首先将现有子系统导出为一个tar包。这个步骤相当于把整个Linux系统打包wsl --export Ubuntu-22.04 D:\ubuntu22.04.tar这个过程可能需要几分钟取决于你的子系统大小。我在迁移一个占用30GB空间的系统时大约花了15分钟。3.2 导入到新位置导出完成后就可以将系统导入到D盘的新位置了wsl --import Ubuntu-22.04 D:\WSL\Ubuntu2204 D:\ubuntu22.04.tar这里有几个注意事项第一个参数Ubuntu-22.04是发行版名称建议保持与原系统一致第二个参数是新系统的存储路径第三个参数是上一步导出的tar包路径导入完成后可以删除临时tar包释放空间del D:\ubuntu22.04.tar3.3 设置默认用户迁移后你可能会发现启动WSL时不再显示用户名这是因为导入的系统默认使用root账户。要恢复原来的用户设置需要执行ubuntu2204.exe config --default-user 你的用户名如果你不记得原来的用户名可以先以root身份登录WSL然后查看/etc/passwd文件。4. 常见问题及解决方案4.1 启动后找不到用户名这个问题我遇到过好几次其实原因很简单——WSL默认启动的子系统可能不是你刚迁移的那个。解决方法先查看所有子系统及其默认设置wsl -l -v wslconfig /list如果发现默认子系统不是你要的那个可以修改默认设置wslconfig /setdefault Ubuntu-22.044.2 命令无法使用如果发现某些命令不能用了可能是PATH环境变量出了问题。可以尝试检查/etc/environment文件是否完整重新安装相关软件包检查.bashrc或.zshrc配置文件4.3 磁盘空间没有释放有时迁移后C盘空间没有明显变化这是因为旧系统文件可能还在。可以注销原来的发行版wsl --unregister Ubuntu-22.04手动删除残留的vhdx文件通常在%USERPROFILE%\AppData\Local\Packages5. 高级技巧与优化建议5.1 自动挂载Windows磁盘为了让WSL更方便地访问Windows文件可以编辑/etc/wsl.conf文件[automount] enabled true root /mnt/ options metadata,umask22,fmask115.2 限制WSL2内存使用在用户目录下创建.wslconfig文件内容如下[wsl2] memory4GB processors25.3 定期清理无用空间在WSL内运行sudo apt autoremove sudo apt clean在Windows端可以压缩虚拟硬盘diskpart select vdisk fileD:\WSL\Ubuntu2204\ext4.vhdx attach vdisk readonly compact vdisk detach vdisk exit迁移WSL2子系统到D盘是个一劳永逸的操作特别是对于开发环境长期稳定的用户。我在三台不同配置的电脑上都成功完成了迁移最老的系统已经稳定运行两年多。如果遇到任何问题WSL的日志文件通常在%USERPROFILE%\AppData\Local\Temp能提供很多有用的调试信息。

更多文章