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