[linux-lvm] How to 'copy' a volume?

David Robinson zxvdr.au at gmail.com
Fri Jan 4 08:16:59 UTC 2008

Erich Weiler wrote:
> Greetings all-
> I have a problem I'm trying to solve, was hoping someone would know how 
> to get around it...
> I have a 2TB volume group, and one 500GB volume in it.  There is a Xen 
> VM in that volume group.  What I'd like to do is 'copy' the volume and 
> name it something else so I can use it as a 'template' for other VMs.
> I know that LVM has the 'snapshot' capability.  But this doesn't look 
> like it's what I need, as I don't want my duplicate volume to have any 
> affiliation with the original at all.  I actually want to duplicate VM 
> to take up just as much space as the first and be completely independent 
> of any changes on the first.  Is there a way of achieving this?  Could I 
> maybe simply make sure the volume is unmounted and not in use, then copy 
> the /dev/mapper/myvolume file to something else?  I bet it's more 
> involved than that...  :)

I find 'dd' is the simplest way of doing this. Unmount the volume, 
create a new logical volume of equal or greater size, then 'dd' from one 
to the other:

lvcreate -L 500G -n clone volgroup00
dd if=/dev/volgroup00/original of=/dev/volgroup/clone

Rather than copying VMs I snapshot them. I create a template system, 
create a snapshot of it, then modify the VMs config so it uses the 
snapshot as its disk (so the original is unmodified). If I need another 
copy of the VM its only a matter of creating another snapshot of the 
template LV, then copying and modifying the config. I usually set the 
extent size low so that modifications within the VMs don't chew up lots 
of space too.


More information about the linux-lvm mailing list