我的WinXP虚拟机上的空间已用完,创建该虚拟机时只提供了10 GB的空间。有没有简单的方法可以将其增加到20 GB?我在VirtualBox设置中看不到任何明显的选项。


下面的建议给出了此错误

wim@wim-ubuntu:/media/data/winxp_vm$ VBoxManage modifyhd wim.vdi --resize 20000
VBoxManage: error: Cannot register the hard disk '/media/data/winxp_vm/wim.vdi' {46284957-2c09-4e70-8a49-bfbe0f7f681d} because a hard disk '/home/wim/VirtualBox VMs/winxp_vm/wim.vdi' with UUID {46284957-2c09-4e70-8a49-bfbe0f7f681d} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 210 of file VBoxManageDisk.cpp



在调用VBoxManage命令之前,先从VirtualBox中删除.vdi,然后再重新添加。但是现在我无法启动虚拟机,我得到一个令人担忧的屏幕:



顺便说一句,它说FATAL: Could not read from the boot medium! System halted.


必须在VBoxManage命令之后将vdi重新附加到VM。此外,将需要在WITHIN窗口中调整分区的大小,因为您将拥有这个空白空间:



我能够使用以下一些方法轻松地调整分区的大小:名为EASEUS Partition Master 9.1.0 Home Edition的免费软件。

评论

您的问题是您已将磁盘符号链接到“ / media / data”位置,并且它不位于原始的“ / home / wim / VirtualBox VM”位置。我已经解决了这个问题。

我在这里详细介绍了我的经验:kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size下面的“接受的”答案远远不够正确。

还有另一种可能性,“将现有vdi复制”到“新的空vdi,其大小大于现有的vdi”(refer-justintung.com/2011/01/06/…)

另外,请注意,仅调整大小可能无济于事,因为“ vdi”的大小会增加,但是基于“ vm-os-installation”,您的主分区保持不变,并且新分配的空间通常显示为“未分配” ”。因此,您需要进行“分区重新分配”(请参阅​​上面的链接)。

#1 楼

打开终端,然后导航到带有VirtualBox磁盘映像的文件夹,然后使用以下命令:用映像名称和所需的大小替换YOUR_HARD_DISKSIZE_IN_MB。在某些机器上可能需要sudo,或者您可能会遇到错误。在webupd8上可以找到此答案和更完整的解释。
调整大小后,需要对额外的虚拟硬盘驱动器空间进行分区和格式化,以供访客使用。通过从实时ISO引导来宾,可以使用gparted完成此操作。我们还可以使用gparted调整现有分区的大小。为此,我们可能需要禁用/swap并创建一个新的交换分区。
如果在您的系统中找不到VBoxManage,只需将路径设置为:
VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

它应该解析路径问题。设置之前,请确保在此路径上存在“ VBoxManage”。

评论


+1。只是使用它来将Windows 7磁盘的大小从20 GB增加到30 GB,并且工作非常顺利(无需注销等)。 $ VBoxManage Modifyhd Windows7.vdi-调整大小30720 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%最初,Windows并未检测到增加的空间,但在关闭电源后却发现了增加的空间,然后我能够使用内置的磁盘管理工具来增加我的磁盘空间。 C:分区。

– Jonik
2011-12-22在10:05



+1,这当然是最干净的方法。

– Starx
2012年5月3日15:08

@asd更改磁盘大小是不够的,您还需要调整分区的大小。

–布鲁诺
2012年11月7日18:44

我认为在VirtualBox的最新版本中,它是。\ VBoxManage.exe修改介质磁盘4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf-现在调整大小30720。不过modifyhd也可以工作—与旧命令具有向后兼容性。

–神经递质
17年9月6日在19:04

我只是将vdi文件的大小从25G调整为120G,但是Windows7系统的磁盘管理器仍然看不到未分配的空间。是由快照文件引起的(我之前有快照),但是当我尝试删除快照时,virtualbox报表崩溃,因此无法删除快照。有任何想法吗?我的客户win7仍然看到25G。谢谢。

–ollydbg23
17年9月7日,下午3:25

#2 楼

