VirtualBox虚拟机磁盘VDI文件压缩瘦身

这篇具有很好参考价值的文章主要介绍了VirtualBox虚拟机磁盘VDI文件压缩瘦身。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题现象

  • 2月7日下午四点多,我已经休假了,某县的客户运维方打来电话,说平台挂了,无法访问

  • 客户是提供的一台Windows server2016机器部署平台,是使用VirtualBox6.1工具安装的CentOS7.9虚拟机

  • 最终排查发现是虚拟机磁盘文件和备份快照磁盘文件一起把机器磁盘撑满了,机器空间不足引发了这个报错,有兴趣的可以看下《virtualbox虚拟机运行中断,启动报错“获取 VirtualBox COM 对象失败”》

  • 看了下虚拟机文件262G,备份快照218G,一下子就480G了,而机器只有500+G,加上其他文件,慢慢就爆满了

  • 使用 df -h命令查看,虚拟机总共也就占用100G左右,没有使用那么多

  • 搜索后,知道了一个原因:默认情况下VirtualBox会创建动态磁盘,而动态分配的虚拟磁盘,只是逐渐占用物理硬盘的空间(直至达到分配的大小)。不过当其内部空间不用时,不会自动缩减占用的物理硬盘空间
    VirtualBox虚拟机磁盘VDI文件压缩瘦身,Linux,工具使用,容器,虚拟机,virtualbox

  • 我自己测试了下,往虚拟机里上传了一个3GB的文件,发现.vdi文件增大了3G,我删除这个文件,.vdi文件并未变小

  • .vdi文件比较大时,生成备份快照或导出分享,都不太方便,当我们宿主机磁盘空间不足且无法新增磁盘扩展时,还是需要一个方法对.vdi文件进行瘦身,VirtualBox自带有这个工具

虚拟机文件目录结构

  • 进行磁盘清理前,我们需要先了解下VirtualBox相关的一些文件结构
  • VirtualBox没有指定的情况下,默认会在C盘(C:\Users\Administrator)创建2个文件夹,.VirtualBoxVirtualBox VMs
    VirtualBox虚拟机磁盘VDI文件压缩瘦身,Linux,工具使用,容器,虚拟机,virtualbox
  • .VirtualBox是虚拟机实时运行时维护的文件,包含定时更新的VirtualBox.xml和一些日志文件等
    VirtualBox虚拟机磁盘VDI文件压缩瘦身,Linux,工具使用,容器,虚拟机,virtualbox
  • VirtualBox VMs是默认创建的虚拟机文件存储位置,我们导入或新建的虚拟机都在这里面
    VirtualBox虚拟机磁盘VDI文件压缩瘦身,Linux,工具使用,容器,虚拟机,virtualbox
  • 对于使用virtualbox创建的虚拟机,默认情况下(没有备份快照时)会有这样的文件结构
- vName
  - Logs
    - VBox.log
    - VBoxHardening.log
  - vName.vbox
  - vName.vbox-prev
  - vName.vdi
  • 其中vName指虚拟机名称,.vbox文件是定时刷新的配置文件,.vbox-prev是配置的先前的备份文件.vdi是磁盘文件
  • 当我们有了备份快照时,会增加一个Snapshots文件夹
- vName
  - Logs
    - VBox.log
    - VBoxHardening.log
  - Snapshots
    - {ID1}.vdi
    - {ID2}.vdi
    - 2024-01-10T06-49-42-931165700Z.sav
  - vName.vbox
  - vName.vbox-prev
  - vName.vdi
  • 其中Snapshots文件夹里的.vdi,是该快照的磁盘文件,是相对于上一个快照(或根目录的vdi)的变动的文件。每个快照一个.vdi文件,该快照的变动,都会记录到该文件里。对于.sav文件,有时候创建、删除快照时,系统还是运行状态,文件是会变动的,就会存入.sav文件

  • 示例如下:
    VirtualBox虚拟机磁盘VDI文件压缩瘦身,Linux,工具使用,容器,虚拟机,virtualbox

  • 关于Snapshots.sav文件的更细的解释如下文章来源地址https://www.toymoban.com/news/detail-832053.html

在 VirtualBox 中,快照(Snapshots)功能允许您保存虚拟机(VM)的某个状态,这样您可以在未来的某个时间点恢复到该状态。这在进行可能会对系统造成重大更改的操作之前,比如安装软件、测试配置等情况下非常有用。

.sav 文件是 VirtualBox 快照的一部分,这是 VirtualBox 保存的虚拟机的内存状态文件。当您为虚拟机创建一个快照时,VirtualBox 实际上做了以下几件事情:

