http://openwares.net/linux/reduce_qcow2_image_size_kvm.html

虚拟磁盘文件占用的空间会越来越大,就算从客户机里面删除了很多文件,但这些空间并未释放出来,qcow2文件仍然占用大量的主机存储空间。

虽然qcow2有一个特点,客户机需要时才分配存储空间,这工作的一直很好。但是当从客户机删除了很多文件,释放了很多空间时,从KVM主机端完全看不到qcow2虚拟磁盘文件有变小的迹象。这是因为现在的文件系统都有一个特点,删除文件时并没有真正的清除文件的内容,只是简单的做了标记,这样删除文件会很迅速,只有当用到这些空间时才重新写入新的数据。这也是反删除甚至反格式化软件存在的基础。所以要想缩小qcow2虚拟磁盘文件的大小,就要真正释放这些未使用的空间才可以。

不同的客户机类型有不同解决方式,基本思路就是用0填充未使用的客户机磁盘空间,然后用qemu-img转换磁盘镜像文件,转换后的磁盘镜像文件将只包含所有已使用的磁盘空间。

linux客户机

  1. 使用dd命令将客户机未使用的磁盘空间用0填满
    $dd if=/dev/zero of=~/junk
    dd: writing to `/home/***/junk': No space left on device
    然后
    $rm junk
    关闭客户机
  2. 转换磁盘镜像文件
    $qemu-img convert -O qcow2 debian.qcow2 debian_new.qcow2

    转换完成后可以看到debian_new.qcow2占用的KVM主机存储空间与客户机使用的磁盘空间基本是一致的。然后用新的磁盘镜像文件debian_new.qcow2启动客户机即可。

windows客户机

  1. 删除不需要的文件,清理系统垃圾,然后整理磁盘碎片
  2. 下载SDelete,借助sdelete用0来填充未使用硬盘空间

    查看sdelete帮助
    C:\>sdelete
    SDelete - Secure Delete v1.6
    Copyright (C) 1999-2010 Mark Russinovich
    Sysinternals - www.sysinternals.com

    usage: sdelete.exe [-p passes] [-s] [-q] ...
    sdelete.exe [-p passes] [-z|-c] [drive letter] ...
    -a Remove Read-Only attribute
    -c Clean free space
    -p passes Specifies number of overwrite passes (default is 1)
    -q Don't print errors (Quiet)
    -s or -r Recurse subdirectories
    -z Zero free space (good for virtual disk optimization)

    用0填充C分区空闲区域
    C:\>sdelete -z c

    关闭客户机

  3. 最后在KVM主机上转换qcow2磁盘镜像文件

    $qemu-img convert -O qcow2 windows.qcow2 windows_new.qcow2
    转换完成后可以看到windows_new.qcow2占用的KVM主机存储空间与客户机使用的磁盘空间基本是一致的。然后用新的磁盘镜像文件windows_new.qcow2启动客户机即可。

虚拟机内删除文件后减少qcow2虚拟磁盘文件实际占用的存储空间相关推荐

  1. 电脑快捷方式删除文件后四种找回方法

    快捷指令是一种用作替代快捷键操作的技术.也可以称为"快捷键","快捷方式"或"快捷键序列",它们允许用户在非常快速和方便的方式建立特定操作序 ...

  2. 微信小程序提示 “Error: 代码包大小为 2491 kb,上限为 2048 kb请删除文件后重试”

    遇到情况: 预览小程序时,提示 "Error: 代码包大小为 2491 kb,上限为 2048 kb请删除文件后重试" 看了一下官方说明如下: 目前小程序分包大小有以下限制: 解决 ...

  3. 删除文件后,磁盘空间没有释放的处理记录

    问题说明:IDC里的一台服务器的/分区使用率爆满了!已达到100%!经查看发现有个文件过大(80G),于是在跟有关同事确认后rm -f果断删除该文件.但是发现删除该文件后,/分区的磁盘空间压根没有释放 ...

  4. 解决linux删除文件后空间没有释放问题

    为什么80%的码农都做不了架构师?>>>    inux删除文件后沒有释放空间 今天发现一台服务器的home空间满了,于是要清空没用的文件,当我删除文件后,发现可用空间沒有变化 os ...

  5. MyEclipse在删除文件后servers报错问题解决

    MyEclipse在删除文件后servers报错"Could not create the view: An unexpected exception was thrown." 解 ...

  6. linux删除文件后没有释放空间

    linux删除文件后没有释放空间 今天发现一台服务器的home空间满了,于是要清空无用的文件,当我删除文件后,发现可用空间没有变化 os:centos4.7 现象: 发现当前磁盘空间使用情况: [ro ...

  7. linux删除文件后却没有释放空间

    系统:CentOS7 现象:服务器里 删除文件后发现并没有释放空间 如下:使用df -Th命令查看磁盘空间 发现空间已经满了 可是之前明明已经删除了一个大文件 但是空间没有被释放 原因: 在Linux ...

  8. Git 删除文件后找回方式总结

    文章目录 知识点排列 一.Git特性--.git只增不减 二.基于索引值的找回操作 git reset命令 参数对比 三.文件恢复的几类情景 1.工作区删除文件,在尚未提交删除记录到本地版本库前,恢复 ...

  9. 怎么找到win10由于删除文件后清空回收站的文件

    永久删除文件是很常见的数据恢复故障.在永久删除文件后如何恢复数据就显的尤为重要了,首先我们需要明白,在永久删除文件后不能往要恢复的误删文件所在的分区,存入任何新的文件,否则数据覆盖了就无力回天了.接下 ...

最新文章

  1. 「特征工程」之零基础入门数据挖掘
  2. 亚马逊全面回应:涵盖人脸识别、假货等 10 个问题
  3. 通过修改EIP寄存器实现强行跳转并且注入DLL到目标进程里
  4. MongoDB基础教程系列--目录结构
  5. 自动化测试框架搭建-报告-4
  6. java接口构建英雄属性_Java开发学习心得(三):项目结构
  7. 12.8 早晨我一直在假笑,为了骗自己
  8. C#设计模式之十二代理模式(Proxy Pattern)【结构型】
  9. 简单一致的Log4j2 Logger命名
  10. 【牛客刷题记录】2021-03-10
  11. java javah_Java开发网 - 一个javah的问题
  12. jdbc远程连接mysql url_jdbc连接mysql之url书写
  13. 简述局域网与分布式系统异同点
  14. 《Arduino家居安全系统构建实战》——1.1 家居安全的基础设施
  15. AcWing 1750. 救生员(差分+暴力枚举)
  16. Jenkins配置ansible
  17. 调用图(Call Graph)
  18. Java毕设项目银行贷款管理系统计算机(附源码+系统+数据库+LW)
  19. Cross-speaker Style Transfer with Prosody Bottleneck in Neural Speech Synthesis
  20. [PDDL人工智能] 01.PDDL规划器安装及入门详解(规划领域定义语言)

热门文章

  1. rpmfusion 的国内大学 NEU 源配置
  2. TP关闭调试模式后报错
  3. TI的C6000系列DSP,flashboot的实现
  4. linux软件逆向分析,详解对ELF64之手动脱壳的逆向分析
  5. 微信云开发的娱乐小程序 充电时余额疯狂涨钱模拟器
  6. 阿里云OSS怎么从新手怎么到大师
  7. 银屑病与大肠(调研手稿四)
  8. arm9260 linux编译,at91sam9260-linux建立最小系统
  9. [c#.net]SuspendLayout 和 ResumeLayout
  10. 超级巡警4.0 Beta6 发布,新增Arp防火墙!