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

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.dtcms.com/a/346534.html

相关文章:

  • 把 AI 塞进「电梯按钮」——基于毫米波手势识别的零接触控制面板
  • 网站速度慢?安全防护弱?EdgeOne免费套餐一次性解决两大痛点
  • C语言文件操作精讲:从格式化读写到随机访问
  • 控制建模matlab练习16:线性状态反馈控制器-⑤轨迹追踪
  • 后台管理系统-15-vue3之登录页的实现
  • 谷歌浏览器重定向url,谷歌浏览器浏览网页修改url到本地
  • 批量归一化:不将参数上传到中心服务器,那服务器怎么进行聚合?
  • 基于JSqlParser的SQL语句分析与处理
  • ASCOMP PDF Conversa:高效精准的PDF转换工具
  • 【机器学习深度学习】多模态学习
  • 终结系统裸奔:Debian老旧版本安全加固终极指南
  • 李宏毅NLP-12-语音分类
  • 达梦数据库巡检常用SQL(三)
  • 全国网络安全知识竞赛有哪些
  • androidstudio 无法启动
  • Linux问答题:调优系统性能
  • 20250823给荣品RD-RK3588开发板刷Rockchip原厂的Android14【EVB7的V10】时调通AP6275P的WIFI
  • 卓伊凡的开源战略与PHP-SG16加密技术深度解析-sg加密技术详解-卓伊凡
  • 32位内部数据通路是什么?
  • mmdetection:记录算法训练配置文件
  • 【Linux系统】进程信号:信号的处理
  • TypeReference 泛型的使用场景及具体使用流程
  • C语言宏用法
  • 单例模式与线程池
  • Ollama 本地部署 Qwen2.5-7b
  • 神经网络|(十一)概率论基础知识-贝叶斯公式和全概率公式
  • 概率论基础教程第六章 随机变量的联合分布(二)
  • C++哈希表:unordered_map与unordered_set全解析
  • day12(练习题)
  • Java微服务架构设计模式详解