磁盘空间不足?从您的 Linux VirtualBox 虚拟机中回收它

WBOY
发布: 2024-08-14 12:41:49
原创
574 人浏览过

VirtualBox 允许您在虚拟机中运行 Linux,并且您经常会发现虚拟磁盘的大小不断增长,即使您已经清除了其中的文件。我将向您展示如何将这些卷缩小到原来的大小、压缩它们并节省磁盘空间。

为什么你的 VirtualBox Linux 来宾不会自动缩小

如果你已经将 VirtualBox 与 Windows 来宾一起使用(在虚拟机术语中,“来宾”是在虚拟机中运行的操作系统),你可能已经习惯了当您从中删除文件时,VirtualBox 磁盘卷会缩小,因此它们仅占用物理磁盘上包含文件所需的空间。

这是 VirtualBox 动态分配功能的预期目的,但它不适用于 Linux guest 虚拟机。当使用 Linux 来宾时,许多用户发现磁盘增长到其完整大小,然后随着文件从其中删除而永远不会缩小。

这是由于 Linux 管理其文件系统以及与其 VirtualBox 主机交互的方式造成的。当出于性能原因删除文件时,Linux 不会“清零”(用空数据覆盖)文件,因此 VirtualBox 无法判断虚拟磁盘上的哪些数据是活动数据以及哪些数据被删除。

您可以通过自己将数据清零并告诉 VirtualBox 压缩卷,使其恢复到实际大小来解决此问题。这是如何完成的。

如何从 VirtualBox 中的 Linux 虚拟机回收磁盘空间

要从 Linux 来宾虚拟磁盘回收磁盘空间,您需要做的第一件事是确保启用动态分配。如果不是,您需要将磁盘转换为动态分配的磁盘。

Running Out of Disk Space? Reclaim It From Your Linux VirtualBox VM

接下来,备份您的虚拟磁盘。如果出现问题(例如命令输入错误,或者过程中途断电),您将面临丢失 Linux 虚拟机中所有数据的风险。

接下来,在 Linux 客户机上的终端中运行以下命令:

sudo dd if=/dev/zero of=/var/deleteme
登录后复制

此命令会将清零(空)数据写入文件 /var/deleteme,直到磁盘完全填满。这将覆盖您之前删除的所有文件,解决 Linux 不会自动覆盖已删除数据的问题。

请小心使用 dd 命令,因为它会在没有警告的情况下覆盖数据!运行命令和路径之前请仔细检查它们。

此过程可能需要一些时间,具体取决于卷的大小,因此请耐心等待,不要中断它。一旦完成,该进程将退出(可能会出现空间不足的错误)。一旦发生这种情况,您可以删除清零文件并关闭 Linux 来宾:

sudo rm -rf /var/deleteme <p> sudo shutdown now -h</p>
登录后复制

现在,虚拟磁盘上未使用的空间已被清零,VirtualBox 将能够通过收缩来回收主机上的空间它。最后一步是使用 vboxmanage 命令压缩虚拟磁盘映像。通过运行以下命令来执行此操作:

<code class="hljs ">vboxmanage modifymedium disk /path/to/image.vdi -compact</code> 
登录后复制

您必须将 /path/to/image.vdi 更改为要压缩的虚拟磁盘的路径。如果您使用的是 Windows,则需要像这样使用 VBoxManage.exe:

VBoxManage.exe modifymedium disk /path/to/image.vdi -compact
登录后复制

如果您的 Windows 系统上的命令行无法使用 VBoxManage.exe,请继续阅读有关如何启用它的说明。

dd Linux 命令做了什么?

这种压缩 VirtualBox Linux guest 虚拟机的方法利用 dd 命令将空文件写入磁盘,以便 VirtualBox 可以识别空空间。

dd(数据复制器)命令可以转换和复制文件,也可以用于写入数据。传递给它的“if”选项提供输入文件(在本例中/dev/zero 提供零值数据或空数据的恒定流)。 “of”选项指定输出文件,并将此零数据流写入其中。这将持续到磁盘已满,因为 /dev/zero 永远不会停止提供空数据。

在 Windows 中使用 VboxManage.exe

默认情况下,VBoxManage.exe 在 Windows 命令行上不可用。您可以通过更新 Windows 系统路径以包含 VirtualBox 安装目录来添加它,或者在使用它时调用可执行文件的完整路径:

& "C:/Path/To/VBoxManage.exe" modifymedium disk /path/to/image.vdi -compact
登录后复制

“&”符号,称为调用运算符,执行引用的命令。这允许您在可执行文件的路径中使用空格。

关于管理 VirtualBox 来宾的更多信息

随着来宾的增长,您可以增加或减少其虚拟磁盘的大小。快照可让您获取虚拟机在某个时间点的状态并保存;如果您稍后想要回到当时的情况(例如在测试配置更改后),您可以简单地回滚,一切都会保持原样。

VirtualBox 是一款功能强大的虚拟化工具,专业开发人员可以使用它来构建和测试软件,家庭用户也可以使用它在现代计算机上运行旧软件和游戏,或者运行其他操作系统,而无需购买第二台机器。您可以在 MacOS、Windows 和 Linux 主机上运行 Windows、Linux、ChromeOS、Android 和其他操作系统。

您的更改已保存

电子邮件已发送

电子邮件已发送

请验证您的电子邮件地址。

发送确认电子邮件

您已达到帐户中以下主题的上限。

以上是磁盘空间不足?从您的 Linux VirtualBox 虚拟机中回收它的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:howtogeek.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!