news 2026/6/17 11:30:31

磁盘空间清理 dd+rm 方案原理分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
磁盘空间清理 dd+rm 方案原理分析

在导出.ova(Open Virtual Appliance,开源虚拟化镜像格式)前执行dd if=/dev/zero of=/empty bs=1M; rm /empty能大幅压缩镜像体积,核心原理是将虚拟机磁盘中的空闲扇区用0填充,让压缩算法能对连续0块进行高效压缩(甚至直接标记为空白跳过),解决了虚拟化环境中“空闲扇区数据杂乱导致压缩率低”的核心问题。

一、先搞懂:虚拟机磁盘的「伪空闲」问题

虚拟机的磁盘文件(如vmdk、qcow2,最终会被打包进.ova)有一个关键特性:删除文件后,磁盘的空闲扇区并非真正空白,而是保留了原文件的随机数据/碎片
原因在于:

  1. 操作系统删除文件时,仅修改文件系统的元数据(标记扇区为“可用”),不会擦除扇区中的实际数据;
  2. 虚拟机磁盘是「稀疏文件」(Sparse File)时,虽然未写入的扇区不会占用物理空间,但已写入后又释放的扇区,会保留原有数据并占据物理空间,且这些数据是随机的(如原文件的内容、缓存、日志碎片)。

而常规的压缩算法(如.ova默认的gzip压缩)对随机杂乱数据的压缩率极低(几乎压不动),但对连续的0字节压缩率接近100%(算法可直接用“N个0”的标记替代实际字节)。这是该清理方案的核心前提。

二、命令逐行解析:做了什么?

该命令是两步组合操作,核心是填充0→删除文件释放扇区,最终让虚拟机磁盘的空闲区域全为连续0。

1.dd if=/dev/zero of=/empty bs=1M

  • dd:Linux下的块设备数据拷贝工具,用于按指定大小读写数据;
  • if=/dev/zero:输入文件为/dev/zero(Linux特殊字符设备,无限输出0字节,无实际存储,仅在读取时生成0);
  • of=/empty:输出文件为当前根目录的empty,作用是用0字节填充这个文件
  • bs=1M:块大小为1MB,指定每次读写的字节数,决定填充速度(可根据磁盘性能调整,如4M、8M)。

执行效果:该命令会持续创建/empty文件,直到占满虚拟机磁盘的所有空闲空间(无可用扇区时自动停止),此时虚拟机磁盘中所有原本的空闲扇区都被0字节覆盖,原有的随机碎片数据被彻底替换。

2.rm /empty

  • rm /empty:删除刚创建的超大/empty文件;
  • 执行效果:操作系统标记/empty占用的扇区为“空闲”,但这些扇区的内容已经是连续的0字节,而非原来的随机数据。

三、核心逻辑:为什么填充0再删除,压缩率会暴增?

.ova的打包过程本质是将虚拟机磁盘文件、配置文件等打包并压缩,关键差异体现在填充0前后,空闲扇区的内容形态

状态空闲扇区内容压缩算法处理方式压缩后体积
未填充0随机碎片/原文件数据逐字节压缩,杂乱数据无规律,压缩率极低接近磁盘实际占用体积
填充0后删除连续0字节识别连续0块,用极简标记替代(如gzip的LZ77算法),几乎不占空间仅保留实际有数据的部分

简单来说:压缩算法对0的“压缩效率”是天花板级别的,而对随机数据几乎无效,该方案的本质是「将无意义的随机空闲扇区,转化为可被压缩算法极致优化的0扇区」。

总结

dd if=/dev/zero of=/empty bs=1M; rm /empty的核心原理可概括为「以空间换效率」:用0覆盖空闲扇区的随机数据,让压缩算法对连续0实现极致压缩,从而大幅降低.ova镜像的体积。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 23:19:49

花卉及病虫害检测数据集VOC+YOLO格式2199张44类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):2199标注数量(xml文件个数):2199标注数量(txt文件个数):2199标注类别…

作者头像 李华
网站建设 2026/6/14 9:20:13

如何用 unittest 写出高质量代码?

在 Python中 ,unittest 模块是进行单元测试的强大工具。无论你是初学者还是有经验的开发者,单元测试都是确保代码质量的重要一环。而 unittest 模块就是让这一过程变得简单、快捷的利器。 什么是单元测试? 在进入 unittest 模块之前&#x…

作者头像 李华
网站建设 2026/5/28 13:19:05

海水陆养如何实现远程监控与智慧管理

行业背景在传统水产养殖面临近海资源萎缩、环境监管趋严、养殖风险高的背景下,海水陆养作为一种新兴的工业化养殖模式,正逐步成为保障优质海产品供应、实现可持续发展的重要途径。该模式通过在陆地搭建可控的养殖环境(罐体、集装箱等&#xf…

作者头像 李华
网站建设 2026/6/13 21:58:56

N485QA柴油机飞轮壳设计

2.2 N485QA飞轮壳结构设计 2.21飞轮壳前端面孔设计: 根据柴油机拆卸实习可知,曲轴的后端面伸出曲轴箱外与飞轮配铰,根据测绘可知飞轮壳壳体直径为φ350mm;曲轴后端面直径为φ126.8 mm,故飞轮壳前端面孔设计尺寸应该为…

作者头像 李华
网站建设 2026/6/15 20:01:08

双碳目标下农田温室气体排放估算与模拟技术应用

农业是甲烷(CH4)、氧化亚氮(N2O)和二氧化碳(CO2)等温室气体的主要排放源,占全产业排放的13.5%。农田温室气体又以施肥产生的N2O和稻田生产产生的CH4为主,如何对农田温室气体进行有效…

作者头像 李华
网站建设 2026/6/13 4:32:44

机械手设计

1.1 机械手及其组成 1.1.1 什么是机械手 机械手是一种能模仿人手臂的某些动作功能,按固定程序抓取、搬运物件或操作工具的自动操作装置。它可代替人的繁重劳动以实现生产的机械化和自动化,能在有害环境下操作以保护人身安全,因而广泛应用于…

作者头像 李华