我意外地将动态分配的 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
我也犯了同样的错误:(
这不是一个直接的解决方案,但至少我能够使用我找到的方法恢复我的数据这里。
本质上你使用nbd
并qemu
创建一个/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
,然后克隆了分区(我使用了:)。qemu
sudo qemu-nbd -c /dev/nbd1 new.vdi
gparted
sudo gparted /dev/nbd0 /dev/nbd1