为什么Virtualbox的虚拟磁盘不会自动增长?

我使用VirtualBox 4.2.6作为主机,Ubuntu 12.04作为宿主系统,Win XP作为虚拟机。我给XP分配了一个最大容量为40GB的虚拟磁盘(VDI),目前已经使用了25GB。
在XP中,它一直告诉我空间不足。
但是我的主机主硬盘上还有很多空间。
df -h
/dev/sda1       143G     48G   89G   35% /

如何扩展我的XP磁盘?这个问题没帮到我,顺便说一下。

enter image description here

2个回答

我们不知道为什么在您的情况下,Windows无法处理动态分配的虚拟磁盘。可能值得检查文件系统的完整性或从Windows客户操作系统执行碎片整理。
尽管如此,我们可以通过在终端中运行以下命令轻松增加报告给客户操作系统的动态增长虚拟驱动器的大小。
VBoxManage modifyhd <uuid/name> --resize <newsize in MB>

使用以下命令可以列出虚拟驱动器的UUID文件名(需要完整路径)。
VBoxManage list hdds

请注意,如果我们采用快照或保存虚拟机状态而不是关闭电源,就无法更改虚拟驱动器的大小。在更改虚拟驱动器的大小之前,我们需要删除所有快照,或者使用克隆来确保不会丢失快照的内容。无法缩小动态增长的磁盘。
调整虚拟驱动器大小后,我们还需要调整客户机的分区表以适应更改后的驱动器大小。
在Windows 7中,转到“计算机管理->磁盘管理”以查看新的未分配空间(在添加10 GB到驱动器后显示)。

enter image description here

右键单击此未分配的分区,选择“扩展卷...”以增加分区大小。您还可以通过在此虚拟机上引导Ubuntu live .iso来使用gparted调整分区大小。
更多详细信息请参阅:Virtual Box用户手册 另请参阅:如何增加虚拟机的硬盘大小? 要物理缩小/压缩动态增长的磁盘,请参阅:如何从VirtualBox中缩小动态增长的VDI磁盘?

2如果你有快照,这个方法行不通(看起来像行得通,但实际上并不行),所以唯一的办法似乎是删除快照(这可能需要一些时间),然后再进行操作。 - Sverre
如果我能的话,我会这么做的,但是我的删除快照功能不起作用(它似乎是一个已知的bug),所以我目前创建了一个新的虚拟驱动器(固定大小),并且现在正在Windows虚拟机内进行克隆。 - Sverre
如何“克隆工作”? - B T
VBoxManage 不是在我的 Windows 上有效的命令。顺便说一下,我在使用 VirtualBox 5.1.30 的 Windows 10 上也遇到了同样的问题。我没有单独的 VBox 分区。 - CGFoX
@CGFoX Windows在这里是「离题」的,但可以参考https://superuser.com/questions/716649/how-to-change-fixed-size-vdi-with-modifyhd-command-in-windows。 - Takkat
@CGFoX VBoxManage.exe 在我的系统上是存在的,只是不在我的路径中,所以它没有显示为一个命令。我的路径是 C:\Program Files\Oracle\VirtualBox\VBoxManage.exe 你可以将路径粘贴到命令行中,但必须用引号括起来。 - RufusVS

你本可以添加一个40.04GB的扩容磁盘,但是Windows分区本身应该在安装时使用完整的大小创建。
将Ubuntu光盘添加到虚拟机并启动。在启动器上打开gparted。打开磁盘。
你应该看到一个40.04GB的分区和没有空闲空间。如果你看到一个较小的分区和空闲空间,请使用这个工具来调整和扩展现有的分区。
调整大小并重新启动虚拟机后,Windows会进行分区检查,请让Windows至少进行一次!这很重要。不过,不要太担心你的数据,这是调整NTFS分区时的正常过程。