linux virtual machine扩大硬盘,如何增加虚拟机的硬盘大小?

问题描述

22619c09460e48cda1c1d50a3ec7b178.png

我的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,然后将其添加回来已成功。但现在我无法启动虚拟机,我得到这个令人担忧的屏幕:

d1295a79d4dc9cb903e6c545b9575687.png

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

VBoxManage命令后,vdi必须重新连接到虚拟机。此外,分区需要从WITHIN窗口调整大小,因为您将拥有这个空白空间:

a461f44a7e3537a76b7ef4395b1e96bd.png

最佳解决方法

打开终端并使用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:驱动器并选择扩展卷来调整显示的屏幕大小。

a461f44a7e3537a76b7ef4395b1e96bd.png

第三种解决方法

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 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.

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值