当前位置: 首页 > ai >正文

WSL Ubuntu数据迁移

将 WSL 中的 Ubuntu 迁移到其他磁盘可有效释放 C 盘空间并优化系统性能。以下是详细步骤及注意事项:


📍 ​​迁移步骤​

  1. ​备份 WSL 数据(防止意外丢失)​

    • 以管理员身份打开 PowerShell 或命令提示符。

    • 导出 Ubuntu 实例为压缩包(替换 <目标路径>为备份位置,如 D:\backup\ubuntu.tar):

      wsl --export Ubuntu <目标路径>.tar

      ​示例​​:

      wsl --export Ubuntu D:\backup\ubuntu.tar
  2. ​注销原 Ubuntu 实例​

    • 关闭所有 WSL 进程:

      wsl --shutdown
    • 注销 Ubuntu(​​此操作将删除 C 盘的原数据​​):

      wsl --unregister Ubuntu
  3. ​在新磁盘创建安装目录​

    • 在目标磁盘(如 D 盘)新建文件夹(如 D:\WSL\Ubuntu)。

      New-Item -ItemType Directory -Path "D:\WSL\Ubuntu" -Force
  4. ​导入 Ubuntu 到新位置​

    • 使用备份文件导入到新目录(指定 WSL 版本为 2):

      wsl --import Ubuntu "D:\WSL\Ubuntu" "D:\backup\ubuntu.tar" --version 2

      ⚠️ 确保路径无空格或特殊字符,避免导入失败。

  5. ​设置默认用户(可选)​

    • 若迁移后默认登录用户变为 root,需恢复原用户:

      ubuntu.exe config --default-user <原用户名>  # 如 "ubuntu2004.exe" 需替换为实际发行版名称

      ​示例​​:

      ubuntu2004.exe config --default-user jason
  6. ​验证迁移结果​

    • 启动 Ubuntu 并检查磁盘挂载点:

      wsl -d Ubuntu
      df -h  # 查看根目录是否为 `/`,且容量匹配新磁盘空间
    • 在 Windows 中检查新目录(如 D:\WSL\Ubuntu)是否生成 ext4.vhdx虚拟磁盘文件。


⚠️ ​​关键注意事项​

  1. ​权限与路径要求​

    • ​管理员权限​​:所有命令需在管理员权限的终端执行。

    • ​目标磁盘格式​​:必须是 NTFS 或 ReFS,支持大文件存储。

    • ​路径规范​​:避免使用中文或空格(如 D:\开发环境可能导致异常)。

  2. ​迁移后清理​

    • 确认迁移成功后,可删除备份文件(如 D:\backup\ubuntu.tar)释放空间。

    • 若原 C 盘残留数据(路径:%LOCALAPPDATA%\Packages\CanonicalGroupLimited*),可手动删除。

  3. ​多发行版处理​

    • 若系统存在多个 WSL 发行版,迁移前通过 wsl -l -v确认名称,避免误操作。


🔧 ​​故障排除​

  • ​导入失败​​:检查备份文件完整性(如通过 SHA256 校验),或重新导出导入。

  • ​用户配置丢失​​:若未执行步骤 5,手动创建用户并迁移数据:

    sudo adduser <新用户名>
    sudo usermod -aG sudo <新用户名>  # 赋予sudo权限
    sudo cp -r /home/<原用户>/* /home/<新用户>/
    sudo chown -R <新用户>:<新用户> /home/<新用户>
  • ​WSL 无法启动​​:尝试重置默认版本:

    wsl --set-default-version 2

💎 ​​总结​

通过导出-注销-导入流程,可安全迁移 Ubuntu 至新磁盘。迁移后需验证文件系统挂载点及用户配置,确保环境完整。若需进一步优化存储,可结合 Docker 数据路径迁移(参考 )全面释放 C 盘压力。

http://www.xdnf.cn/news/18468.html

相关文章:

  • 【数据分析】宏基因组荟萃分析(Meta-analysis)的应用与实操指南
  • 容器安全实践(三):信任、约定与“安全基线”镜像库
  • 应用篇#1:YOLOv8模型在Windows电脑摄像头上的部署
  • 26.内置构造函数
  • c# .net支持 NativeAOT 或 Trimming 的库是什么原理
  • 数据库优化提速(三)JSON数据类型在酒店管理系统搜索—仙盟创梦IDE
  • python企微发私信
  • 【React ✨】从零搭建 React 项目:脚手架与工程化实战(2025 版)
  • 文字学的多维透视:从符号系统到文化实践
  • 2025年09月计算机二级MySQL选择题每日一练——第五期
  • Go语言实战案例-Redis连接与字符串操作
  • 井云智能体封装小程序:独立部署多开版 | 自定义LOGO/域名,打造专属AI智能体平台
  • IDEA控制台乱码(Tomcat)解决方法
  • IDEA相关的设置和技巧
  • 机器人 - 无人机基础(5) - 飞控中的传感器(ing)
  • CTFshow Pwn入门 - pwn 19
  • 《天龙八部》角色安全攻防全解析:从渗透测试视角看江湖成败
  • 【Golang】有关任务窃取调度器和抢占式调度器的笔记
  • STM32F1 USART介绍及应用
  • 开发指南134-路由传递参数
  • 支持蓝牙标签打印的固定资产管理系统源码(JAVA)
  • linux编程----网络通信(TCP)
  • LLM实践系列:利用LLM重构数据科学流程04 - 智能特征工程
  • 博士招生 | 英国谢菲尔德大学 招收计算机博士
  • 项目中优惠券计算逻辑全解析(处理高并发)
  • Unreal Engine UStaticMeshComponent
  • JUC之CompletionService
  • DFS序与树链剖分入门
  • 开发避坑指南(35):mybaits if标签test条件判断等号=解析异常解决方案
  • 文件系统层面的可用块数量可用空间和比例