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

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

一、问题

        之前使用 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

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

相关文章:

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

一、问题 之前使用 WSL Ubuntu 进行过开发板的 Yocto 项目编译&#xff0c;占用空间达到了 70GB 多的空间。后来进行了项目迁移&#xff0c;删除了 WSL 中的所有文件&#xff0c;但是从 Windows 查看空间占用却没有减少&#xff1a; 占用依然是 70 多&#xff0c;查阅发现 vhdx…...

深入解析Java日志框架Logback:从原理到最佳实践

Logback作为Java领域最主流的日志框架之一,由Log4j创始人Ceki Glc设计开发,凭借其卓越的性能、灵活的配置以及与SLF4J的无缝集成,成为企业级应用开发的首选日志组件。本文将从架构设计、核心机制、配置优化等维度全面剖析Logback的技术细节。 一、Logback的架构设计与核心模…...

PCI总线和PCIe总线

本文来源&#xff1a;腾讯元宝 PCI&#xff08;Peripheral Component Interconnect&#xff0c;外围组件互连&#xff09;​​ 是一种由 ​​Intel​​ 在 ​​1991年​​ 提出的 ​​并行总线标准​​&#xff0c;用于连接计算机主板上的各种外设&#xff08;如显卡、网卡、声…...

《软件设计师》复习笔记(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.…...

Flash存储器(三):eMMC与UFS协议标准

目录 一.协议介绍 1.1 eMMC协议标准 1.1.1 设计背景 1.1.2 协议演进 1.2 UFS协议标准 1.2.1 设计背景 1.2.2 协议演进 二.特性对比 三.应用场景 在嵌入式存储领域&#xff0c;eMMC&#xff08;嵌入式多媒体卡&#xff09;和UFS&#xff08;通用闪存存储&#xff…...

在RK3588上使用哪个流媒体服务器合适

在RK3588平台上选择合适的流媒体服务器时&#xff0c;需考虑其ARM Cortex-A76/A55架构、硬件编解码能力&#xff08;如支持H.264/H.265/AV1解码&#xff09;以及Linux/Android系统支持。以下是推荐的方案&#xff1a; 1. 轻量级方案&#xff1a;GStreamer RTSP 适用场景&…...

PHP8.2.9NTS版本使用composer报错,扩展找不到的问题处理

使用composer install时报错&#xff1a; The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at y our own risk, by setting the ‘disable-tls’ option to true.…...

[文献阅读] 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.磁盘存储 图片…...

http请求和websocket区别和使用场景

这个问题问得很好&#xff0c;下面我分几部分来详细讲解 WebSocket 的传输能力、适用场景&#xff0c;以及为什么即使用了 WebSocket&#xff0c;我们仍然会用 HTTP 接口&#x1f447; ✅ 一、WebSocket 可以传输多少内容&#xff1f; 理论上&#xff1a; WebSocket 协议本身…...

动态规划经典例题:最长单调递增子序列、完全背包、二维背包、数字三角形硬币找零

一.最长单调递增子序列 设计一个O(n^2)时间的算法&#xff0c;找出由n个数组成的序列的最长单调递增子序列。 实验原理 状态转移方程&#xff08;递推公式&#xff09;&#xff1a; 对于每个 i&#xff0c;遍历之前的元素 j&#xff0c;如果 nums[j] < nums[i]&#xff0…...

最新得物小程序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…...

SQL系列:常用函数

1、【MySQL】合并字段函数&#xff08;列转行&#xff09; 它可以将两个字段中的数据合并到一个字段中。 1&#xff09;CONCAT函数 CONCAT函数可以将多个字段中的数据合并到一个字段中。它的语法格式如下&#xff1a; SELECT CONCAT(字段1,字段2,...字段N) FROM 表名;SELEC…...

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

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

yarn的三个资源调度策略

1. 容量调度器&#xff08;Capacity Scheduler&#xff09; 策略原理&#xff1a;将集群资源划分为多个队列&#xff0c;每个队列有固定的资源容量&#xff0c;且可以设置资源的最大和最小使用量。不同的用户或应用程序可以被分配到不同的队列中&#xff0c;在队列内部&#x…...

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

股指期货跨期套利&#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集合的常见方法 添加元素 获取元素 修改元素…...

让机器学习更透明:使用 Python 开发可解释性模型工具包

友友们好! 我是Echo_Wish,我的的新专栏《Python进阶》以及《Python!实战!》正式启动啦!这是专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会…...

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 更为基础(不支持向后翻…...

那就聊一聊mysql的锁

MySQL 的锁机制是数据库并发控制的核心&#xff0c;作为 Java 架构师需要深入理解其实现原理和适用场景。以下是 MySQL 锁机制的详细解析&#xff1a; 一、锁的分类维度 1. 按锁粒度划分 锁粒度特点适用场景​全局锁​锁定整个数据库&#xff08;FLUSH TABLES WITH READ LOC…...

python(八)-数据类型转换

#数据类型转换 #转换为整型int #字符串str--》整数int #纯数字的字符串可以转换&#xff0c;否则会报错 s 2025 n int(s) print(type(s),type(n)) print(n)#浮点数float--》整数int s1 2.23 print(int(s1))#bool-->整数int s2,s3 True,False print(int(s2),int(s3))#转…...

Python语法系列博客 · 第7期[特殊字符] 列表推导式与字典推导式:更优雅地处理数据结构

上一期小练习解答&#xff08;第6期回顾&#xff09; ✅ 练习1&#xff1a;统计文件行数 with open("data.txt", "r", encoding"utf-8") as f:lines f.readlines()print(f"总行数&#xff1a;{len(lines)}")✅ 练习2&#xff1a;反…...

如何0基础学stm32?

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