Virtualbox: How to resize a VDI disk
Resizing virtual disks (VDI, Virtual Disk Image) in Virtualbox is still not possible*). There are several rather long tutorials out there how to do this, that's the short version of it:
- Create a new VDI disk of desired size. We've created a 2GB
deb02.vdi, as our 1GBdeb01.vdiwas too small. - Create a new VM, attach both the old (too small) and new (bigger, but still empty) disk to the VM, boot from a bootable CD, e.g. grml.
- Once booted, we transfer the old disk (sda) to the new, bigger one (sdb):
$ dd if=/dev/sda of=/dev/sdb bs=1M $ sfdisk -R /dev/sdb
Yes, that's right. We're just copying the whole disk (with its partition table!) to the new disk. I tried to just copy the partition and make it larger with GNU/parted, but it kept barking about unsupported flags on the ext4 partiton (sdb1) and whatnot and I gave up quickly. Anyway, now we have a 2GBsdbwith the partitiontable fromsda, that is:sdb1is still 1GB in size, 1GB is unallocated space. - Luckily our disklayout was easy enough (and we had a simple MS-DOS partition-table). Thus, we just started cfdisk, deleted
sdb1and created a newsdb1, but filling out the whole disk (2GB). -
$ sfdisk -R /dev/sdbagain to re-read the partition-table. - Now that our partition is in good shape, we need to enlarge the peni^W filesystem as well:
$ e2fsck -vf /dev/sdb1 $ resize2fs -p /dev/sdb1
We might have to mount/dev/sdb1for this, I don't remember.
sdb, so we could go on and replace the small deb0.vdi VDI disk with the bigger one, deb1.vdi.
I've done this a few days ago and I already forgot wether I had to re-install the bootloader. But I'm sure you'll find out if you have to :-)*) as opposed to e.g. VMware, where it should be possible to resize a virtual disk. I've even done it once :-)