将 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.pswp.cn/web/94226.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94226.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94226.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于STM32的病房监测系统/环境监测系统/人体健康监测系统

基于STM32的病房监测系统/环境监测系统/人体健康监测系统 持续更新&#xff0c;欢迎关注!!! 基于STM32的病房监测系统/环境监测系统/人体健康监测系统 随着科技的进步与人们健康意识的提升&#xff0c;环境与人体健康监测的需求日益增长。在医疗、居住和工作环境中&#xff0c…

【适合中小企业应用的Flask网站部署指南】【小白指南系列】如何在Windows Server服务器上部署Flask网站和SSL证书开启HTTPS

【适合中小企业应用的Flask网站部署指南】【小白指南系列】如何在Windows Server服务器上部署Flask网站和SSL证书开启HTTPS 前言&#xff1a; 上一篇文章已经配置好Redis数据库和网站雏形建立了。现在完善了一个比较重大的功能和进度之后&#xff0c;我们尝试初步将Flask项目网…

std::exchange详解

一、基本概念与函数原型 std::exchange 是 C++14 引入的标准库函数,定义于 <utility> 头文件。其核心功能是原子性地替换对象的值并返回旧值,适用于资源管理、状态机更新等场景。 函数原型: template <class T, class U = T> T exchange(T& obj,

kubernetes-dashboard使用http不登录

安装了k8s v1.28&#xff0c;想要安装kubernetes-dashboard以便可视化管理平台&#xff0c;网上很多资料都是版本比较低的&#xff0c;自己摸索了很久&#xff0c;终于搞定了。直接上配置文件&#xff0c;拿去kubectl apply -f k8s-dashb.yml就行了。 # Copyright 2017 The Kub…

道路车道线分割数据集左车道右车道中线labelme格式3494张4类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数)&#xff1a;3494标注数量(json文件个数)&#xff1a;3494标注类别数&#xff1a;4标注类别名称:["center_lane","right_lane","…

12.Shell脚本修炼手册--函数的基础认知与实战演练(fock炸弹!!)

Shell 函数的知识与实践 文章目录Shell 函数的知识与实践Shell 函数介绍Shell 函数的语法Shell 函数的执行1. 不带参数的函数执行2. 带参数的函数执行Shell 函数的基础实践示例 1&#xff1a;简单的 hello 函数&#xff08;验证 “先定义后调用”&#xff09;示例 2&#xff1a…

微信小程序设计的请求封装方案(request.js)

以下是为微信小程序设计的请求封装方案&#xff0c;包含代码示例和最佳实践建议&#xff1a; 基础请求封装&#xff08;request.js&#xff09; // 基础配置 const BASE_URL https://api.yourdomain.com; const TIMEOUT 10000;// 请求封装函数 const request (options) >…

【Linux系统】进程信号:信号的处理

上一篇文章在介绍完信号的产生和保存后&#xff0c;我们现在对信号有了一个基本的认识&#xff0c;信号由键盘、系统调用、硬件异常、软件条件等方式产生&#xff0c;然后被保存在三张表中&#xff0c;再将信号递达&#xff0c;操作系统有三种处理方式&#xff1a;默认处理、忽…

权限管理模块

登录相关权限管理模块(基础版)模块设计与实现优化点&#xff1a;前后端用户验证实现方式常见的攻击手段及防御手段权限管理模块(基础版) RBAC(Role-Base Access Control&#xff0c;基于角色的访问控制)&#xff1a;是权限管理的常用方案。 核心&#xff1a;通过用户 - 角色 -…

征服与守护:从拉里·埃里森看八号人格的职场王者之道

真正的强者&#xff0c;从不遵守别人的规则2010年&#xff0c;加利福尼亚州的圣何塞机场迎来了一架不速之客——一架意大利产的马基战斗机以一种极其霸道的姿态降落在跑道上。舱盖打开&#xff0c;走下来的不是空军飞行员&#xff0c;而是一位身穿飞行员服、戴着墨镜的企业家&a…

【Linux系统】命名管道与共享内存

前言&#xff1a; 上文我们讲到了匿名管道【Linux系统】匿名管道以及进程池的简单实现-CSDN博客 本文我们来讲一讲命名管道与共享内存 命名管道 上面我们讲到&#xff0c;匿名管道只能用于有血缘关系&#xff08;尤其父子&#xff09;的进程进行通信&#xff01;但如果…

搜索体验优化:ABP vNext 的查询改写(Query Rewrite)与同义词治理

&#x1f50e; 搜索体验优化&#xff1a;ABP vNext 的查询改写&#xff08;Query Rewrite&#xff09;与同义词治理 &#x1f4da; 目录&#x1f50e; 搜索体验优化&#xff1a;ABP vNext 的查询改写&#xff08;Query Rewrite&#xff09;与同义词治理1. 背景与问题界定 &…

Text2API与Text2SQL深度对比:自然语言驱动的数据交互革命

在数字化浪潮中&#xff0c;如何让人机交互更加自然流畅&#xff1f;Text2API与Text2SQL技术应运而生&#xff0c;它们如同魔法般将自然语言转化为机器可执行的指令&#xff0c;让数据交互不再高不可攀。本文将深入剖析这两项技术的原理、优劣势及应用场景&#xff0c;带您领略…

数据可视化与分析平台设计与实现案例

数据可视化与分析平台设计与实现案例(python) 下面分享一个完整的 Flask 数据可视化与分析平台代码,包含所有必要的组件和功能。这个平台允许用户上传数据文件、进行基本的数据清洗、生成各种可视化图表以及查看基础统计分析结果。 产品设计 核心功能 数据上传与管理(支…

Kotlin-基础语法练习二

接上一篇博客 每个 Kotlin 程序都是由两种部分组成的&#xff1a; 1、表达式&#xff08;Expressions&#xff09;&#xff1a;用于计算值的部分&#xff0c;比如 2 3、函数调用、变量赋值等&#xff0c;它们通常会返回一个结果。2、语句&#xff08;Statements&#xff09;…

与Deepseek对话了解单片机基础知识

keil5里的c语言编程的程序烧录到单片机里具体过程是啥&#xff1f;如何能把机器语言转换为电路控制&#xff1f; 步骤 所在位置 核心工具 输入->输出 比喻 1. 编译 Keil5 (PC) 编译…

利用背景图片定位套打档案封面

某些表单设计起来比较复杂&#xff0c;或只有表单的空白图片资料。Nhdeep档案目录套打工具&#xff08;nhdeep官网www.nhdeep.com&#xff09;支持将已有的表单图片作为模版背景图片&#xff0c;然后使用文本框进行精准的位置定位&#xff0c;再进行文本替换。 背景图片定位套…

微信HOOK 实现自动下载视频

1、前言 在收发消息的接口中&#xff0c;图片和文件这类接口是相对容易自动下载&#xff0c;但是视频的下载是需要手动点击的&#xff0c;并且只有这一种下载方式&#xff0c;实现自动化也比较困难&#xff0c;一些项目的开发中&#xff0c;需要自动下载收到的视频并保存&#…

【GPT入门】第57课 详解 LLamaFactory 与 XTuner 实现大模型多卡分布式训练的方案与实践

【GPT入门】第57课 大模型多卡计算1. 理论2.LLamaFacotory实践3. xtuner3.1 介绍3.1 安装3.2 xtuner训练3.4 训练后格式转换3.5 合并基础模型与lora模型3.6 参数说明3.7 训练过程主观检验1. 理论 deepspeed的三种训练方式 zero-1&#xff0c;优化器状态分片。的优势体现在多卡…