如何缩小意外扩展的 VDI?

如何缩小意外扩展的 VDI?

我意外地将动态分配的 VDI 映像扩展到了~150TB,而不是~150GB VBoxManage modifyhd(需要吸取的教训[--resize <megabytes>|--resizebyte <bytes>]:)

现在,当我启动虚拟机时,收到以下警告:

介质“/home/bbalint/VirtualBox VMs/wii/wii.vdi”的逻辑大小为 143TB,但该介质所在的文件系统理论上只能处理最大 7TB 的文件。

为了修复我的错误,我尝试再次调整 VDI 的大小,但现在出现以下错误:

$ VBoxManage modifyhd {d013c1f5-3f1f-4918-a079-ee27f4b398a3} --resize 150000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

这很奇怪,因为除了尺寸之外,我没有改变图像的任何其他参数:

$ VBoxManage showhdinfo {d013c1f5-3f1f-4918-a079-ee27f4b398a3}
UUID:           d013c1f5-3f1f-4918-a079-ee27f4b398a3
Parent UUID:    base
State:          locked write
Type:           normal (base)
Location:       /home/[...]/VirtualBox VMs/wii/wii.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       150000000 MBytes
Size on disk:   64526 MBytes
In use by VMs:  wii (UUID: 5810c0ba-4776-48d7-807f-1116295688a0)

我怎样才能解决这个问题?

答案1

我也犯了同样的错误:(

这不是一个直接的解决方案,但至少我能够使用我找到的方法恢复我的数据这里。

本质上你使用nbdqemu创建一个/dev/nbdx设备

sudo modprobe nbd max_part=16
sudo qemu-nbd -c /dev/nbd0 bad.vdi

然后我创建了一个具有正确大小的新 VDI:

VBoxManage createhd --filename new.vdi --size 15000 --format VDI

然后我对其使用了相同的方法:nbd,然后克隆了分区(我使用了:)。qemusudo qemu-nbd -c /dev/nbd1 new.vdigpartedsudo gparted /dev/nbd0 /dev/nbd1

相关内容