Windows 11 WSL2 迁移到非系统盘(E 盘)教程

在 Windows 11 上,WSL2(Windows Subsystem for Linux 2)默认会将 Linux 发行版安装在系统盘(C 盘)用户目录下的 AppData\Local\Packages 目录。对于系统盘空间有限的用户,长期使用可能会占用大量存储空间。本文介绍如何 将 WSL2 发行版迁移到非系统盘(例如 E 盘),并保持系统完整性和可用性。


一、迁移前准备

  1. 确认已安装的 WSL 发行版

    打开 PowerShell(管理员权限)

    复制代码
    wsl -l -v

    输出示例:

    复制代码
    NAME STATE VERSION * Ubuntu Stopped 2 docker-desktop Stopped 2

    这里以 Ubuntu 为例。

  2. 确保 WSL 版本为 2

    复制代码
    wsl --set-version Ubuntu 2
  3. 备份重要数据

    虽然迁移不会破坏数据,但强烈建议先备份 Ubuntu 子系统内的关键文件。


二、导出 WSL 发行版

使用 wsl --export 将发行版打包为 .tar 镜像文件:

复制代码
wsl --export Ubuntu E:\WSL\Ubuntu.tar
  • Ubuntu:待迁移的 WSL 发行版名称

  • E:\WSL\Ubuntu.tar:导出的镜像文件路径(可根据实际情况修改)

该操作会生成完整的文件系统镜像,包括用户数据、配置文件和已安装的软件包。


三、注销原发行版

迁移前,需要注销旧的发行版,以便重新导入到新位置:

复制代码
wsl --unregister Ubuntu

⚠️ 注意:该操作会删除原 C 盘上的 Ubuntu 实例,但不会影响 .tar 镜像文件。


四、导入到目标盘(E 盘)

使用 wsl --import 将发行版导入到 E 盘目录:

复制代码
wsl --import Ubuntu E:\WSL\Ubuntu E:\WSL\Ubuntu.tar --version 2

参数说明:

  • Ubuntu:新实例名称

  • E:\WSL\Ubuntu:WSL 安装目录(实际存放 Linux 文件系统)

  • E:\WSL\Ubuntu.tar:导入的镜像文件

  • --version 2:指定使用 WSL2

导入完成后,E 盘下会生成完整的 Linux 根文件系统。


五、验证迁移结果

  1. 查看已安装的 WSL 发行版:

    wsl -l -v

输出示例:

复制代码
NAME STATE VERSION * Ubuntu Stopped 2
  1. 启动 Ubuntu:

    wsl -d Ubuntu

检查系统和数据是否完整。

  1. (可选)删除临时镜像文件以释放空间:

    del E:\WSL\Ubuntu.tar


六、迁移后的注意事项

  1. 性能

    WSL2 在非系统盘运行性能与系统盘几乎无差,但建议使用 SSD,避免机械硬盘 I/O 瓶颈。

  2. 备份策略

    迁移到其他磁盘后,也建议定期导出 .tar 镜像,避免意外数据丢失。

  3. 自动启动服务

    如果迁移前启用了 systemd 或后台服务,需要重新检查 /etc/wsl.confsystemctl 设置。


🔹 总结

通过 wsl --export + wsl --unregister + wsl --import 的方式,可以安全、可靠地将 WSL2 发行版迁移到非系统盘,释放 C 盘空间,同时保持 Linux 环境的完整性和可用性。

相关推荐
fly五行4 小时前
Windows 系统下使用 Docker 安装 Milvus 向量数据库
windows·docker·milvus
hello kitty w5 小时前
Python学习(11) ----- Python的泛型
windows·python·学习
加号35 小时前
【C#】获取电脑网卡MAC地址
windows·c#
QT 小鲜肉6 小时前
【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
linux·windows·笔记·学习·adb
-指短琴长-7 小时前
Docker基础【Ubuntu安装/Windows安装】
windows·ubuntu·docker
shykevin9 小时前
uni-app x导航区域跳转
windows·uni-app
讨喜Dobi10 小时前
深浅复制
windows
彷徨而立11 小时前
【C/C++】只知道窗口句柄,如何擦除窗口内容,清理窗口?
c语言·c++·windows
guojikun12 小时前
一键配置 Web 前端开发环境(PowerShell 自动化脚本)
windows·web前端·powershell
小白银子14 小时前
零基础从头教学Linux(Day 54)
linux·windows·python