Como reduzir o VDI expandido acidentalmente?

0

Eu acidentalmente expandi uma imagem VDI alocada dinamicamente para ~ 150TB em vez de ~ 150GB usando VBoxManage modifyhd (uma lição para aprender: [--resize <megabytes>|--resizebyte <bytes>] )

Agora, quando estou inicializando a máquina virtual, recebo o seguinte aviso:

The medium '/home/bbalint/VirtualBox VMs/wii/wii.vdi' has a logical size of 143TB but the file system the medium is located on can only handle files up to 7TB in theory.

Para corrigir meu erro, tentei redimensionar a VDI novamente, mas agora recebo o seguinte erro:

$ 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!

Isso é estranho, já que eu não alterei nenhum outro parâmetro da imagem além do tamanho:

$ 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)

Como posso corrigir isso?

    
por kraxor 18.02.2015 / 12:42

1 resposta

0

Eu cometi o mesmo erro: (

Esta não é uma solução direta, mas pelo menos eu consegui recuperar meus dados usando um método que encontrei aqui.

Essencialmente, você usa nbd e qemu para criar um /dev/nbdx device

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

Em seguida, criei uma nova VDI com o tamanho correto:

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

Em seguida, usei o mesmo método nbd e qemu : sudo qemu-nbd -c /dev/nbd1 new.vdi e, em seguida, clonei a partição (usei gparted : sudo gparted /dev/nbd0 /dev/nbd1 ).

    
por 08.05.2015 / 23:13

Tags