WSL释放空间

在 WSL (Windows Subsystem for Linux) 中,Linux 发行版可能会占用越来越多的磁盘空间,即使删除文件后,空间也可能不会自动释放。这是因为 WSL 使用虚拟硬盘(VHDX 文件)来存储 Linux 文件系统,而 Windows 不会自动回收未使用的空间。下面介绍几种释放 WSL 磁盘空间的方法。

一. 清理 WSL 磁盘空间

1. 在 Linux 中清理不必要的文件

#清理 apt 缓存(Ubuntu/Debian)
sudo apt clean#删除不再需要的软件包
sudo apt autoremove#查找并删除大文件(例如日志文件)
sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;
sudo journalctl --vacuum-size=50M  # 清理 systemd 日志#删除临时文件
sudo rm -rf /tmp/*

2. 在 Windows 中手动压缩 WSL 虚拟磁盘

WSL 2 使用 ext4.vhdx 文件存储数据,即使删除文件,该文件也不会自动缩小。可以手动压缩:

powershell
#2.1. 关闭 WSL
wsl --shutdown#2.2. 找到你的 WSL 发行版名称(如 Ubuntu-22.04)
wsl -l -v#2.3. 导出 WSL 发行版(可选备份)
wsl --export <发行版名称> <备份文件.tar>
# 例如:wsl --export Ubuntu-22.04 Ubuntu-backup.tar#2.4. 注销当前发行版(会删除数据!)
wsl --unregister <发行版名称># 2.5. 重新导入发行版(使用之前备份的 tar 文件)
wsl --import <发行版名称> <安装路径> <备份文件.tar> --version 2
# 例如:wsl --import Ubuntu-22.04 C:\WSL\Ubuntu Ubuntu-backup.tar --version 2#2.6. 设置默认用户(如果是 Ubuntu)
ubuntu2204.exe config --default-user <用户名>
⚠️ 注意:此方法会完全重建 WSL 发行版,确保先备份重要数据!

二. 使用 diskpart 压缩 WSL 虚拟磁盘

如果不想重新导入 WSL,可以尝试手动压缩 ext4.vhdx 文件:

powershell
#1. 关闭 WSL
wsl --shutdown#2. 打开 diskpart
diskpart#3. 选择 WSL 虚拟磁盘
select vdisk file="C:\Users\<你的用户名>\AppData\Local\Packages\<WSL发行版>\LocalState\ext4.vhdx"
如:select vdisk file="C:\Users\Lenovo\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"#4. 压缩磁盘
compact vdisk#5. 退出 diskpart
exit
📌 提示:ext4.vhdx 的路径可能不同,可以在 %LOCALAPPDATA%\Packages 下查找。

三. 调整 WSL 2 最大磁盘占用

WSL 2 默认会动态扩展磁盘,但可以限制其最大大小:

创建或编辑 %USERPROFILE%.wslconfig 文件:

ini
[wsl2]
memory=4GB    # 限制内存
swap=2GB      # 限制交换空间
localhostForwarding=true
disk=50GB     # 限制最大磁盘占用(例如 50GB)
重启 WSL:powershell
wsl --shutdown

四. 使用 wsl --export 和 --import 重建 WSL

如果 WSL 占用空间过大,可以导出并重新导入:

powershell
#1. 导出当前 WSL 发行版
wsl --export Ubuntu-22.04 Ubuntu-22.04-backup.tar#2. 注销旧发行版
wsl --unregister Ubuntu-22.04#3. 重新导入(可选择新位置)
wsl --import Ubuntu-22.04 C:\WSL\Ubuntu Ubuntu-22.04-backup.tar --version 2#4. 设置默认用户
ubuntu2204.exe config --default-user <用户名>

 总结

WSL磁盘空间清理方法对比
方法适用情况效果
apt clean + autoremove清理临时文件释放部分空间
diskpart compact手动压缩 VHDX减少虚拟磁盘占用
.wslconfig 限制大小防止 WSL 占用过多空间长期控制
wsl --export/import彻底重建 WSL最有效但较麻烦

建议先尝试 方法 一(清理 Linux 缓存) 和 方法 二(diskpart 压缩),如果仍然占用过高,再考虑 方法 四(重建 WSL)。

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

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

相关文章

C#核心知识

委托 如何声明一个委托&#xff1a;通过 【delegate 返回值类型 委托名称】 的格式来定义 如何使用一个委托&#xff1a;使用new关键字&#xff0c;并传入和声明委托的构造相同的方法名&#xff0c;比如&#xff1a;new 委托名称(与委托的参数和返回值相同的一个方法名) 如何…

免费LUT网站

FREE LUTs | Color Lookup Tables - Presetpro.com

力扣-160.相交链表

题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返…

架构风格对比

架构风格深度对比&#xff1a;从管道-过滤器到微内核 &#x1f4dc; 引言 在软件架构设计中&#xff0c;不同的架构风格适用于不同的业务场景。本文将深入解析 7种主流架构风格&#xff0c;包括它们的核心思想、优缺点、适用场景&#xff0c;并通过对比表格和示例帮助您选择最…

「Mac畅玩AIGC与多模态05」部署篇03 - 在 Mac 上部署本地向量化模型(Embedding Models)

一、概述 本篇介绍如何在 macOS 环境下,为 Dify 平台部署本地向量化模型(Embedding Models),支持知识库文档向量化、语义检索与智能体上下文增强。向量化模型是实现知识库问答与 RAG(检索增强生成)应用的基础组件。 二、部署流程 1. 环境准备 确认 Docker Desktop 正常…

shell(3)

1.介绍 定义变量的规则 1.变量名称可以由字母,数字和下划线组成,但是不能以数字开头. 5A200() 2.等号两侧不能有空格. 3.变量名称一般习惯为大写,这是一个规范. 2.将命令的返回值只赋给变量 1、A&#xff40;date&#xff40;反引号,运行里面的命令,并把结果返回给变量A. 注&a…

人智交互中的AI世代

人智交互中的AI世代 一、研究背景与意义 1.1 技术演进背景 人工智能技术自1956年达特茅斯会议提出概念以来&#xff0c;经历了多次技术迭代与产业周期。2020年后&#xff0c;以大语言模型&#xff08;LLMs&#xff09;和生成式AI&#xff08;AIGC&#xff09;为代表的突破性进…

4.环境变量

目录 1.并行与并发 2. 环境变量 2.1 举例子 2.2 命令行参数 2.3 环境变量 1.并行与并发 并行&#xff1a;多个进程在多个CPU下分别、同时运行&#xff0c;称为并行 并发&#xff1a;多个进程在一个CPU下采用进程切换的方式&#xff0c;在一时间段内&#xff0c;多个进程同…

Spring Boot 中使用 Feign 调用内网 IP 接口并记录入参与出参

在微服务架构中&#xff0c;服务间的通信是常见的需求。Spring Cloud 提供的 Feign 客户端是一个声明式的 Web 服务客户端&#xff0c;它使得服务间的调用变得非常简单。然而&#xff0c;在实际开发中&#xff0c;我们可能需要调用内网 IP 地址的接口&#xff0c;并且希望记录请…

【Java】 使用 HTTP 响应状态码定义web系统返回码

系统状态码定义 public interface GlobalErrorCodeConstants {ErrorCode SUCCESS new ErrorCode(0, "成功");// 客户端错误段 ErrorCode BAD_REQUEST new ErrorCode(400, "请求参数不正确");ErrorCode UNAUTHORIZED new ErrorCode(401, "账号未登…

如何搭建spark yarn模式的集群

一、基础环境准备 ‌安装JDK 1.8‌ 所有节点需安装JDK并配置环境变量&#xff0c;确保JAVA_HOME正确指向安装路径14。‌部署Hadoop集群‌ 安装Hadoop&#xff08;推荐3.x版本&#xff09;&#xff0c;配置YARN资源管理器4。在yarn-site.xml中启用资源调度&#xff1a; <pro…

python22-元组、列表、字典、集合推导式

课程&#xff1a;B站大学 记录python学习&#xff0c;直到学会基本的爬虫&#xff0c;使用python搭建接口自动化测试就算学会了&#xff0c;在进阶webui自动化&#xff0c;app自动化 循环语句小作业 元组推导式列表推导式字典推导式实践是检验真理的唯一标准 推导式 简介 Pytho…

探索 CameraCtrl模型:视频生成中的精确摄像机控制技术

在当今的视频生成领域&#xff0c;精确控制摄像机轨迹一直是一个具有挑战性的目标。许多现有的模型在处理摄像机姿态时往往忽略了精准控制的重要性&#xff0c;导致生成的视频在摄像机运动方面不够理想。为了解决这一问题&#xff0c;一种名为 CameraCtrl 的创新文本到视频模型…

跨端开发技术总结

1.electron&#xff1a; 基于node.js 桌面端&#xff1a;window / linux / macos 手机端&#xff1a;无 页面&#xff1a;网页开发相关技术都可以 2.tauri 基于rust 桌面端&#xff1a;window / linux / macos 手机端&#xff1a;android / IOS 页面&#xff1a;网页开…

单片机-89C51部分:7、中断

飞书文档https://x509p6c8to.feishu.cn/wiki/A5gcwyL5giq1JOkkcsscn8eLnzf 一、中断的作用 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的&#xff0c;中断功能的存在&#xff0c;很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功…

0805登录_注册_token_用户信息_退出-网络ajax请求2-react-仿低代码平台项目

文章目录 1 JWT1.1 JWT结构1.2 工作流程1.3 优点1.4 缺点1.5 安全实践1.6. 适用场景1.7 JWT与OAuth2**8. 示例代码&#xff08;Node.js&#xff09;** 2 用户mock和api3 注册4 登录5 token存储6 请求拦截器设置token6 获取用户信息7 退出登录结语 1 JWT JSON Web Token&#x…

大模型入门

一、模型入门路径 1. 学习预备知识 编程语言&#xff1a;熟练掌握Python编程语言&#xff0c;包括基本语法、数据结构&#xff08;列表、字典、元组等&#xff09;、面向对象编程、文件操作等。Python有丰富的机器学习和深度学习库&#xff0c;方便进行大模型的开发和实验。数…

把dll模块注入到游戏进程的方法_插APC注入

一、概述 APC是异步过程调用,系统创建线程的时候会为线程创建一个APC队列,当线程调用SleepEx,WaitSingleObjectEx等函数时,并把线程状态被设置为可提醒状态时,线程并不会睡眠,而是检查APC队列是否为空,如果不为空,转去执行APC队列中的每一项,因此给目标进程中的线程插…

git 如何清空当前分支的历史提交记录,仅保留最后一次提交

本方法基于新建 Git 孤立分支实现&#xff1a; 1. ​​首先检出待清理的分支 在 IDEA 右下角检查当前分支名称 或执行 git branch 确认。如果不在目标分支上&#xff0c;会显示 (HEAD detached at xxxxx)&#xff0c;这时需要先切换分支&#xff1a; git checkout 原分支名 2.…

【C++】Googletest应用

Googletest 1 配置 使用cmake配置&#xff1a; 具体文件后面上传补充 ./test.out --gtest_filterXXXTest.xxx 2 gdb 为了跟踪流程&#xff0c;可以使用gdb&#xff1b; gdb ./xxx.out gdb --args ./gtest --gtest_filterxxx.xxx设置运行参数 set args --gtest_filterxxx.…