1. 它将虚拟机当前的物理内存状态保存到一个 .sav 文件中。
2. 它会保存虚拟机的当前设置和配置。
3. 它会记录虚拟磁盘在快照时间点的精确状态,从而在恢复快照时能回到该时刻。

当你选择恢复到某个快照时,VirtualBox 会读取 `.sav` 文件来把虚拟机的内存状态回复到当时的状况。结合磁盘镜像文件(例如,以 `.vdi`、`.vmdk` 等格式存储)的快照,这样完整的快照状态让虚拟机返回到之前保存快照时完全相同的工作状态。

简而言之,.sav 文件是虚拟机状态的一种形式,它对于快照功能是至关重要的,尤其是当您希望保留VM当前正在进行的操作以及内存中的数据时。
  • 对于VirtualBox工具,一般默认安装到C盘的C:\Program Files\Oracle\VirtualBox里,里面有该软件的所有文件,我们需要的虚拟机磁盘瘦身工具VBoxManage.exe也在里面
    VirtualBox虚拟机磁盘VDI文件压缩瘦身,Linux,工具使用,容器,虚拟机,virtualbox

处理方法

清除宿主机文件和虚拟机快照

  • 磁盘空间不足,可以是虚拟机或者宿主机,这里的问题主要是指宿主机磁盘
  • 可以删除宿主机机器磁盘上不用的文件、压缩包等,留出更多的磁盘空间给虚拟机
  • 可以通过VirtualBox工具删除多余的虚拟硬盘(已经删除的虚拟机,未删除虚拟机磁盘的),这些未被使用的磁盘会继续占用大量空间,不需要的情况下可以删掉
  • 也可以删除多余的备份快照,对于不需要的备份快照,即时删除,可以节省大量空间
  • 也可以定时删除和创建快照备份。删除备份时,快照与当前系统文件比较合并,相当于删除了绝大部分重复的文件,释放了很多空间,定时删除创建快照,这样保持快照文件不会特别大

虚拟机磁盘瘦身

  • 磁盘瘦身前,可以先删除所有的备份快照,只保留一个vdi文件存储我们的虚拟机状态,这样后续的磁盘瘦身更有效果
  • 除了处理快照,虚拟机磁盘本身也需要清理,可以删除不需要的文件,卸载不再使用的程序,清空回收站等,获取更多的可用空间
  • 文件删除会产生一些磁盘碎片,Windows系统是有一个磁盘碎片清理功能,而我们虚拟机的是CentOS7.9,可以使用dd命令实现,写文件再删除,需要用空数据去覆盖那些空间(未使用空间,包含磁盘碎片),再去删除,命令如下:
cd /
sudo dd if=/dev/zero of=/free
sudo rm -rf /free
  • 如果你不止一个root目录,还有home等,可以选一个剩余空间最大的盘,将 /free 换成对应的,如/home/free。注意:这个命令可能执行很久,和磁盘大小与类型有关
  • 最后,使用virtualbox自带的压缩命令对虚拟机硬盘文件进行压缩,对VDI文件压缩瘦身
  • dos窗口,执行命令 VBoxManage modifyhd v2.0.0-disk1.vdi --compact
  • 执行VBoxManage命令时,参数是是不允许有空格的,否则会报错,我们可以换个思路,进到磁盘VDI文件所在位置,再执行
    VirtualBox虚拟机磁盘VDI文件压缩瘦身,Linux,工具使用,容器,虚拟机,virtualbox
  • 使用 Win + R,输入cmd,进入DOS命令窗口,再进到虚拟机磁盘文件所在目录,以我当前截图的过VirtualBoxv2.0.0虚拟机为例,命令如下(实际执行请换成自己的目录路径和VDI文件名称):
cd C:\Users\Administrator\VirtualBox VMs\version\v2.0.0

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd v2.0.0-disk1.vdi --compact
  • 这个过程也会比较慢,可以看到类似这样0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%的进度条,执行完成后可以看到磁盘占用变小了
  • 注意:如果省掉磁盘清理那一步,也可以执行这个命令,只不过磁盘压缩效果不是很好
    VirtualBox虚拟机磁盘VDI文件压缩瘦身,Linux,工具使用,容器,虚拟机,virtualbox

