Virtualbox /dev/zero>z;同步;睡眠3;同步;rm-f z 关闭客户端计算机 在主机上VBoxManage clonehd“source.vmdk”“clone.vdi”--格式化vdi 在主机上VBoxManage modifyhd cloned.vdi--compact 在主机上VBoxManage clonehd“cloned.vdi”“resized.vmdk”--格式化vmdk
快速简单的选择:Virtualbox /dev/zero>z;同步;睡眠3;同步;rm-f z 关闭客户端计算机 在主机上VBoxManage clonehd“source.vmdk”“clone.vdi”--格式化vdi 在主机上VBoxManage modifyhd cloned.vdi--compact 在主机上VBoxManage clonehd“cloned.vdi”“resized.vmdk”--格式化vmdk,virtualbox,Virtualbox,快速简单的选择: 关掉机器 创建具有所需大小的新虚拟盒磁盘 将内容从旧磁盘移动到新磁盘内: vboxmanage clonehd "source-disk.vmdk" "new-disk.vmdk" --existing 开动机器 您可能需要在操作系统中调整分区大小以填充磁盘的其余部分 警告 如果新磁盘比源磁盘短,您将丢失源磁盘上新磁盘大小位置的数据 在步骤1之前,您可以防止在操作系统内的源磁盘末尾释放增量空间,其中增量=大小(源磁盘)-大小(新磁盘)。 适用于Windows的Virtua
vboxmanage clonehd "source-disk.vmdk" "new-disk.vmdk" --existing
警告 如果新磁盘比源磁盘短,您将丢失源磁盘上新磁盘大小位置的数据 在步骤1之前,您可以防止在操作系统内的源磁盘末尾释放增量空间,其中增量=大小(源磁盘)-大小(新磁盘)。
适用于Windows的VirtualBox 在保留虚拟机设置的同时调整磁盘文件的大小
步骤1-调整磁盘文件的大小 启动cmd.exe
cd
到Oracle VM VirtualBox的目录(在64位系统上:“C:\Program Files\Oracle\VirtualBox\”
)
运行以下命令(如上所述):
Windows资源管理器和通过地址栏“将地址复制为文本”可以帮助您获得所需的路径
在windows系统上,用户下方的VirtaulBox VM目录可能包含一个XML格式的数据库文件,其中包含您为VM配置的设置。重命名此文件,扩展名为.bak
(扩展名为.vbox
)。将原始的.vmdk
文件重命名为.bak
扩展名,以避免另一个错误。现在,您可以安全地执行第三步,而不会出现将机器转换回.vmdk
格式的错误消息,也不会出现“复制磁盘”错误
您将看到一个UID令牌。通过从Windows命令Interpetor窗口拖动并突出显示此标记,并使用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" ...
这里有一种调整VirtualBox磁盘大小的方法,不管它是固定格式磁盘还是动态格式磁盘。特别是,它可以防止磁盘为固定格式时发生的错误
⚠️ 备份虚拟磁盘。你永远不知道会出什么问题
在您的主机上:
打开终端窗口
在Windows上:打开命令提示符cmd
转到包含要调整大小的虚拟磁盘的目录。例如:
cd“我的虚拟机”
使用所需的文件名、大小(以兆字节为单位)和格式(标准<代码>标准<代码>(动态)或固定<代码>创建一个新的VirtualBox磁盘。例如,要创建名为MyNewDisk.vdi的50 GB固定格式磁盘,请执行以下操作:
VBoxManage createmedium--文件名“MyNewDisk.vdi”--大小50000--变量已修复
如果未将VBoxManage
识别为命令,请指定该命令的完整路径。可以在VirtualBox安装目录中找到它。在Windows上,上述命令将变为:
“C:\Program Files\Oracle\VirtualBox\VBoxManage.exe”createmedium
--文件名“MyNewDisk.vdi”--大小50000--已修复变体
将原始磁盘复制到新磁盘
VBoxManage clonemedium“MyOriginalDisk.vdi”“MyNewDisk.vdi”--现有
调整大小完成了!如果需要,可以检查新磁盘的属性:
vboxmanageshowmediuminfo“MyNewDisk.vdi”
将虚拟机更改为使用新磁盘
接下来,在来宾操作系统上,您需要调整分区大小以使用新的可用空间。如Luca在中所述,所需步骤如下:
VBoxManage clonemedium "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifymedium "cloned.vdi" --resize 51200
VBoxManage clonemedium "cloned.vdi" "resized.vmdk" --format vmdk
将VMDK映像克隆为VDI格式
VBoxManage clonehd“source.vmdk”“cloned.vdi”--格式vdi
调整VDI图像的大小
VBoxManage modifyhd“cloned.vdi”--调整51200的大小
克隆回VMDK格式
VBoxManage clonehd“cloned.vdi”“resized.vmdk”--格式vmdk
如果可以使用VDI映像,则步骤3是可选的
所有这些步骤也可以在VirtualBox图形用户界面的文件->虚拟媒体管理器
下执行。选择要克隆的驱动器,然后选择Copy
。将打开一个对话框,允许您选择磁盘格式和选项。要调整VDI图像的大小,只需使用底部的滑块(如果不可见,请单击Properties
)
最后,您可能还需要更改来宾操作系统中的磁盘大小:
运行来宾操作系统并调整磁盘分区的大小。如果您正在运行Linux,则可以使用gparted
或kparted
李>
在这里尝试了所有的解决方案,但似乎没有任何效果。经过几个小时的挖掘,我发现了这篇文章,一切都很神奇。我不得不做一些调整,所以这里是修改后的版本。使用Docker版本17.06.0-ce,版本02c1d87进行测试
一旦开发人员真正开始对其应用程序进行容器化,他们通常会生成大量映像,并在默认情况下迅速填满分配给Docker虚拟机的20GB硬盘空间。为了确保Docker虚拟机有足够的磁盘空间,我们应该将/dev/sda1的大小调整为一个更合理的数字
下载
停止Docker虚拟机Docker machine停止默认值
Boot2Docker软件包安装程序附带一个VMDK卷,VirtualBox的本机工具无法调整该卷的大小。要调整Docker磁盘卷的大小,首先
VBoxManage clonemedium "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifymedium "cloned.vdi" --resize 51200
VBoxManage clonemedium "cloned.vdi" "resized.vmdk" --format vmdk
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sda 8:0 0 200G 0 disk
└─sda1 8:1 0 200G 0 part
├─myfs-vg-cloud 253:0 0 99G 0 lvm /
└─myfs-vg-swap-1 253:1 0 980M 0 lvm [SWAP]
$ lvextend -L +100G /dev/mapper/myfs-vg-cloud
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sda 8:0 0 200G 0 disk
└─sda1 8:1 0 200G 0 part
├─myfs-vg-cloud 253:0 0 199G 0 lvm /
└─myfs-vg-swap-1 253:1 0 980M 0 lvm [SWAP]
$ df -h /home/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myfs-vg-cloud 97G 87G 6.0G 94% /
$ resize2fs /dev/mapper/myfs-vg-cloud
$ df -h /home/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myfs-vg-cloud 196G 87G 101G 47% /
VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifyhd "cloned.vdi" --resize 51200
1023856-vdiskmanager-windows-7.0.1.exe -x 30720M Machine-disk1.vmdk
qemu-img resize Machine-disk1.vmdk +8G
vboxmanage clonehd "source-disk.vmdk" "new-disk.vmdk" --existing
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
<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" ...