从VirtualBox 6开始,我们可以使用GUI来调整VM虚拟磁盘的大小。

要访问它,请单击File-> Virtual Media Manager ...

以下窗口将打开


选择磁盘,然后单击Properties。现在,只需将滑块移动到底部或输入所需的大小值,然后在完成后单击“应用”。

启动虚拟机后,Windows将无法识别新空间。

在Windows中,打开Computer Management(在开始菜单中搜索),在左侧菜单中选择Storage-> Disk Management。选择您的分区(可能是C :),右键单击它并选择Extend Volume ...。现在,只需单击向导即可完成操作。

评论


您是否需要在此之前进行发布?目前,滑块为灰色。还是您选择了动态分区?

–罗伊
19年4月17日在10:38



Royi:制作虚拟磁盘时,请确保其具有动态大小。

– lenooh
19年4月17日在19:14

很高兴了解GUI方法。当然,命令方式也可以。

–曼努埃尔·乔丹(Manuel Jordan)
19-10-24在16:14

这应该是公认的答案。所有其他所有您都丢失了安装,必须格式化驱动器!!!

–杰米·赫伯(Jamie Hutber)
19年11月15日在1:16

VM为ubuntu时如何更新大小?

– Tim
20/12/08在19:43

#3 楼

以下对我有用:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB


但是,我了解里程数如何变化:-)至于分区的大小,在Windows 7中,我能够调整大小在显示的屏幕上,右键单击底部面板中的
C:驱动器,然后选择扩展卷。



评论


sudo是没有必要的。它可能会破坏您的主目录中的权限,这要求您对virtualbox使用sudo,这是一个坏主意。

– Lekensteyn
2012年4月15日在12:01

@Lekensteyn:很高兴知道没有必要。我之所以使用它,是因为其他人曾说过,如果没有root用户,它是行不通的。就权限损坏而言,chmod可以很好地解决此类错误。

–理查德·波维内利(Richard Povinelli)
2012年4月15日12:05

@Lekensteyn:chown将解决所有权错误。我提到chmod和chown,因为我不得不解决您多次引用的问题:-)

–理查德·波维内利(Richard Povinelli)
2012年4月15日12:19



这对Windows非常有用,但是如果您有Linux来宾操作系统,则此链接可以帮助您重新调整分区的大小:forums.virtualbox.org/viewtopic.php?f=35&t=50661

–乔恩
2014年3月29日在21:35

如果您在linux内部运行Windows,则需要遵循此选项并扩展磁盘,否则Windows不会添加我们添加的额外空间

– Ajith R Nair
16年8月17日在13:52

#4 楼

Wim,我认为您需要先从Vbox注销。文件,媒体管理器,单击您的硬盘,然后取消注册。然后再试一次。

评论


在Linux上的VirtualBox中不需要。只需先完全关闭来宾OS。

–颠倒
17年2月4日在9:23

#5 楼

调整大小并且无法在Windows XP客户机上查看调整大小后,我不得不


克隆它
使用
“ VBoxManage Modifyhd winxppro \ Clone.vdi --resize 30720“
一切正常

我在其他论坛上看到快照可能会干扰调整大小,并且无法针对我遇到的不同错误删除所有快照,这是唯一的找到我的解决方案是克隆它以删除快照,然后调整其大小,一切正常。要调整外部Windows的大小,可以在此处找到gparted引导光盘,它可以帮助

#6 楼

在移动磁盘并用符号链接替换原始磁盘时,我遇到了同样的问题。此后可以正常工作,但是使用'modifyhd'命令会遇到问题,因为在使用它时显然可以规范化vdi文件的路径。这看起来就像您要添加具有相同UUID但在不同路径上的新磁盘一样-

存在两个问题:


必须从使用磁盘的虚拟机中删除该磁盘,然后再从“ HDDS的VirtualBox列表”中删除该磁盘。此问题已通过“ closemedium”命令修复,该命令会将其从该列表中删除。
要调整大小的磁盘是“固定磁盘”,而不是“动态”磁盘,只能调整动态磁盘的大小。这是通过“克隆”命令(克隆是动态的)修复的,然后调整了生成的磁盘的大小。