到了这里,关于VirtualBox虚拟机磁盘VDI文件压缩瘦身的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VirtualBox宿主机和虚拟机文件互传设置

     一、如图1、2、3步骤,设置共享粘贴板和拖放为双向 二、 在启动的虚拟机设置的里面,安装增强插件,然后重启虚拟机。 三、在网络位置就可以看到了  

    2024年02月09日
    浏览(32)
  • virtualBox虚拟机中Ubuntu与windows共享文件夹

    说明:本文中提及的“ win_shared” 为windows中创建用于共享的文件名称,“~/share”为Ubuntu系统中挂载共享文件夹的目录名称。这两个地方需要根据大家的实际情况进行调整。 一、首先确保virtualbox安装好了增强工具功能 不知道如何安装增强功能的可以看这篇博客中的第四点 非

    2023年04月18日
    浏览(42)
  • Linux 可执行文件瘦身指令 strip 使用示例

    以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/lJ8vj-FszEoplMVcmT0I0w 在 Linux 系统下开发软件,输出的可执行文件可大可小,运行环境如果是在服务器那么可能资源比较充足,但如果是在嵌入式环境,那么存储资源是寸土必争

    2024年02月11日
    浏览(26)
  • Linux gpg命令(gpg指令、gpg加密工具)(GNU Privacy Guard、GnuPG)文件压缩加密、文件加密、文件解密、文件压缩密码、解压密码、GPG密钥、数字签名、非对称加密

    GNU Privacy Guard (GnuPG或GPG) 是一个完全免费的开源实现,用于OpenPGP标准的数据加密和解密。这种加密方式可以用于保护敏感数据,确保其在传输过程中不被截获或篡改。本文将介绍在Linux环境中如何使用GPG加密工具。 安装gpg 在大多数Linux发行版中,GPG已经预先安装了。 如果未安

    2024年02月03日
    浏览(41)
  • 【linux命令讲解大全】102.文件系统工具与虚拟机挂载工具介绍

    标签或UUID查找文件系统 findfs 命令依据卷标(Label)和UUID查找文件系统所对应的设备文件。 findfs 命令会搜索整个磁盘,看是否有匹配的标签或者UUID,如果有则打印到标准输出上。 findfs 命令也是 e2fsprogs 项目的一部分。 findfs (参数) LABEL=卷标 或者 UUID=UUID :按照卷标或者

    2024年02月09日
    浏览(30)
  • 【VirtualBox的虚拟机(Ubuntu)和Windows系统之间实现复制粘贴和共享文件夹】

    1.VirtualBox设置-常规-高级,将共享粘贴板和拖放设置为双向。 2.启动Ubuntu,设备-安装增强功能, 3.重启(reboot)Ubuntu,即可实现windows和ubantu之间共享复制粘贴。 Windows复制粘贴快捷键:Ctrl+C Ctrl+V Ubuntu复制粘贴快捷键:Ctrl+Shift+C Ctrl+Shift+V 1.设置共享文件夹 设置-共享文件夹-右边,

    2024年02月05日
    浏览(38)
  • VirtualBox 7.0.10 (macOS, Linux, Windows) - 开源跨平台虚拟化软件

    VirtualBox 7.0.10 (macOS, Linux, Windows) - 开源跨平台虚拟化软件 Oracle VM VirtualBox 7 请访问原文链接:https://sysin.org/blog/virtualbox-7/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 2022 年 10 月 10 日,VirtualBox 7.0.0 发布! 甲骨文今天发布了重要的新版本 Oracle VM VirtualBox,

    2024年02月17日
    浏览(39)
  • 虚拟机Linux磁盘扩容

    注意:有快照的虚拟机无法直接扩容,建议先备份,再删除快照,进行扩容,以防万一!!! 1.关闭虚拟机,右键虚拟机,选择\\\"设置\\\" 2.在虚拟机设置页面中,选择\\\"硬盘\\\",选择\\\"扩展\\\",输入 扩容后的硬盘大小,点击\\\"确定\\\" 3.启动虚拟机,执行 df -h查看磁盘空间 情况 4.使用 f

    2024年02月06日
    浏览(28)
  • VMware Horizon 8 2303 - 虚拟桌面基础架构 (VDI) 和应用软件

    请访问原文链接:https://sysin.org/blog/vmware-horizon-8/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Version 2303 Documentation Release Notes Release Date 2023-03-30 虚拟桌面基础架构 (VDI) 和应用软件 VMware Horizon 通过高效安全地将 虚拟桌面和应用 从本地部署环境交付到云端,

    2024年02月13日
    浏览(29)
  • 在Oracle VM VirtualBox中添加磁盘,并挂载磁盘

    一、打开虚拟机分配硬盘空间          这里别选错了,是SATA,要不然就可能把虚拟机送走了                 选择新加的磁盘空间             然后就会发现多了一个 二、在linux系统中格式化磁盘         如果是分配过的磁盘会有黄框内的分区信息,我们需要对/de

    2024年02月06日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包