resizing virtual disk (vn0)

Glenn Dawson glenn at antimatter.net
Mon Jul 25 10:26:39 GMT 2005


At 02:36 AM 7/25/2005, alexandre.delay at free.fr wrote:
>hi,
>
>I am searching how to resize a virtual disk created with:
>
>
>    # dd if=/dev/zero of=newimage bs=1k count=5k
>    5120+0 records in
>    5120+0 records out
>    # vnconfig -s labels -c vn0 newimage
>    # disklabel -r -w vn0 auto
>    # newfs vn0c
>    Warning: 2048 sector(s) in last cylinder unallocated
>    /dev/vn0c:     10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
>            5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
>    super-block backups (for fsck -b #) at:
>     32
>    # mount /dev/vn0c /mnt
>
>When I decide to add more space to this virtual disk, I would like to be 
>able to
>resize it.
>
>The only solution I have is creating an other virtual disk and copy files 
>before
>deleting the first one. It takes a long time and two time more space than 
>what I
>want during the process.
>
>any idea?

Here's a set of step by step instructions to go along with my previous reply:

adding space to a vn backed filesystem

unmount the file system to be enlarged

# umount /foo

unconfigure the vn node that needs to be enlarged

# vnconfig -u /dev/vn0

*** MAKE A BACKUP of the file that was attached to the vn device

# cp /path/to/oldfile /path/to/backup

create a new file that's as big as the amount of space you want to add

# dd if=/dev/zero of=addfile count=2000000

(2000000 blocks is 1GB)

cat the original file and the new space into a new file

# cat origfile addfile > newfile

associate the new file with the vn device

# vnconfig -u /dev/vn0
# vnconfig -s labels -c /dev/vn0 /path/to/newfile

use disklabel to increase the size of the "disk"
(you'll need to do a bit of math to get the right numbers, but make sure you
edit the size of the disk and the size of the "c" partition)

# disklabel -r -e vn0

now use growfs to enlarge the actual filesystem
(size for growfs should match the size of the "c" partition when you edited the
disklabel)

# growfs -s 4000000 /dev/vn0c

mount the newly enlarged filesystem

# mount /dev/vn0c /some/path

and that's it.

-Glenn

>Cheers
>
>Alex
>
>_______________________________________________
>freebsd-questions at freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"



More information about the freebsd-questions mailing list