分享

如何缩小VirtualBox虚拟机并释放磁盘空间

 rookie 2018-11-25

默认情况下,VirtualBox会创建动态磁盘,随着数据的增加而增长。 但是,如果你稍后从虚拟机删除数据,你将注意到磁盘不会自动收缩。 但是,你可以使用隐藏命令手动收缩动态磁盘。

相关文章:如何创建和使用虚拟机。

记住,如果这个磁盘大小大小和你已经经删除了数据,这将只收缩磁盘。 因此,如果你刚刚创建了一个动态磁盘,这将不会。 但是,如果创建了动态磁盘,下载了 10 GB数据,然后删除了 10 GB的数据,那么应该可以将磁盘收缩约2 GB 。

第一步:确保你使用的是动态磁盘

这个过程只适用于动态磁盘,它可以在大小上增长和缩小。 动态磁盘可以能最大达到 size-50 GB,但它们只在包含大量数据时实际增长到最大值。 固定大小磁盘始终是它的最大大小。

相关文章如何在固定的和动态的磁盘之间转换在 VirtualBox

如果有固定大小的磁盘,你可以先将它的转换为动态磁盘,然后按照以下说明进行操作。 例如如果有固定磁盘大小为 50 GB且只有 10 GB的数据,将它的转换为动态磁盘,则应该能够将它的收缩为仅占用4 GB空间。

要检查磁盘中是否有动态或者固定大小的磁盘,请右击使用该磁盘的虚拟机并选择"设置"。 单击"存储器"选项卡并选择磁盘。 你将看到在"详情"旁边显示什么类型的磁盘。 例如在下面的截图中,"动态分配的存储"表示这是一个动态磁盘。

步骤2: 将零写入虚拟机中的磁盘

确保删除虚拟机中不再需要的任何数据,以便在继续操作之前释放空间空间。 删除不需要的文件,卸载不再使用的程序,清空回收站。 然后,你需要用零覆盖该空空间。

对于 Windows 客户机操作系统

如果在虚拟机中安装了 Windows,那么现在应该启动虚拟机并整理磁盘碎片。 在虚拟机内部,搜索 开始菜单的"碎片整理"并启动"磁盘碎片整理程序"或者"碎片整理和优化驱动器"工具。 选择要 compact的磁盘并单击"磁盘碎片整理磁盘碎片整理"。

完成碎片整理过程后,你将需要将零写入虚拟机内的空白空间。 删除文件时,的删除数据仍然存储在磁盘上,因此VirtualBox不能自动收缩驱动器。 但是,当你在删除的文件上写零时,to会看到大量零空空格,换句话说,可以以 compact 。

为此,从微软下载 SDelete命令行实用程序。sdelete.exe 文件解压缩到计算机上的文件夹。

打开一个命令提示符窗口。 为此,打开 开始菜单,搜索"命令提示符"并启动快捷方式。

通过键入 cd,按空格键入目录,然后按Enter键,更改为包含 sdelete.exe 文件的目录。 如果路径包含空格字符,请确保将该路径括在引号中。 它应该是这样的:

cd"C:pathtofolder"

例如如果你将 sdelete.exe 文件解压缩到用户的帐户文件夹,并且你的Windows 用户名是 Bob,则运行以下命令:

cd"C:UsersbobDownloads"

要快速填入目录路径,只需将 cd 键入命令提示窗口,按空格,然后从管理员栏中拖放文件夹 icon 。

运行以下命令:

sdelete.exe c: -z

这将为驱动器C 上的所有可用磁盘空间写入零:。 如果要缩小位于虚拟机中不同驱动器号的辅助驱动器,请键入它的驱动器号,而不是c: 。 这就是设计工具的目的。 作为微软注释网站上的SDelete页面,-z选项是"适用于虚拟磁盘优化"。

你将被要求在继续之前同意许可协议的许可。 只需单击"一致"。

等待进程完成。 完成后,使用 开始菜单 中的"关闭"选项关闭你的虚拟机。 你现在已经准备好 compact 了。

针对Linux客户机操作系统

如果你在虚拟机中安装 Linux,而不是 Windows 客户操作系统,则可以以跳过碎片整理程序。 我们将使用Ubuntu作为示例,但是这个过程在其他Linux发行版中是相似的。

为此,你首先需要在虚拟机内安装 zerofree 实用程序。 它应该在你的发行版软件的Linux软件中可用。 例如你可以在虚拟机中运行以下命令,在你的虚拟机中运行以下命令:

sudo apt install zerofree

