VirtualBox có thể nhỏ gọn (giảm kích thước) của .vdi
hình ảnh nhưng không thể với hình ảnh đĩa .vmdk
. Nhưng chúng ta có thể nhỏ gọn .vmdk
file nếu chúng ta:Thu nhỏ hình ảnh đĩa VirtualBox vmdk
- tách
- chuyển đổi để
.vdi
- compact
- chuyển đổi trở lại
.vmdk
- đính kèm một lần nữa để máy vitual gốc
Vì vậy, Tôi đã cố thu nhỏ hình ảnh VirtualBox của mình bằng tập lệnh này:
#/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
Tôi đã thích nghi this script from crysol nhưng có vẻ như điều này không hoạt động trên Ubuntu? Các vboxmanage storageattach
đầu tiên bắt đầu với một lỗi ngay lập tức:
VBoxManage: error: Could not find a controller named 'SATA'
Nếu tôi cố gắng "SATA Controller"
thay vì:
vboxmanage storageattach "${VM}" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium none
tôi nhận được lỗi này:
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
Nếu tôi nhận xét ra những vboxmanage storageattach
dòng, kịch bản hoạt động tốt, nhưng VM kết quả có cùng kích thước như trước và nó không khởi động nữa.
Đây là output of vboxmanage showvminfo "${VM}"
Có thể nó được gắn vào máy ảo dưới dạng bộ điều khiển IDE thay vì bộ điều khiển SATA không? –
Máy ảo của bạn không có bất kỳ bộ nhớ nào được đính kèm, được hiển thị trong đầu ra 'showvminfo' mà bạn đã đăng. Do đó, bạn thấy thông báo lỗi này. Tôi nghi ngờ một kịch bản lệnh trước đó, không đầy đủ, vì lệnh 'storageattach' đầu tiên sẽ xóa tệp VMDK khỏi cấu hình VM của bạn: ' vboxmanage storageattach [...] --medium none' – he1ix