问题描述
我的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必须重新连接到虚拟机。此外,分区需要从WITHIN窗口调整大小,因为您将拥有这个空白空间:
我可以使用名为EASEUS Partition Master 9.1.0 Home Edition的一些免费软件轻松调整分区大小。
最佳解决方法
打开终端并使用VirtualBox磁盘映像导航到该文件夹,然后使用以下命令:
VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB
用您的图像名称和所需大小替换YOUR_HARD_DISK
和SIZE_IN_MB
。 sudo
在某些机器中可能是必需的,或者您可能会遇到错误。这个答案和更全面的解释是here, on webupd8。感谢安德鲁发布这个答案。
调整大小后,额外的virtual hard drive space needs to be partitioned and formatted供客人使用。这可以通过从现场ISO启动客人来完成。我们也可以使用gparted来调整现有的分区大小。为此,我们可能需要禁用/swap
并创建一个新的交换分区。
次佳解决方法
以下为我工作:
VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB
但是,我了解里程的变化方式:-)至于调整分区的大小,在Windows 7中,我可以通过右键单击底部面板中的C:驱动器并选择扩展卷来调整显示的屏幕大小。
第三种解决方法
Wim,我想你需要先从Vbox注销它。文件,媒体管理器,点击你的硬盘,并取消注册。然后再试一次。
第四种方法
在调整大小后,无法在Windows XP来宾机器上查看调整大小后,我不得不这样做
-
克隆它
-
使用“VBoxManage modifyhd winxppro \ Clone.vdi –resize 30720”调整大小并且一切正常
我在其他论坛看到,快照可能会干扰调整大小,并且无法删除所有快照以查找我得到的不同错误,唯一找到的解决方案是克隆它以删除快照并调整大小,并且一切正常。要调整外部窗口的大小,可以找到一个可以找到here的gparted boot cd
第五种方法
我在移动磁盘时遇到了同样的问题,并使用符号链接替换了原始文件。此后可以正常工作,但是遇到’modifyhd’命令时出现问题,因为在处理vdi-file时,它明显规范了路径。这使得它看起来像试图添加一个具有相同UUID但在不同路径上的新磁盘 – 或类似的东西。
有两个问题:
-
该磁盘必须从使用它的虚拟机中删除,但也是“从VirtualBox VirtualBox列表中删除”。这已通过’closemedium’命令解决,该命令将其从列表中删除。
-
要调整大小的磁盘是”fixed disk”而不是”dynamic”,并且只能调整动态磁盘的大小。用’clone’命令(克隆是动态的)修复了这个问题,然后调整生成的磁盘的大小。
这是我如何完成的日志。请注意,我不是以root身份运行的任何点,除非我之后执行分区和文件系统的大小调整。
从虚拟机中删除关联到磁盘。
问题仍然存在:
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,”fixed-size”不起作用! ‘clonehd’救援,因为这留下了’dynamically allocated’克隆磁盘:
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
现在做调整(instantanious):
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,调整大小。这是以root身份完成的。假设你只有一个分区并可能交换。
# 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.