虚拟机删除文件后,虚拟磁盘占用空间并不会缩小,甚至在外面手动压缩都无法缩小,这是因为虚拟机并不能感知到客户系统删除了文件

实际上虚拟机虚拟磁盘压缩需要两步,需要首先在内部填0,然后在外面压缩才能缩小占用空间

下面是vmware和virtualbox下的虚拟机压缩虚拟磁盘的方法

【vmware】

在linux虚拟机内执行下列命令:

sudo vmware-toolbox-cmd disk wipe /
sudo vmware-toolbox-cmd disk wipe /home
sudo vmware-toolbox-cmd disk wipe /boot
sudo vmware-toolbox-cmd disk shrinkonly
# sudo vmware-toolbox-cmd disk list                : 列出可用<mountpoint>
# sudo vmware-toolbox-cmd disk wipe <mountpoint>   : 擦除<mountpoint>未使用空间
# sudo vmware-toolbox-cmd disk shrinkonly          : 压缩磁盘
# sudo vmware-toolbox-cmd disk shrink <mountpoint> : 擦除<mountpoint>未使用空间并压缩磁盘

在windows虚拟机内执行下列命令(需要管理员命令提示符):

"C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd" disk shrink c:\

命令会首先对未使用空间填0, 然后会弹出vmware的压缩虚拟磁盘进度条,进度条走完以后就压缩成功了

【virtualbox】

windows虚拟机首先需要在虚拟机内下载sysinternals的sdelete(假设放到了c:\):

SDelete - Sysinternals | Microsoft Learn

然后在虚拟机内执行下列命令(需要管理员命令提示符),对未使用的空间填0:

c:\sdelete c: -z

linux虚拟机首先需要在虚拟机内执行下列命令,对未使用空间填0:

sudo su -c 'dd if=/dev/zero of=/zero bs=512; rm -v /empty'
sudo su -c 'dd if=/dev/zero of=/home/zero bs=512; rm -v /home/empty'
sudo su -c 'dd if=/dev/zero of=/boot/zero bs=512; rm -v /boot/empty'
# 写全0文件不会导致虚拟磁盘体积膨胀
# empty文件一定要显示已删除后再重启,否则可能因为磁盘空间不足而无法登录

然后需要关闭虚拟机,在windows主机命令行下执行下面的命令压缩虚拟磁盘:

"C:\Program Files\Oracle\VirtualBox\vboxmanage" modifyhd "%USERPROFILE%\VirtualBox VMs\ubuntu\ubuntu.vdi" --compact

linux主机的命令:

vboxmanage modifyhd ~/VirtualBox\ VMs/ubuntu/ubuntu.vdi --compact