这是我的操作日志。请注意,无论何时我都没有以root身份运行,除非后来我要调整分区和文件系统的大小。

从VM中删除磁盘的关联。

问题仍然存在:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
VBoxManage: error: Cannot register the hard disk '/datadisk/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' {6cd99209-e4db-4178-a6c2-53f9581b1fad} because a hard disk '/home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' with UUID {6cd99209-e4db-4178-a6c2-53f9581b1fad} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp


啊,磁盘仍在“系统中”:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

UUID:        6cd99209-e4db-4178-a6c2-53f9581b1fad
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi
State:       created
Type:        normal


从VirtualBox磁盘列表(“ closemedium”)中删除/删除磁盘:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage closemedium disk 6cd99209-e4db-4178-a6c2-53f9581b1fad
virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)


再次尝试调整大小:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!


DAMN,“固定尺寸”不起作用!进行“ clonehd”解救,因为这留下了“动态分配”的克隆磁盘:

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage clonehd TestInception\ 64\ bit.vdi TestInception\ 64\ bit-cloned.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 8e237500-173b-401a-9e63-9e64da110da9


现在进行大小调整(即时):

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd --resize 8192 TestInception\ 64\ bit-cloned.vdi 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%


在连接到某些VM时需要调整大小。这是作为根完成的。假设您只有一个分区并且可能会交换。

# fdisk /dev/sdb  # <- The extra disk, just attached to be resized
// The procedure looks like this:
// m - print help
// p - print table
// d ... - delete partition (delete both if you have root and swap)
// n - new partition (create root/first partition starting on exact same sector as before, typically 2048, but ends on last, or last minus swap)
//  ... n.. (.. then add the swap partition. Calculate how many sectors using original table)
// t - change type of partition (swap partition, if any, to 82 - not 83 which is "normal Linux").
// w - write partition table (write out, with the resized partition)

# e2fsck -f /dev/sdb1

e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 99918/122160 files (0.3% non-contiguous), 471032/487936 blocks

# resize2fs /dev/sdb1

resize2fs 1.42.5 (29-Jul-2012)
Resizing the filesystem on /dev/sdb1 to 1965824 (4k) blocks.
The filesystem on /dev/sdb1 is now 1965824 blocks long.


评论


这对我有用,请按照此处的指南进行操作:yinfor.com/2015/05/…

–marijnz0r
17年6月21日在15:00

#7 楼

这对我来说适用于在Ubuntu 16.04主机和Windows 10 Guest上安装的Virtualbox 5.2.6:
打开Virtualbox Manager,单击Global Tools(右上角),然后选择Virtual Media Manager。
单击硬盘标签,然后选择您的访客操作系统。在框的底部,单击“属性”选项卡。在底部,您可以看到虚拟磁盘的大小,并使用滑块可以根据需要增加大小。 (使用此方法只能增加大小,而不能减小大小)。单击“应用”。
启动Windows Guest OS,打开“计算机管理”,右键单击C:驱动器,然后选择“扩展卷”以使用未分配的部分扩展文件系统。

这就是我要做的全部,非常适合我。

评论


很棒。至少对于最近版本的VirtualBox,这不是应该接受的答案吗?

–始终学习
18年4月29日在12:38



对于ubuntu来说似乎是一个更复杂的故事。我正在尝试导出OCI,然后创建一个新的VM来尝试删除分区等。

–罗宾
20-10-16在8:24

#8 楼

一种可靠的方法是,与移至未在VM中运行的较大硬盘驱动器相同。首先在XP中使用ccleaner或类似程序来清理它可以清除的所有垃圾文件。然后创建所需大小的辅助虚拟硬盘。使用您的虚拟ODD驱动器中的clonezilla ISO进行引导,然后进行克隆,并选中“将大小调整为新分区大小”选项。然后将新的虚拟HDD设置为主,然后在知道旧的HDD起作用之前不要删除它。

#9 楼

在使用sudo运行命令之前,我收到了相同的错误,然后运行完美,仍然需要从guest虚拟机内部扩展分区以使用更多空间。

