WSL (ext4.vhdx文件)占用空间过大,清理方式记录,同时更改 WSL 保存位置

news2025/4/20 10:52:38

一、问题

        之前使用 WSL Ubuntu 进行过开发板的 Yocto 项目编译,占用空间达到了 70GB 多的空间。后来进行了项目迁移,删除了 WSL 中的所有文件,但是从 Windows 查看空间占用却没有减少:

占用依然是 70 多,查阅发现 vhdx 文件不会自动收缩,其大小会根据历史使用量增长。

二、解决方案

方案一

        目前常见的方法是使用 diskpart 工具进行,它会重新计算实际有效数据的大小,并尝试释放未使用的空间,但具体效果取决于文件系统的空闲块是否被“清零”。

        在 PowerShell 中输入命令:

(1)关闭 WSL

wsl --shutdown

(2)打开 diskpart

diskpart

(3)找到对应的 vhdx 文件,依次执行

select vdisk file="C:\Users\<用户名>\AppData\Local\Packages\<DistroPackage>\LocalState\ext4.vhdx"
attach vdisk readonly  # 只读模式挂载
compact vdisk          # 压缩操作
detach vdisk
exit

        compact vdisk 会扫描虚拟磁盘,仅保留实际存储数据的区块,但前提是未使用的空间必须被显式填充为零(例如通过 dd if=/dev/zero)。如果删除文件后未清零,这些空间可能仍被视为“已占用”。

方案二(彻底)

        WSL export 通常用于更改 WSL 的安装目录或打包到其他电脑中使用。使用 WSL export 命令可以重新计算实际文件内容的大小并导出,而不是直接复制 vhdx 的原始大小。

(1)删除 /tmp 文件夹内的临时文件,我的大概删了 20 个 G