虚拟机压缩虚拟磁盘的方法相关推荐

  1. vmware虚拟机添加虚拟磁盘的方法

    1. 为VMware虚拟机添加虚拟磁盘 打开虚拟机-> 虚拟机设置 -> 磁盘 -> add -> hard disk -> next -> next -> ...

  2. linux 虚拟机 不休眠,不重启VMWare虚拟机添加虚拟磁盘的方法

    最近由于业务需要在不重启系统的前提下对系统进行扩容,前提是该系统做过lvm,但是没有足够的物理卷(硬盘),所以引出了改文,本文共分为上下两部分,这是第一部分. 目录 添加磁盘 做LVM 添加硬盘 为了 ...

  3. 11.JDK8内存模型、本地方法栈、虚拟机栈、栈帧结构(局部变量表、操作数栈、方法出口、虚拟机栈与本地方法栈的关系、寄存器、方法区、堆(Heap)、jvm中的常量池、Metaspace(元空间))

    11.JDK8内存模型 11.1.本地方法栈(Native Method Stacks) 11.2.虚拟机栈(Java Virtual Machine Stacks) 11.3.栈帧结构 11.3.1 ...

  4. 如何有效的压缩虚拟磁盘

    如何有效的压缩虚拟磁盘     在使用虚拟机时,可能虚拟硬盘文件占用了主机上的大量硬盘空间让你很头痛吧,那么如何有效的减少虚拟硬盘文件所占用的硬盘空间呢? 首先介绍一下VPC中虚拟硬盘压缩的原理,虚拟 ...

  5. Java虚拟机(九)——方法区

    文章目录 堆.栈.方法区的交互关系 线程是否共享: 三者的交互关系: 方法区的理解 方法区的位置 基本理解: 设置方法区大小 JDK7以前 JDK8及以后: 方法区的内部结构 方法区存储什么 类型信息 ...

  6. java虚拟机结构图解(堆栈方法区)

    目录: java虚拟机汇总 class文件结构分析 1).class文件常量池中的常量项结构 2). 常用的属性表的集合 类加载过程 1).类加载器的原理以及实现 虚拟机结构分析<<== ...

  7. 虚拟机启功失败解决方法

    由于没有正常的关闭虚拟机(如断电.关机等因素),导致下一次打开虚拟机的时候出现如下错误(虚拟机启动失败): 图片错误是由于管理员未授权虚拟机服务导致的,只需要在开始菜单输入msconfig,在系统配置 ...

  8. Ubuntu+Xen+Virt-manager创建全虚拟机化虚拟机(HVM)方法大合集 | CSDN 创作打卡

    Ubuntu+Xen+Virt-manager创建全虚拟机化虚拟机(HVM)方法大合集 环境 安装Xen 使用virt-manager安装Xen虚拟机 检查libvirtd服务状态 安装其他工具 安装 ...

  9. 虚拟机忘记密码解决方法

    虚拟机忘记密码解决方法 参考文章: (1)虚拟机忘记密码解决方法 (2)https://www.cnblogs.com/pinpin/p/10937152.html 备忘一下.

最新文章

  1. 前端常见跨域问题解决方案
  2. mybatis中${}和#{}的区别
  3. MAC下载JDK及安装AndroidStudio
  4. console对象的方法log()、info()、warn()、error()区别及几个实用的方法
  5. 面向对象并不是必要的
  6. [软件工程-设计模式] GRASP软件设计的模式和原则
  7. IT人终于把自己熬成了民工
  8. 网页百度云盘服务器有点忙,百度网盘使用提示网络异常,建议使用三种解决方法...
  9. LBP算法,空间金字塔 文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
  10. netstat 的10个基本用法
  11. Brackets - (HTML/CSS/JavaScript 前端 WEB IDE) 使用技巧
  12. livox_camera_calib的使用
  13. [人工智能-深度学习-32]:卷积神经网络CNN - 常见分类网络- AlexNet网络结构分析与详解
  14. 王道2023数据结构笔记
  15. 2022小美赛认证杯数学建模D题完整原创成品来啦!
  16. Python中的GPS轨迹聚类
  17. ffmpeg学习笔记
  18. 干货|6个牛逼的基于Vue.js的后台控制面板,接私活必备
  19. 为什么要做用户行为分析,怎么做好用户行为分析?
  20. python 3d图形库_PythonOCC 3D图形库学习—导入STEP模型

热门文章

  1. 基于matlab人眼虹膜检测,基于matlab虹膜识别源程序
  2. JVM 、JRE 、JDK 和SDK之间的关系
  3. 美团前端二面必会面试题(附答案)
  4. 自己动手在阿里云服务器上搭建一套zabbix+grafana监控系统
  5. FPGA时序约束篇之时序分析与时序约束的作用
  6. excel图表中,饼形图,色块颜色改变要倒一下色
  7. html blank.gif 1x1,Base64 Encode 1x1px透明GIF图片
  8. 计算机主机什么硬件组成,一台计算机电脑由什么组成,电脑的基础硬件有哪些!-电脑自学网...
  9. linux如何查看DMS的进程id,​linux启动进程的方式
  10. 2020.04.01愚人节与大家见面啦!