gpt4 book ai didi

virtualbox - 缩小 vmdk Virtualbox 磁盘镜像

转载 作者:行者123 更新时间:2023-12-03 10:53:24 28 4
gpt4 key购买 nike

VirtualBox 能够压缩(减小尺寸).vdi图像,但不能使用 .vmdk磁盘镜像。但是我们可以压缩.vmdk文件,如果我们:

  • 分离
  • 转换为 .vdi
  • 紧凑型
  • 转换回 .vmdk
  • 再次连接到原来的虚拟机

  • 所以我试图用这个脚本缩小我的 VirtualBox 图像:
    #/bin/bash

    VM_PATH=~/VirtualBox\ VMs
    cd "$VM_PATH"
    VM="$(ls ffnord-example_gc-gw0_* -d -1|head -n 1)"
    cd "$VM"
    VM_VDMK_NAME="$(ls *.vmdk -1|head -n 1)"
    VM_NAME="$VM_PATH/$VM/$VM_VDMK_NAME"

    echo reducing size of "$VM_NAME"
    ls -lah "$VM_NAME"
    set -x
    vboxmanage showvminfo "${VM}"
    vboxmanage storageattach "${VM}" --storagectl SATA --port 0 --device 0 --type hdd --medium none
    vboxmanage clonehd --format vdi "${VM_NAME}" /tmp/VM-disk.vdi
    vboxmanage closemedium disk "${VM_NAME}" --delete
    vboxmanage modifyhd /tmp/VM-disk.vdi --compact
    vboxmanage clonehd --format vmdk /tmp/VM-disk.vdi "${VM_NAME}"
    vboxmanage closemedium disk /tmp/VM-disk.vdi --delete
    vboxmanage storageattach "${VM}" --storagectl SATA --port 0 --device 0 --type hdd --medium 4/VMs/VM-disk1.vmdk

    我改编了 this script from crysol但这似乎不适用于 Ubuntu?第一 vboxmanage storageattach立即以错误开头:
    VBoxManage: error: Could not find a controller named 'SATA'

    如果我尝试 "SATA Controller"反而:
    vboxmanage storageattach "${VM}" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium none

    我收到此错误:
    VBoxManage: error: No storage device attached to device slot 0 on port 0 of controller 'SATA Controller'
    VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component SessionMachine, interface IMachine, callee nsISupports
    VBoxManage: error: Context: "DetachDevice(Bstr(pszCtl).raw(), port, device)" at line 381 of file VBoxManageStorageController.cpp

    如果我注释掉那些 vboxmanage storageattach行,脚本工作正常,但生成的 VM 与以前的大小相同,并且不再启动。

    这是 output of vboxmanage showvminfo "${VM}"

    最佳答案

    我找到了一个 solution :

    首先在 VM 内部用零填充所有可用空间:

    cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

    在您的主机中,从 VMware Knowledge Base 安装 vmware-vdiskmanager :
    cd /tmp/
    wget http://kb.vmware.com/selfservice/viewAttachment.do?attachID=1023856-vdiskmanager-linux.7.0.1.zip&documentID=1023856
    unp 1023856-vdiskmanager-linux-7.0.1.zip
    mv 1023856-vmware-vdiskmanager-linux.7.0.1 /usr/bin/vmware-vdiskmanager
    chmod +x /usr/bin/vmware-vdiskmanager

    请注意,在开始之前您有足够的可用磁盘空间,您需要在此过程中将 MV 增加到两倍大小。

    然后压缩它:
    /usr/bin/vmware-vdiskmanager -k ~/VirtualBox\ VMs/<virtual disk.vmdk>

    Source

    关于virtualbox - 缩小 vmdk Virtualbox 磁盘镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28309819/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com