我在虚拟机磁盘(vmdk格式)上的空间用尽了,需要调整虚拟镜像大小。使用如下命令进行调整:
vboxmanage modifyhd Machine-disk1.vmdk --resize 30720
显示以下错误信息:
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!
如何调整vmdk镜像的大小?
我在虚拟机磁盘(vmdk格式)上的空间用尽了,需要调整虚拟镜像大小。使用如下命令进行调整:
vboxmanage modifyhd Machine-disk1.vmdk --resize 30720
显示以下错误信息:
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!
如何调整vmdk镜像的大小?
VirtualBox for Windows
在保留虚拟机设置的同时,调整您的磁盘文件大小!
启动cmd.exe
cd
到Oracle VM VirtualBox的目录(在64位系统中:"C:\Program Files\Oracle\VirtualBox\"
)
运行以下命令(同上):
VBoxManage clonehd "C:\path\to\source.vmdk" "C:\path_to\cloned.vdi" --format vdi
VBoxManage modifyhd "C:\path\to\cloned.vdi" --resize 51200
VBoxManage clonehd "C:\path_to\cloned.vdi" "C:\path_to\source.vmdk" --format vmdk
Ctrl+C
键盘快捷键来复制它。.vbox.bak
文件。您将看到一个类似XML的数据库文件。查找以下行:<VirtualBox xmlns="http://www.virtualbox.org/" version="1.16-windows">
<Machine uuid="{some uid}" name="source disk name" OSType="the_vbox_OS" snapshotFolder="Snapshots" lastStateChange="2043-03-23T00:54:18Z">
<MediaRegistry>
<HardDisks>
<HardDisk uuid="{some uid}" location="C:\path_to\source.vmdk" ...
<HardDisk uuid="{some uid}" location="C:\path_to\source.vmdk" ...
这一行中,删除括号内的旧UID令牌,粘贴你从命令窗口复制的UID令牌。确保你不要删除括号!保存该文件,并退出文本编辑器。将.vbox.bak
文件重命名为.vbox
以恢复其预期的扩展名。
现在可以安全地删除目录中剩余的.bak
文件。剩下的是一个已调整大小的.vmdk
文件和一个更新的.vbox
数据库,同时保留了之前保存的VirtualBox管理器设置。
您现在可以启动VirtualBox虚拟机管理器并执行您的虚拟机,使用适用于操作系统的相应工具来填充新的空闲空间。
对于Windows虚拟机,请使用从Windows恢复控制台(恢复分区)引导的命令提示符中的diskpart
命令来选择磁盘1
,列出分区
并收集您的C:\
驱动器的分区号,然后选择分区 #
。 您可以使用EXTEND SIZE = mb
将Windows C:\驱动器的大小调整为适当的值。 确保留有恢复和引导分区的空间! 可以安全地减去4096 MB以获取此值,因为影像副本和Windows恢复文件会占用此空间。
对于Linux虚拟机,您可以在VM的磁盘文件上启动的gparted的实时.ISO
可以在以下位置找到:http://gparted.org/。它将直接进入基于图形用户界面的gparted-gtk,从那里您可以填充您的可用空间。
对于PPC / Mac虚拟机,Finder中的Disk Utility
将协助您填充可用空间,但您可能需要考虑gparted Linux选项,因为目前唯一在VirtualBox中引导MacOSX的方法是hackintosh,并且您无法在引导到MacOSX时扩展您的卷。您还可以暂时寻求调整VM的设置以使用gparted
进行引导。gparted识别MacOSX分区为HFS
- “堆积文件系统”分区。
因为互联网。;) 您已完成。享受使用VirtualBox for Windows重新调整大小的虚拟.vmdk
磁盘映像!
以下方法可以帮助您调整VirtualBox磁盘的大小,不论它是固定格式还是动态格式的磁盘。特别地,它可以避免磁盘为固定格式时出现的错误。
⚠️备份虚拟磁盘。你永远不知道会发生什么事情。
在主机上:
Open a terminal window.
On Windows: Open the command prompt
cmd
.
Go to the directory with the virtual disk you want to resize. For example:
cd "My VMs"
Create a new VirtualBox disk with your desired filename, size (in megabytes) and format (either Standard
(dynamic) or Fixed
). For example, to create a 50 GB fixed-format disk called MyNewDisk.vdi
:
VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
If
VBoxManage
is not recognized as a command, specify the full path to it. It can be found in the VirtualBox installation directory. On Windows the above command would become:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
Copy the original disk to the new disk.
VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
The resize is done! You can check the properties of the new disk if you want:
VBoxManage showmediuminfo "MyNewDisk.vdi"
Change the virtual machine to use the new disk instead.
我来这里是因为我需要调整我的Docker(CoreOS)开发环境的磁盘大小。
CoreOS文档说没有必要调整操作系统分区 - 这是错误的。在调整虚拟磁盘大小后,您应该按照以下说明通过GParted调整操作系统分区:
一种快速简单的选择:
Move content from old disk to inside new disk:
vboxmanage clonehd "source-disk.vmdk" "new-disk.vmdk" --existing
Turn on machine
警告
如果新硬盘比原始硬盘短,您将会丢失位于源硬盘新硬盘大小位置之后的数据。
在第一步操作之前,在操作系统中释放源硬盘结尾处的增量空间(其中增量=大小(源硬盘)-大小(新硬盘)),以避免此情况发生。
vboxmanage list hdds
。要删除不需要的虚拟磁盘:vboxmanage closemedium disk <filename.vmdk>
。查看SATA端口号和设备号:vboxmanage showvminfo <vmName>
。要分离磁盘:vboxmanage storageattach <vmName> --storagectl SATA --port <p#> --device <d#> --medium none
。 - electromaggot