你不能在引导到标准Linux环境时在/分区上使用 zerofree 。 相反,你需要引导到一个特殊的恢复模式,你的正常 root 分区没有安装。 在Ubuntu上,重新启动虚拟机,然后重复按"esc"键,在它启动时访问Grub菜单。 当Grub菜单出现时,选择"。*advanced的选项"并按Enter键。

选择与最近的Linux内核关联的"( 恢复模式) 选项,即在列表顶部有最高版本号的选项,然后按Enter键。

在恢复菜单中选择"root"以引导到 root shell 提示符。

当"按Enter键进行维护"出现在屏幕上时,按"输入"键。 你会得到一个终端提示。

在 命令行 中,通过运行以下命令确定要为零的虚拟磁盘:

df

在下面的输出中,我们可以看到 /dev/sda1 是我们唯一的磁盘设备。 我们知道,因为它是唯一一个在最左边的列中有 /dev/的磁盘。

假设虚拟机使用默认设置创建,它将只有 /dev/sda1,这是第一个硬盘驱动器上的第一个分区。 如果你使用多个磁盘或者多个分区设置了不同的设置,则可能需要零个分区或者零个分区。

现在已经准备好零磁盘。 使用下面的命令,将 /dev/sda1 替换为要写入零的分区的设备名。 大多数人都会有一个 /dev/sda1 设备。

zerofree -v/dev/sda1

完成零进程后,运行以下命令以关闭虚拟机:

halt

在屏幕上看到"系统已经停止"消息时,系统已经停止,你现在可以关闭你的虚拟机。 关闭机器的虚拟窗口并选择"关闭虚拟机电源"。

步骤3: 查找VBoxManage命令

它的余的进程将在虚拟机的外部执行,在你的主机操作系统上。 例如,如果在虚拟机上运行 Windows 10,在虚拟机上运行 Windows 7,则会在 Windows 10中执行它的余进程。

这里选项不在virtualbox界面的图形中公开。 相反,你必须使用 VBoxManage.exe 命令。

查找这里命令以继续。 在 Windows 上,你将在VirtualBox程序目录中找到它,默认情况下是 C:Program FilesOracleVirtualBox 。 如果你将VirtualBox安装到另一个目录,请查看。

打开一个命令提示符窗口。 为此,打开 开始菜单,键入 cmd 并按Enter键。

在命令提示符中键入 cd,然后键入VBoxManage命令所在的文件夹的路径。 你将需要用引号括起来。

在命令提示窗口中键入 cd,然后从管理栏的文件地址中将文件夹 icon 拖放到命令提示符中,可以快速完成这个操作。

如果使用默认路径,则应如下所示:

cd"C:Program FilesOracleVirtualBox"

注:这些说明假定你在 Windows 上使用 VirtualBox 。 如果在 macOS 或者Linux上使用 VirtualBox,你可以打开终端窗口并正常运行 vboxmanage 命令,如你所做的任何其他命令一样。

步骤4: 找到需要 compact的磁盘路径

在命令提示符窗口中运行以下命令以查看计算机上所有虚拟硬盘的列表:

VBoxManage.exe list hdds

查看列表并标识你想要 compact的虚拟磁盘的文件路径。 假设我们想修改与名为"Windows 7"的虚拟机关联的虚拟磁盘。 可以看到,在下面的输出中,我们系统上的虚拟磁盘的路径是 C:UserschrisVirtualBox VMsWindows 7Windows 7.vdi

步骤5: compact 磁盘

要 compact 磁盘,你需要使用正确的命令来使用 VBoxManage.exe 。 运行以下命令,用上面的命令替换使用你系统上的磁盘路径的磁盘文件路径。 如果文件路径中包含空格,请确保将该文件的路径括在引号中。

它应该是这样的:

VBoxManage.exe modifymedium disk"C:pathtodisk.vdi" --compact

例如由于文件的路径是 C:UserschrisVirtualBox VMsWindows 7Windows 7.vdi 在我们的示例中,我们运行以下命令:

VBoxManage.exe modifymedium disk"C:UserschrisVirtualBox VMsWindows 7Windows 7.vdi" --compact

,将会 compact,然后你可以以立即启动虚拟机,如果你喜欢的话。 节省多少空间取决于要恢复多少空白空间。

同时考虑删除快照

相关文章如何在VirtualBox中使用快照节省时间

VirtualBox允许你为每个虚拟机创建快照插件。 当你创建快照时,这些包含虚拟机的完整映像,允许你将它的恢复到以前的状态。 这些可能需要很多空间。

释放更多的空间,删除不使用的快照。 要查看为虚拟机保存的快照,请在主on窗口中选择它并单击工具栏右侧的"快照"按钮。 如果不再需要快照,请在列表中单击它,然后选择"删除快照"释放空间。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多