.TH VGIMPORTCLONE 8 "LVM TOOLS #VERSION#" "Red Hat, Inc." \" -*- nroff -*-
.SH NAME
vgimportclone \(em import and rename duplicated volume group (e.g. a hardware snapshot)
.SH SYNOPSIS
.B vgimportclone
.RB [ \-n | \-\-basevgname
.IR VolumeGroupName ]
.RB [ \-i | \-\-import ]
.I PhysicalVolume
.RI [ PhysicalVolume ...]
.SH DESCRIPTION
vgimportclone is used to import a duplicated VG (e.g. hardware snapshot).
Duplicate VG(s) and PV(s) are not able to be used until they are made
to coexist with the origin VG(s) and PV(s).
vgimportclone renames the VG associated with the specified PV(s) and
changes the associated VG and PV UUIDs.
.SH OPTIONS
See \fBlvm\fP(8) for common options.
.TP
.BR \-n ", " \-\-basevgname " " \fIVolumeGroupName
By default the snapshot VG will be renamed to the original name plus a
numeric suffix to avoid duplicate naming (e.g. 'test_vg' would be renamed
to 'test_vg1').  This option will override the base VG name that is
used for all VG renames.  If a VG already exists with the specified name
a numeric suffix will be added (like the previous example) to make it unique.
.TP
.BR \-i ", " \-\-import
Import exported Volume Groups.  Otherwise VGs that have been exported
will not be changed (nor will their associated PVs).
.SH ENVIRONMENT VARIABLES
.TP
.B LVM_BINARY
The LVM2 binary to use. Defaults to "lvm".
.SH Examples
The origin VG "vg00" has origin PVs "/dev/sda" and "/dev/sdb"
and the respective snapshot PVs are "/dev/sdc" and "/dev/sdd".
To rename the VG associated with "/dev/sdc" and "/dev/sdd"
from "vg00" to "vg00_snap"
(and to change associated VG and PV UUIDs) do:
.sp
.B vgimportclone \-\-basevgname vg00_snap /dev/sdc /dev/sdd

.SH SEE ALSO
.BR lvm (8),
.BR vgrename (8)