sudo rm -rf /tmp/*

 (2)关闭 WSL

wsl --shutdown

(3)在创建时可能会修改名字,查看已安装的 WSL

 wsl -l -v

显示:

(4)根据这个名字,导出为 tar 包:

wsl --export Ubuntu ./ubuntu.tar

我这里是放在了当前目录,建议放在磁盘的根目录,导出时方便些,我这里是 E 盘的根目录。

(5)删除当前的系统

wsl --unregister Ubuntu

此时可以看到,vhdx 文件已经删除了,剩下的文件如果需要更改安装目录,可以全部删除。

(6)导入到新的文件夹

wsl --import Ubuntu-22.04 F:\wsl_ubuntu22.04\ E:\ubuntu.tar --version 2

这里 Ubuntu-22.04 是新的系统名称,可以自行设置;F:\wsl_ubuntu22.04\ 是导入目录,就是要保存的目标文件夹;E:\ubuntu.tar 是导出的 tar 包;--version 2 设置 WSL 的版本。

(7)删除导出的 tar 包,查看导出结果

wsl -l

导出后的大小只有 3G:

(8)启动系统

        启动后默认会以 ROOT 用户登录,可以先查看原始用户是否存在:

ls /home

如果存在,则新建 /etc/wsl.conf 文件:

vi /etc/wsl.conf

写入:

[user]
default = xxx

这里填入自己的用户,然后重启 WSL:

wsl --shutdown

如果没有用户,那就新建一个,并且使用上面的方式设置默认登录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2338677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《软件设计师》复习笔记(14.2)——统一建模语言UML、事务关系图

目录 1. UML概述 2. UML构造块 (1) 事物&#xff08;Things&#xff09; (2) 关系&#xff08;Relationships&#xff09; 真题示例&#xff1a; 3. UML图分类 (1) 结构图&#xff08;静态&#xff09; (2) 行为图&#xff08;动态&#xff09; 4. 核心UML图详解 5.…

[文献阅读] EnCodec - High Fidelity Neural Audio Compression

[文献信息]&#xff1a;[2210.13438] High Fidelity Neural Audio Compression facebook团队提出的一个用于高质量音频高效压缩的模型&#xff0c;称为EnCodec。Encodec是VALL-E的重要前置工作&#xff0c;正是Encodec的压缩量化使得VALL-E能够出现&#xff0c;把语音领域带向大…

【操作系统原理01】操作系统引论

文章目录 大纲一、中断与异常0.大纲1. 中断的作用2. 中断类型2.1 内中断2.2 外中断2.3 判断内外中断 3. 中断机制原理 二、系统调用0. 大纲1.什么是系统调用2.系统调用分类 三、操作性系统内核(了解)0.大纲1.内核2.各种操作系统结构特性 四、操作系统引论0.大纲1.磁盘存储 图片…

最新得物小程序sign签名加密,请求参数解密,响应数据解密逆向分析

点击精选&#xff0c;出现https://app.dewu.com/api/v1/h5/index/fire/index 这个请求 直接搜索sign的话不容易定位 直接搜newAdvForH5就一个&#xff0c;进去再搜sign&#xff0c;打上断点 可以看到t.params就是没有sign的请求参数&#xff0c; 经过Object(a.default)该函数…

Day2—3:前端项目uniapp壁纸实战

接下来我们做一个专题精选 <view class"theme"><common-title><template #name>专题精选</template><template #custom><navigator url"" class"more">More</navigator></template></common…

Python基于知识图谱的医疗问答系统【附源码、文档说明】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

股指期货跨期套利是如何赚取价差利润的?

股指期货跨期套利&#xff0c;简单来说&#xff0c;就是在同一交易所内&#xff0c;针对同一股指期货品种的不同交割月份合约进行的套利交易。投资者会同时买入某一月份的股指期货合约&#xff0c;并卖出另一月份的股指期货合约&#xff0c;待未来某个时间点&#xff0c;再将这…

w297毕业生实习与就业管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

Java集合框架中的List、Map、Set详解

在Java开发中&#xff0c;集合框架是处理数据时不可或缺的工具之一。今天&#xff0c;我们来深入了解一下Java集合框架中的List、Map和Set&#xff0c;并探讨它们的常见方法操作。 目录 一、List集合 1.1 List集合介绍 1.2 List集合的常见方法 添加元素 获取元素 修改元素…

OpenStack Yoga版安装笔记(23)Swift安装

一、官方文档 Object Storage Install Guide — Swift 2.29.3.dev5 documentation 二、环境准备 之前的实验&#xff0c;已经有controller, compute1, block1节点&#xff0c;并已经完成Keystone、Glance、Nova、Neutron、Cinder等主要OpenStack Service的安装。 此处新增…

MRO 工业品电商系统:智能精准匹配,快速满足采购需求

在竞争激烈的工业领域&#xff0c;企业对 MRO 工业品的采购需求越来越多。但传统 MRO 采购存在信息不透明、客户选型困难&#xff0c;流程复杂处理周期长、库存信息不明确、成本高和客户价格管理混乱等诸多问题。随着电商发展&#xff0c;MRO 工业品电商系统出现&#xff0c;给…

2025年Q1数据安全政策、规范、标准以及报告汇总共92份(附下载)

一、政策演进趋势分析 &#xff08;一&#xff09;国家级政策新动向 数据要素市场建设 数据流通安全治理方案&#xff08;重点解析数据确权与交易规则&#xff09; 公共数据授权运营规范&#xff08;创新性提出分级授权机制&#xff09; 新兴技术安全规范 人工智能安全标准…

基于Python Django 的全国房价大数据可视化系统(附源码,部署)

博主介绍&#xff1a;✌程序员徐师兄&#xff0c;7年大厂开发经验。全网粉丝12w&#xff0c;CSDN博客专家&#xff0c;同时活跃在掘金、华为云、阿里云、InfoQ等平台&#xff0c;专注Java技术和毕业项目实战分享✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&a…

项目班——0408——qt的多线程开发

目录 一、并发、并行的概念 1. 并发 例子 2. 并行 二、qt的多线程开发 三、Qt多线程开发方法 1、可以使用QTthread 创建线程 来执行线程函数 2、可以借助moveToThread将对象转移到另一个线程中&#xff0c;然后执行 一、并发、并行的概念 1. 并发 多个任务在同一时间…

每天学一个 Linux 命令(25):more

​​可访问网站查看,视觉品味拉满: http://www.616vip.cn/25/index.html 每天学一个 Linux 命令(25):more 命令简介 more 是一个经典的分页显示文本文件内容的命令行工具,适用于逐页浏览长文本文件。它简单易用,适合快速查看内容,但功能比 less 更为基础(不支持向后翻…

如何0基础学stm32?

如何0基础学stm32&#xff1f; 作为一个混迹嵌入式领域十余年的老兵&#xff0c;每次看到"0基础学STM32"这样的提问&#xff0c;我都忍不住想笑&#xff0c;又有些无奈。这就像问"如何0基础学开飞机"一样—虽然理论上可行&#xff0c;但过程恐怕没那么愉快…

无需训练的具身导航探索!TRAVEL:零样本视觉语言导航中的检索与对齐

作者&#xff1a; Navid Rajabi, Jana Kosecka 单位&#xff1a;乔治梅森大学计算机科学系 论文标题&#xff1a;TRAVEL: Training-Free Retrieval and Alignment for Vision-and-Language Navigation 论文链接&#xff1a;https://arxiv.org/pdf/2502.07306 主要贡献 提出…

C#测试linq中的左连接的基本用法

使用linq联表或者连接两个对象集合查询时一般使用的是join关键字&#xff0c;返回结果中包含两个表或两个对象集合中连接字段相等的数据记录&#xff0c;如果要实现sql语句中的左连接效果&#xff0c;并没有现成的left join关键字&#xff0c;此时可以使用DefaultIfEmpty 实现左…

2025-04-19 Python 强类型编程

文章目录 1 方法标注1.1 参数与返回值1.2 变参类型1.3 函数类型 2 数据类型2.1 内置类型2.2 复杂数据结构2.3 类别选择2.4 泛型 3 标注方式3.1 注释标注3.2 文件标注 4 特殊情形4.1 前置引用4.2 函数标注扩展4.3 协变与逆变4.4 dataclass 5 高级内容5.1 接口5.2 泛型的协变/逆变…

spring-batch批处理框架(2)

文章目录 八、作业控制8.1 作业启动8.1.1 SpringBoot 启动8.1.2 Spring 单元测试启动8.1.3 RESTful API 启动 8.2 作业停止方案1&#xff1a;Step 步骤监听器方式方案2&#xff1a;StepExecution停止标记 8.3 作业重启8.3.1 禁止重启8.3.2 限制重启次数8.3.3 无限重启 九、Item…