评论


有人报告这导致主目录权限错误

–乔纳森
16年9月1日,0:02

#10 楼

确保您以具有对磁盘映像文件的写入权限的用户身份登录。然后运行

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  


第一次问我为我工作

评论


您是否需要重新安装/重新格式化/重新分区?还是只是直接启动备份?

–乔纳森
16年9月1日,0:01

#11 楼

如果主机是Windows,则可以运行以下命令来增加或减小虚拟框中的vdi磁盘大小:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "C:\Users\your_user_name\VirtualBox VMs\Ubuntu18LTS\Ubuntu18LTS.vdi" --resize 20000


在上述命令中,将your_user_name替换为真正的Windows用户和20000是磁盘的MB大小。

#12 楼

如果您在Windows主机上并尝试增加Ubuntu的VDI大小,则以下信息可以为您提供帮助:

获取完整的vdi路径,对我来说,它是“ D:\ VirtualBoxImages \ Ubuntu \ Ubuntu.vdi”。



运行“标记为已回答”文章中提到的命令:

"C:\Program Files\Oracle\VirtualBox>VBoxManage modifyhd D:\VirtualBoxImages\Ubuntu\Ubuntu.vdi --resize 40000" 



完成上述步骤后,重新启动Ubuntu VM。

转到“磁盘”



调整现有分区的大小以使其达到40 GB:



然后您可以从“存储”中确认上述操作有效:



#13 楼

事实上,在某些情况下,仅modifyhd似乎对您没有任何好处。实际上,我是通过在扩展后克隆映像来扩展WinXP vdi的。

这是两周前为我工作的完整分步指南:http://libtronics.com/2011/ 07 / resize-virtualbox-disk-for-winxp-guest /

评论


您能在这里解释步骤吗?在这里,回答不多,仅链接到另一个站点的答案通常被皱眉,可以将其删除。

–汤姆·布鲁斯曼
2012年9月29日17:10

好了,您需要了解Modifyhd的作用,仅此而已就是扩展基础虚拟磁盘。您仍然需要扩展其上的文件系统。

– Marcin Kaminski
2012年11月21日,0:41

#14 楼

这是一种调整VirtualBox磁盘大小的方法,而不管它是固定格式磁盘还是动态格式磁盘。具体来说,它可以防止此错误:

 Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!
 




⚠️备份虚拟磁盘。您永远都不知道出什么问题。


在您的主机上:



打开终端窗口。


在Windows上:打开命令提示符cmd



转到要调整大小的虚拟磁盘所在的目录。例如:

 cd "My VMs"
 



使用所需文件名创建新的VirtualBox磁盘,大小(以兆字节为单位)和格式(Standard(动态)或Fixed)。例如,要创建一个名为MyNewDisk.vdi的50 GB固定格式磁盘:

 VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
 



如果VBoxManage不被识别为命令,请指定其完整路径。可以在VirtualBox安装目录中找到它。在Windows上,以上命令将变为:

 "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
    --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
 




将原始磁盘复制到新磁盘。

 VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
 



调整大小为完成!您可以根据需要检查新磁盘的属性:

 VBoxManage showmediuminfo "MyNewDisk.vdi"
 


更改虚拟磁盘计算机来代替,使用新磁盘。

接下来,在来宾OS上,您需要调整分区大小以使用新可用空间。

#15 楼

对于像我一样在VHD上具有Windows的用户,首先通过使用以下Linux命令进行克隆将其转换为VDI。 (请注意,Windows VM已关闭。)

VBoxManage clonehd Windows10.vhd Windows10.vdi --format vdi

这将复制vhd。

然后可以使用以下内容调整VDI的大小。请注意,在使用之前,VDI实际上不会增长。

VBoxManage modifyhd Windows10.vdi --resize 80000

在VM主机软件中固定存储安装并启动VM后,Windows启动,但分区大小仍然相同。 Google for Windows工具,可以调整C驱动器分区的大小。我使用EaseUs Partition Master将C驱动器分区扩展到新的大小。

最后,可以删除VHD。