summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in5
-rw-r--r--man/Makefile.in112
-rw-r--r--man/blkdeactivate.8_main (renamed from man/blkdeactivate.8.in)0
-rw-r--r--man/clvmd.8_main (renamed from man/clvmd.8.in)0
-rw-r--r--man/cmirrord.8_main (renamed from man/cmirrord.8.in)0
-rw-r--r--man/dmeventd.8_main (renamed from man/dmeventd.8.in)0
-rw-r--r--man/dmfilemapd.8_main (renamed from man/dmfilemapd.8.in)0
-rw-r--r--man/dmsetup.8_main (renamed from man/dmsetup.8.in)0
-rw-r--r--man/dmstats.8_main (renamed from man/dmstats.8.in)0
-rw-r--r--man/fsadm.8_main (renamed from man/fsadm.8.in)0
-rw-r--r--man/lvchange.8_des (renamed from man/lvchange.8.des)0
-rw-r--r--man/lvchange.8_end (renamed from man/lvchange.8.end)0
-rw-r--r--man/lvchange.8_pregen1272
-rw-r--r--man/lvconvert.8_des (renamed from man/lvconvert.8.des)0
-rw-r--r--man/lvconvert.8_end (renamed from man/lvconvert.8.end)0
-rw-r--r--man/lvconvert.8_pregen2059
-rw-r--r--man/lvcreate.8_des (renamed from man/lvcreate.8.des)0
-rw-r--r--man/lvcreate.8_end (renamed from man/lvcreate.8.end)0
-rw-r--r--man/lvcreate.8_pregen2865
-rw-r--r--man/lvdisplay.8_des (renamed from man/lvdisplay.8.des)0
-rw-r--r--man/lvdisplay.8_end0
-rw-r--r--man/lvdisplay.8_pregen639
-rw-r--r--man/lvextend.8_des (renamed from man/lvextend.8.des)0
-rw-r--r--man/lvextend.8_end (renamed from man/lvextend.8.end)0
-rw-r--r--man/lvextend.8_pregen781
-rw-r--r--man/lvm-config.8_des (renamed from man/lvm-config.8.des)0
-rw-r--r--man/lvm-config.8_end0
-rw-r--r--man/lvm-config.8_pregen522
-rw-r--r--man/lvm-dumpconfig.8_des (renamed from man/lvm-dumpconfig.8.des)0
-rw-r--r--man/lvm-dumpconfig.8_end0
-rw-r--r--man/lvm-dumpconfig.8_pregen522
-rw-r--r--man/lvm-fullreport.8_des (renamed from man/lvm-fullreport.8.des)0
-rw-r--r--man/lvm-fullreport.8_end0
-rw-r--r--man/lvm-fullreport.8_pregen623
-rw-r--r--man/lvm-lvpoll.8_des (renamed from man/lvm-lvpoll.8.des)0
-rw-r--r--man/lvm-lvpoll.8_end (renamed from man/lvm-lvpoll.8.end)0
-rw-r--r--man/lvm-lvpoll.8_pregen373
-rw-r--r--man/lvm.8_main (renamed from man/lvm.8.in)0
-rw-r--r--man/lvm.conf.5_main (renamed from man/lvm.conf.5.in)0
-rw-r--r--man/lvm2-activation-generator.8_main (renamed from man/lvm2-activation-generator.8.in)0
-rw-r--r--man/lvmcache.7_main (renamed from man/lvmcache.7.in)0
-rw-r--r--man/lvmconf.8_main (renamed from man/lvmconf.8.in)0
-rw-r--r--man/lvmconfig.8_des (renamed from man/lvmconfig.8.des)0
-rw-r--r--man/lvmconfig.8_end0
-rw-r--r--man/lvmconfig.8_pregen520
-rw-r--r--man/lvmdbusd.8_main (renamed from man/lvmdbusd.8.in)0
-rw-r--r--man/lvmdiskscan.8_des (renamed from man/lvmdiskscan.8.des)0
-rw-r--r--man/lvmdiskscan.8_end0
-rw-r--r--man/lvmdiskscan.8_pregen314
-rw-r--r--man/lvmdump.8_main (renamed from man/lvmdump.8.in)0
-rw-r--r--man/lvmetad.8_main (renamed from man/lvmetad.8.in)0
-rw-r--r--man/lvmlockctl.8_main (renamed from man/lvmlockctl.8.in)0
-rw-r--r--man/lvmlockd.8_main (renamed from man/lvmlockd.8.in)0
-rw-r--r--man/lvmpolld.8_main (renamed from man/lvmpolld.8.in)0
-rw-r--r--man/lvmraid.7_main (renamed from man/lvmraid.7.in)0
-rw-r--r--man/lvmreport.7_main (renamed from man/lvmreport.7.in)0
-rw-r--r--man/lvmsadc.8_des (renamed from man/lvmsadc.8.des)0
-rw-r--r--man/lvmsadc.8_end0
-rw-r--r--man/lvmsadc.8_pregen280
-rw-r--r--man/lvmsar.8_des (renamed from man/lvmsar.8.des)0
-rw-r--r--man/lvmsar.8_end0
-rw-r--r--man/lvmsar.8_pregen296
-rw-r--r--man/lvmsystemid.7_main (renamed from man/lvmsystemid.7.in)0
-rw-r--r--man/lvmthin.7_main (renamed from man/lvmthin.7.in)0
-rw-r--r--man/lvreduce.8_des (renamed from man/lvreduce.8.des)0
-rw-r--r--man/lvreduce.8_end (renamed from man/lvreduce.8.end)0
-rw-r--r--man/lvreduce.8_pregen426
-rw-r--r--man/lvremove.8_des (renamed from man/lvremove.8.des)0
-rw-r--r--man/lvremove.8_end (renamed from man/lvremove.8.end)0
-rw-r--r--man/lvremove.8_pregen424
-rw-r--r--man/lvrename.8_des (renamed from man/lvrename.8.des)0
-rw-r--r--man/lvrename.8_end (renamed from man/lvrename.8.end)0
-rw-r--r--man/lvrename.8_pregen356
-rw-r--r--man/lvresize.8_des (renamed from man/lvresize.8.des)0
-rw-r--r--man/lvresize.8_end (renamed from man/lvresize.8.end)0
-rw-r--r--man/lvresize.8_pregen702
-rw-r--r--man/lvs.8_des (renamed from man/lvs.8.des)0
-rw-r--r--man/lvs.8_end (renamed from man/lvs.8.end)0
-rw-r--r--man/lvs.8_pregen733
-rw-r--r--man/lvscan.8_des (renamed from man/lvscan.8.des)0
-rw-r--r--man/lvscan.8_end0
-rw-r--r--man/lvscan.8_pregen399
-rw-r--r--man/pvchange.8_des (renamed from man/pvchange.8.des)0
-rw-r--r--man/pvchange.8_end (renamed from man/pvchange.8.end)0
-rw-r--r--man/pvchange.8_pregen487
-rw-r--r--man/pvck.8_des (renamed from man/pvck.8.des)0
-rw-r--r--man/pvck.8_end (renamed from man/pvck.8.end)0
-rw-r--r--man/pvck.8_pregen311
-rw-r--r--man/pvcreate.8_des (renamed from man/pvcreate.8.des)0
-rw-r--r--man/pvcreate.8_end (renamed from man/pvcreate.8.end)0
-rw-r--r--man/pvcreate.8_pregen539
-rw-r--r--man/pvdisplay.8_des (renamed from man/pvdisplay.8.des)0
-rw-r--r--man/pvdisplay.8_end0
-rw-r--r--man/pvdisplay.8_pregen610
-rw-r--r--man/pvmove.8_des (renamed from man/pvmove.8.des)0
-rw-r--r--man/pvmove.8_end (renamed from man/pvmove.8.end)0
-rw-r--r--man/pvmove.8_pregen551
-rw-r--r--man/pvremove.8_des (renamed from man/pvremove.8.des)0
-rw-r--r--man/pvremove.8_end0
-rw-r--r--man/pvremove.8_pregen323
-rw-r--r--man/pvresize.8_des (renamed from man/pvresize.8.des)0
-rw-r--r--man/pvresize.8_end (renamed from man/pvresize.8.end)0
-rw-r--r--man/pvresize.8_pregen334
-rw-r--r--man/pvs.8_des (renamed from man/pvs.8.des)0
-rw-r--r--man/pvs.8_end (renamed from man/pvs.8.end)0
-rw-r--r--man/pvs.8_pregen656
-rw-r--r--man/pvscan.8_des (renamed from man/pvscan.8.des)0
-rw-r--r--man/pvscan.8_end0
-rw-r--r--man/pvscan.8_pregen542
-rw-r--r--man/vgcfgbackup.8_des (renamed from man/vgcfgbackup.8.des)0
-rw-r--r--man/vgcfgbackup.8_end0
-rw-r--r--man/vgcfgbackup.8_pregen389
-rw-r--r--man/vgcfgrestore.8_des (renamed from man/vgcfgrestore.8.des)0
-rw-r--r--man/vgcfgrestore.8_end (renamed from man/vgcfgrestore.8.end)0
-rw-r--r--man/vgcfgrestore.8_pregen473
-rw-r--r--man/vgchange.8_des (renamed from man/vgchange.8.des)0
-rw-r--r--man/vgchange.8_end (renamed from man/vgchange.8.end)0
-rw-r--r--man/vgchange.8_pregen1151
-rw-r--r--man/vgck.8_des (renamed from man/vgck.8.des)0
-rw-r--r--man/vgck.8_end0
-rw-r--r--man/vgck.8_pregen310
-rw-r--r--man/vgconvert.8_des (renamed from man/vgconvert.8.des)0
-rw-r--r--man/vgconvert.8_end0
-rw-r--r--man/vgconvert.8_pregen394
-rw-r--r--man/vgcreate.8_des (renamed from man/vgcreate.8.des)0
-rw-r--r--man/vgcreate.8_end (renamed from man/vgcreate.8.end)0
-rw-r--r--man/vgcreate.8_pregen626
-rw-r--r--man/vgdisplay.8_des (renamed from man/vgdisplay.8.des)0
-rw-r--r--man/vgdisplay.8_end0
-rw-r--r--man/vgdisplay.8_pregen606
-rw-r--r--man/vgexport.8_des (renamed from man/vgexport.8.des)0
-rw-r--r--man/vgexport.8_end0
-rw-r--r--man/vgexport.8_pregen363
-rw-r--r--man/vgextend.8_des (renamed from man/vgextend.8.des)0
-rw-r--r--man/vgextend.8_end (renamed from man/vgextend.8.end)0
-rw-r--r--man/vgextend.8_pregen473
-rw-r--r--man/vgimport.8_des (renamed from man/vgimport.8.des)0
-rw-r--r--man/vgimport.8_end0
-rw-r--r--man/vgimport.8_pregen372
-rw-r--r--man/vgimportclone.8_des (renamed from man/vgimportclone.8.des)0
-rw-r--r--man/vgimportclone.8_end (renamed from man/vgimportclone.8.end)0
-rw-r--r--man/vgimportclone.8_pregen330
-rw-r--r--man/vgmerge.8_des (renamed from man/vgmerge.8.des)0
-rw-r--r--man/vgmerge.8_end (renamed from man/vgmerge.8.end)0
-rw-r--r--man/vgmerge.8_pregen315
-rw-r--r--man/vgmknodes.8_des (renamed from man/vgmknodes.8.des)0
-rw-r--r--man/vgmknodes.8_end0
-rw-r--r--man/vgmknodes.8_pregen346
-rw-r--r--man/vgreduce.8_des (renamed from man/vgreduce.8.des)0
-rw-r--r--man/vgreduce.8_end0
-rw-r--r--man/vgreduce.8_pregen483
-rw-r--r--man/vgremove.8_des (renamed from man/vgremove.8.des)0
-rw-r--r--man/vgremove.8_end0
-rw-r--r--man/vgremove.8_pregen364
-rw-r--r--man/vgrename.8_des (renamed from man/vgrename.8.des)0
-rw-r--r--man/vgrename.8_end (renamed from man/vgrename.8.end)0
-rw-r--r--man/vgrename.8_pregen361
-rw-r--r--man/vgs.8_des (renamed from man/vgs.8.des)0
-rw-r--r--man/vgs.8_end (renamed from man/vgs.8.end)0
-rw-r--r--man/vgs.8_pregen642
-rw-r--r--man/vgscan.8_des (renamed from man/vgscan.8.des)0
-rw-r--r--man/vgscan.8_end0
-rw-r--r--man/vgscan.8_pregen356
-rw-r--r--man/vgsplit.8_des (renamed from man/vgsplit.8.des)0
-rw-r--r--man/vgsplit.8_end0
-rw-r--r--man/vgsplit.8_pregen444
166 files changed, 27332 insertions, 42 deletions
diff --git a/Makefile.in b/Makefile.in
index b5252780d..31d428d9b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -100,7 +100,7 @@ CLEAN_DIRS += autom4te.cache
check check_system check_cluster check_local check_lvmetad check_lvmpolld check_lvmlockd_test check_lvmlockd_dlm check_lvmlockd_sanlock unit: all
$(MAKE) -C test $(@)
-conf.generate: tools
+conf.generate man.generate: tools
# how to use parenthesis in makefiles
leftparen:=(
@@ -130,8 +130,9 @@ rpm: dist
$(top_srcdir)/spec/source.inc >$(rpmbuilddir)/SOURCES/source.inc
rpmbuild -v --define "_topdir $(rpmbuilddir)" -ba $(top_srcdir)/spec/lvm2.spec
-generate: conf.generate
+generate: conf.generate man.generate
$(MAKE) -C conf generate
+ $(MAKE) -C man generate
all_man:
$(MAKE) -C man all_man
diff --git a/man/Makefile.in b/man/Makefile.in
index 6c799a517..e7020cd52 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -1,6 +1,6 @@
#
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
-# Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
+# Copyright (C) 2004-2017 Red Hat, Inc. All rights reserved.
#
# This file is part of LVM2.
#
@@ -31,24 +31,20 @@ LVMRAIDMAN = lvmraid.7
MAN5=lvm.conf.5
MAN7=lvmsystemid.7 lvmreport.7
-MAN8=lvm.8 lvmconf.8 lvmdump.8
-MAN8DM=dmsetup.8 dmstats.8
-MAN8CLUSTER=
-MAN8SYSTEMD_GENERATORS=lvm2-activation-generator.8
-
-MAN8GEN=lvm-config.8 lvm-dumpconfig.8 lvm-fullreport.8 lvm-lvpoll.8 \
- lvcreate.8 lvchange.8 lvmconfig.8 lvconvert.8 lvdisplay.8 lvextend.8 \
- lvreduce.8 lvremove.8 lvrename.8 lvresize.8 lvs.8 \
- lvscan.8 pvchange.8 pvck.8 pvcreate.8 pvdisplay.8 pvmove.8 pvremove.8 \
- pvresize.8 pvs.8 pvscan.8 vgcfgbackup.8 vgcfgrestore.8 vgchange.8 \
- vgck.8 vgcreate.8 vgconvert.8 vgdisplay.8 vgexport.8 vgextend.8 \
- vgimport.8 vgimportclone.8 vgmerge.8 vgmknodes.8 vgreduce.8 vgremove.8 \
- vgrename.8 vgs.8 vgscan.8 vgsplit.8 \
- lvmsar.8 lvmsadc.8 lvmdiskscan.8 lvmchange.8
+MAN8=lvm.8 lvmconf.8 lvmdump.8 lvm-config.8 lvm-dumpconfig.8 lvm-fullreport.8 \
+ lvm-lvpoll.8 lvcreate.8 lvchange.8 lvmconfig.8 lvconvert.8 lvdisplay.8 \
+ lvextend.8 lvreduce.8 lvremove.8 lvrename.8 lvresize.8 lvs.8 \
+ lvscan.8 pvchange.8 pvck.8 pvcreate.8 pvdisplay.8 pvmove.8 pvremove.8 \
+ pvresize.8 pvs.8 pvscan.8 vgcfgbackup.8 vgcfgrestore.8 vgchange.8 \
+ vgck.8 vgcreate.8 vgconvert.8 vgdisplay.8 vgexport.8 vgextend.8 \
+ vgimport.8 vgimportclone.8 vgmerge.8 vgmknodes.8 vgreduce.8 vgremove.8 \
+ vgrename.8 vgs.8 vgscan.8 vgsplit.8 \
+ lvmsar.8 lvmsadc.8 lvmdiskscan.8 lvmchange.8
MAN8DM=dmsetup.8 dmstats.8 dmfilemapd.8
MAN8CLUSTER=
MAN8SYSTEMD_GENERATORS=lvm2-activation-generator.8
+
ifeq ($(MAKECMDGOALS),all_man)
MAN_ALL="yes"
endif
@@ -116,46 +112,73 @@ MAN5DIR=$(mandir)/man5
MAN7DIR=$(mandir)/man7
MAN8DIR=$(mandir)/man8
+MANGENERATOR=man-generator
+TESTMAN=test.gen
+
include $(top_builddir)/make.tmpl
-CLEAN_TARGETS+=$(MAN5) $(MAN7) $(MAN8) $(MAN8GEN) $(MAN8CLUSTER) \
- $(MAN8SYSTEMD_GENERATORS) $(MAN8DM) *.gen man-generator
+CLEAN_TARGETS+=$(MAN5) $(MAN7) $(MAN8) $(MAN8:%.8_gen=%.8) $(MAN8CLUSTER) \
+ $(MAN8SYSTEMD_GENERATORS) $(MAN8DM) $(MANGENERATOR) $(TESTMAN)
DISTCLEAN_TARGETS+=$(FSADMMAN) $(BLKDEACTIVATEMAN) $(DMEVENTDMAN) \
$(LVMETADMAN) $(LVMPOLLDMAN) $(LVMLOCKDMAN) $(CLVMDMAN) $(CMIRRORDMAN) \
$(LVMCACHEMAN) $(LVMTHINMAN) $(LVMDBUSDMAN) $(LVMRAIDMAN)
all: man device-mapper
-.PHONY: man install_man5 install_man7 install_man8
+.PHONY: man install_man5 install_man7 install_man8 pregenerated_man
device-mapper: $(MAN8DM)
-man: $(MAN5) $(MAN7) $(MAN8) $(MAN8GEN) $(MAN8CLUSTER) $(MAN8SYSTEMD_GENERATORS)
+man: $(MAN5) $(MAN7) $(MAN8) $(MAN8CLUSTER) $(MAN8SYSTEMD_GENERATORS)
all_man: man
-$(MAN5) $(MAN7) $(MAN8) $(MAN8GEN) $(MAN8DM) $(MAN8CLUSTER): Makefile
+$(MAN5) $(MAN7) $(MAN8) $(MAN8DM) $(MAN8CLUSTER) $(MAN8SYSTEMD_GENERATORS): Makefile
-Makefile: Makefile.in
- @:
-
-%: %.in
- @case "$@" in \
- */*) ;; \
- *) echo "Creating $@" ; $(SED) -e "s+#VERSION#+$(LVM_VERSION)+;s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+;s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+;s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+;s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+;s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+;s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+;s+#CLVMD_PATH#+@CLVMD_PATH@+;s+#LVM_PATH#+@LVM_PATH@+;s+#DEFAULT_RUN_DIR#+@DEFAULT_RUN_DIR@+;s+#DEFAULT_PID_DIR#+@DEFAULT_PID_DIR@+;s+#SYSTEMD_GENERATOR_DIR#+$(SYSTEMD_GENERATOR_DIR)+;s+#DEFAULT_MANGLING#+$(DEFAULT_MANGLING)+;" $< > $@ ;; \
- esac
-
-man-generator:
+$(MANGENERATOR): Makefile
$(CC) -DMAN_PAGE_GENERATOR -I$(top_builddir)/tools $(CFLAGS) $(top_srcdir)/tools/command.c -o $@
- - ./man-generator --primary lvmconfig > test.gen
- if [ ! -s test.gen ] ; then cp genfiles/*.gen $(top_builddir)/man; fi;
-$(MAN8GEN): man-generator
- echo "Generating $@" ;
- if [ ! -e $@.gen ]; then ./man-generator --primary $(basename $@) $(top_srcdir)/man/$@.des > $@.gen; ./man-generator --secondary $(basename $@) >> $@.gen; fi
- if [ -f $(top_srcdir)/man/$@.end ]; then cat $(top_srcdir)/man/$@.end >> $@.gen; fi;
- cat $(top_srcdir)/man/see_also.end >> $@.gen
- $(SED) -e "s+#VERSION#+$(LVM_VERSION)+;s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+;s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+;s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+;s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+;s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+;s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+;s+#CLVMD_PATH#+@CLVMD_PATH@+;s+#LVM_PATH#+@LVM_PATH@+;s+#DEFAULT_RUN_DIR#+@DEFAULT_RUN_DIR@+;s+#DEFAULT_PID_DIR#+@DEFAULT_PID_DIR@+;s+#SYSTEMD_GENERATOR_DIR#+$(SYSTEMD_GENERATOR_DIR)+;s+#DEFAULT_MANGLING#+$(DEFAULT_MANGLING)+;" $@.gen > $@
+# Test whether or not the man page generator works
+$(TESTMAN): $(MANGENERATOR)
+ - $(MANGENERATOR) --primary lvmconfig > $@
+
+SEE_ALSO=$(srcdir)/see_also.end
+
+%.8_gen: $(srcdir)/%.8_des $(srcdir)/%.8_end $(MANGENERATOR) $(TESTMAN)
+ ( \
+ if [ ! -s $(TESTMAN) ] ; then \
+ echo "Copying pre-generated $@" ; \
+ else \
+ echo "Generating $@" ; \
+ fi \
+ )
+ ( \
+ if [ ! -s $(TESTMAN) ] ; then \
+ cat $(srcdir)/$(@:%.8_gen=%.8_pregen) ; \
+ else \
+ MANCMD=$(basename $@) && \
+ $(MANGENERATOR) --primary $$MANCMD $< && \
+ $(MANGENERATOR) --secondary $$MANCMD && \
+ cat $(srcdir)/$(basename $@).8_end && \
+ cat $(SEE_ALSO) ; \
+ fi \
+ ) > $@
+
+define SUBSTVARS
+echo "Generating $@" ; $(SED) -e "s+#VERSION#+$(LVM_VERSION)+;s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+;s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+;s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+;s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+;s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+;s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+;s+#CLVMD_PATH#+/data/lvmtest/usr/sbin/clvmd+;s+#LVM_PATH#+/data/lvmtest/sbin/lvm+;s+#DEFAULT_RUN_DIR#+/var/run/lvm+;s+#DEFAULT_PID_DIR#+/var/run+;s+#SYSTEMD_GENERATOR_DIR#+$(SYSTEMD_GENERATOR_DIR)+;s+#DEFAULT_MANGLING#+$(DEFAULT_MANGLING)+;" $< > $@
+endef
+
+%.5: $(srcdir)/%.5_main
+ $(SUBSTVARS)
+
+%.7: $(srcdir)/%.7_main
+ $(SUBSTVARS)
+
+%.8: $(srcdir)/%.8_main
+ $(SUBSTVARS)
+
+%.8: %.8_gen
+ $(SUBSTVARS)
install_man5: $(MAN5)
$(INSTALL) -d $(MAN5DIR)
@@ -165,10 +188,10 @@ install_man7: $(MAN7)
$(INSTALL) -d $(MAN7DIR)
$(INSTALL_DATA) $(MAN7) $(MAN7DIR)/
-install_man8: $(MAN8) $(MAN8GEN)
+install_man8: $(MAN8) $(MAN8GENERATED)
$(INSTALL) -d $(MAN8DIR)
$(INSTALL_DATA) $(MAN8) $(MAN8DIR)/
- $(INSTALL_DATA) $(MAN8GEN) $(MAN8DIR)/
+ $(INSTALL_DATA) $(MAN8GENERATED) $(MAN8DIR)/
install_lvm2: install_man5 install_man7 install_man8
@@ -189,3 +212,12 @@ install_systemd_generators: $(MAN8SYSTEMD_GENERATORS)
install: install_lvm2 install_device-mapper install_cluster
install_all_man: install install_systemd_generators
+
+# Copy generated man pages back to source tree as fallback for machines where generator doesn't work
+pregenerated_man: all
+ for i in $(srcdir)/*.8_des; do \
+ CMD=`basename $$i .8_des`; \
+ cat $${CMD}.8 > $(srcdir)/$$CMD.8_pregen ; \
+ done
+
+generate: pregenerated_man
diff --git a/man/blkdeactivate.8.in b/man/blkdeactivate.8_main
index 8bb10b5cd..8bb10b5cd 100644
--- a/man/blkdeactivate.8.in
+++ b/man/blkdeactivate.8_main
diff --git a/man/clvmd.8.in b/man/clvmd.8_main
index 21f8c7dbf..21f8c7dbf 100644
--- a/man/clvmd.8.in
+++ b/man/clvmd.8_main
diff --git a/man/cmirrord.8.in b/man/cmirrord.8_main
index ad604c70d..ad604c70d 100644
--- a/man/cmirrord.8.in
+++ b/man/cmirrord.8_main
diff --git a/man/dmeventd.8.in b/man/dmeventd.8_main
index 057f7561c..057f7561c 100644
--- a/man/dmeventd.8.in
+++ b/man/dmeventd.8_main
diff --git a/man/dmfilemapd.8.in b/man/dmfilemapd.8_main
index 8e19e4b03..8e19e4b03 100644
--- a/man/dmfilemapd.8.in
+++ b/man/dmfilemapd.8_main
diff --git a/man/dmsetup.8.in b/man/dmsetup.8_main
index 4261fc4c1..4261fc4c1 100644
--- a/man/dmsetup.8.in
+++ b/man/dmsetup.8_main
diff --git a/man/dmstats.8.in b/man/dmstats.8_main
index 682f01d6a..682f01d6a 100644
--- a/man/dmstats.8.in
+++ b/man/dmstats.8_main
diff --git a/man/fsadm.8.in b/man/fsadm.8_main
index 02431c527..02431c527 100644
--- a/man/fsadm.8.in
+++ b/man/fsadm.8_main
diff --git a/man/lvchange.8.des b/man/lvchange.8_des
index 7aa8ce754..7aa8ce754 100644
--- a/man/lvchange.8.des
+++ b/man/lvchange.8_des
diff --git a/man/lvchange.8.end b/man/lvchange.8_end
index 7134e46cc..7134e46cc 100644
--- a/man/lvchange.8.end
+++ b/man/lvchange.8_end
diff --git a/man/lvchange.8_pregen b/man/lvchange.8_pregen
new file mode 100644
index 000000000..cba383058
--- /dev/null
+++ b/man/lvchange.8_pregen
@@ -0,0 +1,1272 @@
+.TH LVCHANGE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvchange \- Change the attributes of logical volume(s)
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvchange\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.P
+.ad l
+ \fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP
+.ad b
+.br
+.ad l
+ \fB--activationmode\fP \fBpartial\fP|\fBdegraded\fP|\fBcomplete\fP
+.ad b
+.br
+.ad l
+ \fB--addtag\fP \fITag\fP
+.ad b
+.br
+.ad l
+ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.ad b
+.br
+.ad l
+ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP
+.ad b
+.br
+.ad l
+ \fB--cachepolicy\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--cachesettings\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-C\fP|\fB--contiguous\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--deltag\fP \fITag\fP
+.ad b
+.br
+.ad l
+ \fB--detachprofile\fP
+.ad b
+.br
+.ad l
+ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-f\fP|\fB--force\fP
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB-K\fP|\fB--ignoreactivationskip\fP
+.ad b
+.br
+.ad l
+ \fB--ignorelockingfailure\fP
+.ad b
+.br
+.ad l
+ \fB--ignoremonitoring\fP
+.ad b
+.br
+.ad l
+ \fB--ignoreskippedcluster\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB-j\fP|\fB--major\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--[raid]maxrecoveryrate\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB--metadataprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--minor\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--[raid]minrecoveryrate\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB--monitor\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--noudevsync\fP
+.ad b
+.br
+.ad l
+ \fB-P\fP|\fB--partial\fP
+.ad b
+.br
+.ad l
+ \fB-p\fP|\fB--permission\fP \fBrw\fP|\fBr\fP
+.ad b
+.br
+.ad l
+ \fB-M\fP|\fB--persistent\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--poll\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--rebuild\fP \fIPV\fP
+.ad b
+.br
+.ad l
+ \fB--refresh\fP
+.ad b
+.br
+.ad l
+ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.ad b
+.br
+.ad l
+ \fB--resync\fP
+.ad b
+.br
+.ad l
+ \fB-S\fP|\fB--select\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-k\fP|\fB--setactivationskip\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--[raid]syncaction\fP \fBcheck\fP|\fBrepair\fP
+.ad b
+.br
+.ad l
+ \fB--sysinit\fP
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB--[raid]writebehind\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--[raid]writemostly\fP \fIPV\fP[\fB:t\fP|\fBn\fP|\fBy\fP]
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
+.br
+.ad l
+ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP
+.ad b
+
+.P
+
+.SH DESCRIPTION
+lvchange changes LV attributes in the VG, changes LV activation in the
+kernel, and includes other utilities for LV maintenance.
+
+.P
+.SH USAGE
+.br
+.P
+.
+Change a general LV attribute.
+.br
+For options listed in parentheses, any one is
+.br
+required, after which the others are optional.
+.br
+.P
+\fBlvchange\fP
+.RS 4
+( \fB-C\fP|\fB--contiguous\fP \fBy\fP|\fBn\fP,
+.ad b
+.br
+.ad l
+ \fB-p\fP|\fB--permission\fP \fBrw\fP|\fBr\fP,
+.ad b
+.br
+.ad l
+ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP,
+.ad b
+.br
+.ad l
+ \fB-k\fP|\fB--setactivationskip\fP \fBy\fP|\fBn\fP,
+.ad b
+.br
+.ad l
+ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP,
+.ad b
+.br
+.ad l
+ \fB-M\fP|\fB--persistent\fP \fBn\fP,
+.ad b
+.br
+.ad l
+ \fB--addtag\fP \fITag\fP,
+.ad b
+.br
+.ad l
+ \fB--deltag\fP \fITag\fP,
+.ad b
+.br
+.ad l
+ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP,
+.ad b
+.br
+.ad l
+ \fB--detachprofile\fP,
+.ad b
+.br
+.ad l
+ \fB--metadataprofile\fP \fIString\fP,
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP,
+.ad b
+.br
+.ad l
+ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP,
+.ad b
+.br
+.ad l
+ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP,
+.ad b
+.br
+.ad l
+ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP,
+.ad b
+.br
+.ad l
+ \fB--cachepolicy\fP \fIString\fP,
+.ad b
+.br
+.ad l
+ \fB--cachesettings\fP \fIString\fP,
+.ad b
+.br
+.ad l
+ \fB--[raid]minrecoveryrate\fP \fISize\fP[k|UNIT],
+.ad b
+.br
+.ad l
+ \fB--[raid]maxrecoveryrate\fP \fISize\fP[k|UNIT],
+.ad b
+.br
+.ad l
+ \fB--[raid]writebehind\fP \fINumber\fP,
+.ad b
+.br
+.ad l
+ \fB--[raid]writemostly\fP \fIPV\fP[\fB:t\fP|\fBn\fP|\fBy\fP] )
+.RE
+.RS 4
+ \fIVG\fP|\fILV\fP|\fITag\fP|\fISelect\fP ...
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Resyncronize a mirror or raid LV.
+.br
+.P
+\fBlvchange\fP \fB--resync\fP \fIVG\fP|\fILV\fP\fI_mirror_raid\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Resynchronize or check a raid LV.
+.br
+.P
+\fBlvchange\fP \fB--syncaction\fP \fBcheck\fP|\fBrepair\fP \fIVG\fP|\fILV\fP\fI_raid\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Reconstruct data on specific PVs of a raid LV.
+.br
+.P
+\fBlvchange\fP \fB--rebuild\fP \fIPV\fP \fIVG\fP|\fILV\fP\fI_raid\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Activate or deactivate an LV.
+.br
+.P
+\fBlvchange\fP \fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP \fIVG\fP|\fILV\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB-K\fP|\fB--ignoreactivationskip\fP ]
+.ad b
+.br
+.ad l
+[ \fB--activationmode\fP \fBpartial\fP|\fBdegraded\fP|\fBcomplete\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--sysinit\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Reactivate an LV using the latest metadata.
+.br
+.P
+\fBlvchange\fP \fB--refresh\fP \fIVG\fP|\fILV\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poll\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Start or stop monitoring an LV from dmeventd.
+.br
+.P
+\fBlvchange\fP \fB--monitor\fP \fBy\fP|\fBn\fP \fIVG\fP|\fILV\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB--poll\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Start or stop processing an LV conversion.
+.br
+.P
+\fBlvchange\fP \fB--poll\fP \fBy\fP|\fBn\fP \fIVG\fP|\fILV\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB--monitor\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Make the minor device number persistent for an LV.
+.br
+.P
+\fBlvchange\fP \fB-M\fP|\fB--persistent\fP \fBy\fP \fB--minor\fP \fINumber\fP \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-j\fP|\fB--major\fP \fINumber\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoremonitoring\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP
+.br
+Change the active state of LVs.
+An active LV can be used through a block device,
+allowing data on the LV to be accessed.
+\fBy\fP makes LVs active, or available.
+\fBn\fP makes LVs inactive, or unavailable.
+The block device for the LV is added or removed from the system
+using device-mapper in the kernel.
+A symbolic link /dev/VGName/LVName pointing to the device node is also added/removed.
+All software and scripts should access the device through the symbolic
+link and present this as the name of the device.
+The location and name of the underlying device node may depend on
+the distribution, configuration (e.g. udev), or release version.
+\fBay\fP specifies autoactivation, in which case an LV is activated
+only if it matches an item in lvm.conf activation/auto_activation_volume_list.
+If the list is not set, all LVs are considered to match, and if
+if the list is set but empty, no LVs match.
+Autoactivation should be used during system boot to make it possible
+to select which LVs should be automatically activated by the system.
+See lvmlockd(8) for more information about activation options \fBey\fP and \fBsy\fP for shared VGs.
+See clvmd(8) for more information about activation options \fBey\fP, \fBsy\fP, \fBly\fP and \fBln\fP for clustered VGs.
+.ad b
+
+.HP
+.ad l
+\fB--activationmode\fP \fBpartial\fP|\fBdegraded\fP|\fBcomplete\fP
+.br
+Determines if LV activation is allowed when PVs are missing,
+e.g. because of a device failure.
+\fBcomplete\fP only allows LVs with no missing PVs to be activated,
+and is the most restrictive mode.
+\fBdegraded\fP allows RAID LVs with missing PVs to be activated.
+(This does not include the "mirror" type, see "raid1" instead.)
+\fBpartial\fP allows any LV with missing PVs to be activated, and
+should only be used for recovery or repair.
+For default, see lvm.conf/activation_mode.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--addtag\fP \fITag\fP
+.br
+Adds a tag to a PV, VG or LV. This option can be repeated to add
+multiple tags at once. See lvm(8) for information about tags.
+.ad b
+
+.HP
+.ad l
+\fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.br
+Determines the allocation policy when a command needs to allocate
+Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
+which can be changed with vgchange/lvchange, or overriden on the
+command line.
+\fBnormal\fP applies common sense rules such as not placing parallel stripes
+on the same PV.
+\fBinherit\fP applies the VG policy to an LV.
+\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
+\fBcling\fP places new PEs on the same PV as existing PEs in the same
+stripe of the LV.
+If there are sufficient PEs for an allocation, but normal does not
+use them, \fBanywhere\fP will use them even if it reduces performance,
+e.g. by placing two stripes on the same PV.
+Optional positional PV args on the command line can also be used to limit
+which PVs the command will use for allocation.
+See \fBlvm\fP(8) for more information about allocation.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP
+.br
+Specifies when writes to a cache LV should be considered complete.
+\fBwriteback\fP considers a write complete as soon as it is
+stored in the cache pool.
+\fBwritethough\fP considers a write complete only when it has
+been stored in both the cache pool and on the origin LV.
+While writethrough may be slower for writes, it is more
+resilient if something should happen to a device associated with the
+cache pool LV. With \fBpassthrough\fP, all reads are served
+from the origin LV (all reads miss the cache) and all writes are
+forwarded to the origin LV; additionally, write hits cause cache
+block invalidates. See \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--cachepolicy\fP \fIString\fP
+.br
+Specifies the cache policy for a cache LV.
+See \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--cachesettings\fP \fIString\fP
+.br
+Specifies tunable values for a cache LV in "Key = Value" form.
+Repeat this option to specify multiple values.
+(The default values should usually be adequate.)
+The special string value \fBdefault\fP switches
+settings back to their default kernel values and removes
+them from the list of settings stored in LVM metadata.
+See \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-C\fP|\fB--contiguous\fP \fBy\fP|\fBn\fP
+.br
+Sets or resets the contiguous allocation policy for LVs.
+Default is no contiguous allocation based on a next free principle.
+It is only possible to change a non-contiguous allocation policy
+to contiguous if all of the allocated physical extents in the LV
+are already contiguous.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--deltag\fP \fITag\fP
+.br
+Deletes a tag from a PV, VG or LV. This option can be repeated to delete
+multiple tags at once. See lvm(8) for information about tags.
+.ad b
+
+.HP
+.ad l
+\fB--detachprofile\fP
+.br
+Detaches a metadata profile from a VG or LV.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP
+.br
+Specifies how the device-mapper thin pool layer in the kernel should
+handle discards.
+\fBignore\fP causes the thin pool to ignore discards.
+\fBnopassdown\fP causes the thin pool to process discards itself to
+allow reuse of unneeded extents in the thin pool.
+\fBpassdown\fP causes the thin pool to process discards itself
+(like nopassdown) and pass the discards to the underlying device.
+See \fBlvmthin\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--errorwhenfull\fP \fBy\fP|\fBn\fP
+.br
+Specifies thin pool behavior when data space is exhausted.
+When yes, device-mapper will immediately return an error
+when a thin pool is full and an I/O request requires space.
+When no, device-mapper will queue these I/O requests for a
+period of time to allow the thin pool to be extended.
+Errors are returned if no space is available after the timeout.
+(Also see dm-thin-pool kernel module option no_space_timeout.)
+See \fBlvmthin\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-K\fP|\fB--ignoreactivationskip\fP
+.br
+Ignore the "activation skip" LV flag during activation
+to allow LVs with the flag set to be activated.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--ignoremonitoring\fP
+.br
+Do not interact with dmeventd unless --monitor is specified.
+Do not use this if dmeventd is already monitoring a device.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-j\fP|\fB--major\fP \fINumber\fP
+.br
+Sets the major number of an LV block device.
+.ad b
+
+.HP
+.ad l
+\fB--[raid]maxrecoveryrate\fP \fISize\fP[k|UNIT]
+.br
+Sets the maximum recovery rate for a RAID LV. The rate value
+is an amount of data per second for each device in the array.
+Setting the rate to 0 means it will be unbounded.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--metadataprofile\fP \fIString\fP
+.br
+The metadata profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--minor\fP \fINumber\fP
+.br
+Sets the minor number of an LV block device.
+.ad b
+
+.HP
+.ad l
+\fB--[raid]minrecoveryrate\fP \fISize\fP[k|UNIT]
+.br
+Sets the minimum recovery rate for a RAID LV. The rate value
+is an amount of data per second for each device in the array.
+Setting the rate to 0 means it will be unbounded.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--monitor\fP \fBy\fP|\fBn\fP
+.br
+Start (yes) or stop (no) monitoring an LV with dmeventd.
+dmeventd monitors kernel events for an LV, and performs
+automated maintenance for the LV in reponse to specific events.
+See dmeventd(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB-p\fP|\fB--permission\fP \fBrw\fP|\fBr\fP
+.br
+Set access permission to read only \fBr\fP or read and write \fBrw\fP.
+.ad b
+
+.HP
+.ad l
+\fB-M\fP|\fB--persistent\fP \fBy\fP|\fBn\fP
+.br
+When yes, makes the specified minor number persistent.
+.ad b
+
+.HP
+.ad l
+\fB--poll\fP \fBy\fP|\fBn\fP
+.br
+When yes, start the background transformation of an LV.
+An incomplete transformation, e.g. pvmove or lvconvert interrupted
+by reboot or crash, can be restarted from the last checkpoint with --poll y.
+When no, background transformation of an LV will not occur, and the
+transformation will not complete. It may not be appropriate to immediately
+poll an LV after activation, in which case --poll n can be used to defer
+polling until a later --poll y command.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP
+.br
+Sets read ahead sector count of an LV.
+\fBauto\fP is the default which allows the kernel to choose
+a suitable value automatically.
+\fBnone\fP is equivalent to zero.
+.ad b
+
+.HP
+.ad l
+\fB--rebuild\fP \fIPV\fP
+.br
+Selects a PV to rebuild in a raid LV. Multiple PVs can be rebuilt by
+repeating this option.
+Use this option in place of --resync or --syncaction repair when the
+PVs with corrupted data are known, and their data should be reconstructed
+rather than reconstructing default (rotating) data.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--refresh\fP
+.br
+If the LV is active, reload its metadata.
+This is not necessary in normal operation, but may be useful
+if something has gone wrong, or if some form of manual LV
+sharing is being used.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--resync\fP
+.br
+Initiates mirror synchronization. Synchronization generally happens
+automatically, but this option forces it to run.
+Also see --rebuild to synchronize a specific PV.
+During synchronization, data is read from the primary mirror device
+and copied to the others. This can take considerable time, during
+which the LV is without a complete redundant copy of the data.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB-k\fP|\fB--setactivationskip\fP \fBy\fP|\fBn\fP
+.br
+Persistently sets (yes) or clears (no) the "activation skip" flag on an LV.
+An LV with this flag set is not activated unless the
+--ignoreactivationskip option is used by the activation command.
+This flag is set by default on new thin snapshot LVs.
+The flag is not applied to deactivation.
+The current value of the flag is indicated in the lvs lv_attr bits.
+.ad b
+
+.HP
+.ad l
+\fB--[raid]syncaction\fP \fBcheck\fP|\fBrepair\fP
+.br
+Initiate different types of RAID synchronization.
+This causes the RAID LV to read all data and parity
+blocks in the array and check for discrepancies
+(mismatches between mirrors or incorrect parity values).
+\fBcheck\fP will count but not correct discrepancies.
+\fBrepair\fP will correct discrepancies.
+See lvs for reporting discrepancies found or repaired.
+.ad b
+
+.HP
+.ad l
+\fB--sysinit\fP
+.br
+Indicates that vgchange/lvchange is being invoked from early system initialisation
+scripts (e.g. rc.sysinit or an initrd), before writable filesystems are
+available. As such, some functionality needs to be disabled and this option
+acts as a shortcut which selects an appropriate set of options. Currently,
+this is equivalent to using --ignorelockingfailure, --ignoremonitoring,
+--poll n, and setting env var LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES.
+When used in conjunction with lvmetad enabled and running,
+vgchange/lvchange skip autoactivation, and defer to pvscan autoactivation.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB--[raid]writebehind\fP \fINumber\fP
+.br
+The maximum number of outstanding writes that are allowed to
+devices in a RAID1 LV that is marked write-mostly.
+Once this value is exceeded, writes become synchronous (i.e. all writes
+to the constituent devices must complete before the array signals the
+write has completed). Setting the value to zero clears the preference
+and allows the system to choose the value arbitrarily.
+.ad b
+
+.HP
+.ad l
+\fB--[raid]writemostly\fP \fIPV\fP[\fB:t\fP|\fBn\fP|\fBy\fP]
+.br
+Mark a device in a RAID1 LV as write-mostly. All reads
+to these drives will be avoided unless absolutely necessary. This keeps
+the number of I/Os to the drive to a minimum. The default behavior is to
+set the write-mostly attribute for the specified PV.
+It is also possible to remove the write-mostly flag by adding the
+suffix \fB:n\fP at the end of the PV name, or to toggle the value with
+the suffix \fB:t\fP. Repeat this option to change the attribute on
+multiple PVs.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+
+.HP
+.ad l
+\fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP
+.br
+Set zeroing mode for thin pool. Note: already provisioned blocks from pool
+in non-zero mode are not cleared in unwritten parts when setting --zero y.
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+LV followed by _<type> indicates that an LV of the
+given type is required. (raid represents raid<N> type)
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fISelect\fP
+.br
+Select indicates that a required positional parameter can
+be omitted if the \fB--select\fP option is used.
+No arg appears in this position.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Change LV permission to read-only:
+.sp
+.B lvchange \-pr vg00/lvol1
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvconvert.8.des b/man/lvconvert.8_des
index 0548c2cee..0548c2cee 100644
--- a/man/lvconvert.8.des
+++ b/man/lvconvert.8_des
diff --git a/man/lvconvert.8.end b/man/lvconvert.8_end
index 5a3d4759e..5a3d4759e 100644
--- a/man/lvconvert.8.end
+++ b/man/lvconvert.8_end
diff --git a/man/lvconvert.8_pregen b/man/lvconvert.8_pregen
new file mode 100644
index 000000000..bc8d53fc1
--- /dev/null
+++ b/man/lvconvert.8_pregen
@@ -0,0 +1,2059 @@
+.TH LVCONVERT 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvconvert \- Change logical volume layout
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvconvert\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.P
+.ad l
+ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.ad b
+.br
+.ad l
+ \fB-b\fP|\fB--background\fP
+.ad b
+.br
+.ad l
+ \fB-H\fP|\fB--cache\fP
+.ad b
+.br
+.ad l
+ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP
+.ad b
+.br
+.ad l
+ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP
+.ad b
+.br
+.ad l
+ \fB--cachepolicy\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--cachepool\fP \fILV\fP
+.ad b
+.br
+.ad l
+ \fB--cachesettings\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-f\fP|\fB--force\fP
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB-i\fP|\fB--interval\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB--merge\fP
+.ad b
+.br
+.ad l
+ \fB--mergemirrors\fP
+.ad b
+.br
+.ad l
+ \fB--mergesnapshot\fP
+.ad b
+.br
+.ad l
+ \fB--mergethin\fP
+.ad b
+.br
+.ad l
+ \fB--metadataprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--mirrorlog\fP \fBcore\fP|\fBdisk\fP
+.ad b
+.br
+.ad l
+ \fB-m\fP|\fB--mirrors\fP [\fB+\fP|\fB-\fP]\fINumber\fP
+.ad b
+.br
+.ad l
+ \fB-n\fP|\fB--name\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--noudevsync\fP
+.ad b
+.br
+.ad l
+ \fB--originname\fP \fILV\fP
+.ad b
+.br
+.ad l
+ \fB--poolmetadata\fP \fILV\fP
+.ad b
+.br
+.ad l
+ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP
+.ad b
+.br
+.ad l
+ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB--repair\fP
+.ad b
+.br
+.ad l
+ \fB--replace\fP \fIPV\fP
+.ad b
+.br
+.ad l
+ \fB-s\fP|\fB--snapshot\fP
+.ad b
+.br
+.ad l
+ \fB--splitcache\fP
+.ad b
+.br
+.ad l
+ \fB--splitmirrors\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--splitsnapshot\fP
+.ad b
+.br
+.ad l
+ \fB--startpoll\fP
+.ad b
+.br
+.ad l
+ \fB--stripes\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB--swapmetadata\fP
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB-T\fP|\fB--thin\fP
+.ad b
+.br
+.ad l
+ \fB--thinpool\fP \fILV\fP
+.ad b
+.br
+.ad l
+ \fB--trackchanges\fP
+.ad b
+.br
+.ad l
+ \fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP
+.ad b
+.br
+.ad l
+ \fB--uncache\fP
+.ad b
+.br
+.ad l
+ \fB--usepolicies\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
+.br
+.ad l
+ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP
+.ad b
+
+.P
+
+.SH DESCRIPTION
+lvconvert changes the LV type and includes utilities for LV data
+maintenance. The LV type controls data layout and redundancy.
+The LV type is also called the segment type or segtype.
+
+To display the current LV type, run the command:
+
+.B lvs \-o name,segtype
+.I LV
+
+The
+.B linear
+type is equivalent to the
+.B striped
+type when one stripe exists.
+In that case, the types can sometimes be used interchangably.
+
+In most cases, the
+.B mirror
+type is deprecated and the
+.B raid1
+type should be used. They are both implementations of mirroring.
+
+In some cases, an LV is a single device mapper (dm) layer above physical
+devices. In other cases, hidden LVs (dm devices) are layered between the
+visible LV and physical devices. LVs in the middle layers are called sub LVs.
+A command run on a visible LV sometimes operates on a sub LV rather than
+the specified LV. In other cases, a sub LV must be specified directly on
+the command line.
+
+Striped raid types are
+.B raid0/raid0_meta
+,
+.B raid5
+(an alias for raid5_ls),
+.B raid6
+(an alias for raid6_zr) and
+.B raid10
+(an alias for raid10_near).
+
+As opposed to mirroring, raid5 and raid6 stripe data and calculate parity
+blocks. The parity blocks can be used for data block recovery in case devices
+fail. A maximum number of one device in a raid5 LV may fail and two in case
+of raid6. Striped raid types typically rotate the parity blocks for performance
+reasons thus avoiding contention on a single device. Layouts of raid5 rotating
+parity blocks can be one of left-asymmetric (raid5_la), left-symmetric (raid5_ls
+with alias raid5), right-asymmetric (raid5_ra), right-symmetric (raid5_rs) and raid5_n,
+which doesn't rotate parity blocks. Any \"_n\" layouts allow for conversion between
+raid levels (raid5_n -> raid6 or raid5_n -> striped/raid0/raid0_meta).
+raid6 layouts are zero-restart (raid6_zr with alias raid6), next-restart (raid6_nr),
+next-continue (raid6_nc). Additionally, special raid6 layouts for raid level conversions
+between raid5 and raid6 are raid6_ls_6, raid6_rs_6, raid6_la_6 and raid6_ra_6. Those
+correspond to their raid5 counterparts (e.g. raid5_rs can be directly converted to raid6_rs_6
+and vice-versa).
+raid10 (an alias for raid10_near) is currently limited to one data copy and even number of
+sub LVs. This is a mirror group layout thus a single sub LV may fail per mirror group
+without data loss.
+Striped raid types support converting the layout, their stripesize
+and their number of stripes.
+
+The striped raid types combined with raid1 allow for conversion from linear -> striped/raid0/raid0_meta
+and vice-versa by e.g. linear <-> raid1 <-> raid5_n (then adding stripes) <-> striped/raid0/raid0_meta.
+
+Sub LVs can be displayed with the command
+.B lvs -a
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+Convert LV to linear.
+.br
+.P
+\fBlvconvert\fP \fB--type\fP \fBlinear\fP \fILV\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Convert LV to striped.
+.br
+.P
+\fBlvconvert\fP \fB--type\fP \fBstriped\fP \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Convert LV to raid or change raid layout
+.br
+(a specific raid level must be used, e.g. raid1).
+.br
+.P
+\fBlvconvert\fP \fB--type\fP \fBraid\fP \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-m\fP|\fB--mirrors\fP [\fB+\fP|\fB-\fP]\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Convert LV to raid1 or mirror, or change number of mirror images.
+.br
+.P
+\fBlvconvert\fP \fB-m\fP|\fB--mirrors\fP [\fB+\fP|\fB-\fP]\fINumber\fP \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--mirrorlog\fP \fBcore\fP|\fBdisk\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Convert raid LV to change number of stripe images.
+.br
+.P
+\fBlvconvert\fP \fB--stripes\fP \fINumber\fP \fILV\fP\fI_raid\fP
+.br
+.RS 4
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Convert raid LV to change the stripe size.
+.br
+.P
+\fBlvconvert\fP \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] \fILV\fP\fI_raid\fP
+.br
+.RS 4
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Split images from a raid1 or mirror LV and use them to create a new LV.
+.br
+.P
+\fBlvconvert\fP \fB--splitmirrors\fP \fINumber\fP \fB-n\fP|\fB--name\fP \fILV\fP\fI_new\fP \fILV\fP\fI_cache_mirror_raid1\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Split images from a raid1 LV and track changes to origin.
+.br
+.P
+\fBlvconvert\fP \fB--splitmirrors\fP \fINumber\fP \fB--trackchanges\fP \fILV\fP\fI_cache_raid1\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Merge LV images that were split from a raid1 LV.
+.br
+.P
+\fBlvconvert\fP \fB--mergemirrors\fP \fIVG\fP|\fILV\fP\fI_linear_raid\fP|\fITag\fP ...
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Convert LV to a thin LV, using the original LV as an external origin.
+.br
+.P
+\fBlvconvert\fP \fB--type\fP \fBthin\fP \fB--thinpool\fP \fILV\fP \fILV\fP\fI_linear_striped_cache_raid\fP
+.br
+.RS 4
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--originname\fP \fILV\fP\fI_new\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadata\fP \fILV\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Convert LV to type cache.
+.br
+.P
+\fBlvconvert\fP \fB--type\fP \fBcache\fP \fB--cachepool\fP \fILV\fP \fILV\fP\fI_linear_striped_thinpool_raid\fP
+.br
+.RS 4
+.ad l
+[ \fB-H\fP|\fB--cache\fP ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachepolicy\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachesettings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadata\fP \fILV\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Convert LV to type thin-pool.
+.br
+.P
+\fBlvconvert\fP \fB--type\fP \fBthin-pool\fP \fILV\fP\fI_linear_striped_cache_raid\fP
+.br
+.RS 4
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadata\fP \fILV\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Convert LV to type cache-pool.
+.br
+.P
+\fBlvconvert\fP \fB--type\fP \fBcache-pool\fP \fILV\fP\fI_linear_striped_raid\fP
+.br
+.RS 4
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachepolicy\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachesettings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadata\fP \fILV\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Separate and keep the cache pool from a cache LV.
+.br
+.P
+\fBlvconvert\fP \fB--splitcache\fP \fILV\fP\fI_thinpool_cache_cachepool\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Merge thin LV into its origin LV.
+.br
+.P
+\fBlvconvert\fP \fB--mergethin\fP \fILV\fP\fI_thin\fP ...
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Merge COW snapshot LV into its origin.
+.br
+.P
+\fBlvconvert\fP \fB--mergesnapshot\fP \fILV\fP\fI_snapshot\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Replace failed PVs in a raid or mirror LV.
+.br
+Repair a thin pool.
+.br
+.P
+\fBlvconvert\fP \fB--repair\fP \fILV\fP\fI_thinpool_mirror_raid\fP
+.br
+.RS 4
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--usepolicies\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Replace specific PV(s) in a raid LV with another PV.
+.br
+.P
+\fBlvconvert\fP \fB--replace\fP \fIPV\fP \fILV\fP\fI_raid\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Poll LV to continue conversion.
+.br
+.P
+\fBlvconvert\fP \fB--startpoll\fP \fILV\fP\fI_mirror_raid\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-b\fP|\fB--background\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.br
+Determines the allocation policy when a command needs to allocate
+Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
+which can be changed with vgchange/lvchange, or overriden on the
+command line.
+\fBnormal\fP applies common sense rules such as not placing parallel stripes
+on the same PV.
+\fBinherit\fP applies the VG policy to an LV.
+\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
+\fBcling\fP places new PEs on the same PV as existing PEs in the same
+stripe of the LV.
+If there are sufficient PEs for an allocation, but normal does not
+use them, \fBanywhere\fP will use them even if it reduces performance,
+e.g. by placing two stripes on the same PV.
+Optional positional PV args on the command line can also be used to limit
+which PVs the command will use for allocation.
+See \fBlvm\fP(8) for more information about allocation.
+.ad b
+
+.HP
+.ad l
+\fB-b\fP|\fB--background\fP
+.br
+If the operation requires polling, this option causes the command to
+return before the operation is complete, and polling is done in the
+background.
+.ad b
+
+.HP
+.ad l
+\fB-H\fP|\fB--cache\fP
+.br
+Specifies the command is handling a cache LV or cache pool.
+See --type cache and --type cache-pool.
+See \fBlvmcache\fP(7) for more information about LVM caching.
+.ad b
+
+.HP
+.ad l
+\fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP
+.br
+Specifies the cache metadata format used by cache target.
+.ad b
+
+.HP
+.ad l
+\fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP
+.br
+Specifies when writes to a cache LV should be considered complete.
+\fBwriteback\fP considers a write complete as soon as it is
+stored in the cache pool.
+\fBwritethough\fP considers a write complete only when it has
+been stored in both the cache pool and on the origin LV.
+While writethrough may be slower for writes, it is more
+resilient if something should happen to a device associated with the
+cache pool LV. With \fBpassthrough\fP, all reads are served
+from the origin LV (all reads miss the cache) and all writes are
+forwarded to the origin LV; additionally, write hits cause cache
+block invalidates. See \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--cachepolicy\fP \fIString\fP
+.br
+Specifies the cache policy for a cache LV.
+See \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--cachepool\fP \fILV\fP
+.br
+The name of a cache pool LV.
+.ad b
+
+.HP
+.ad l
+\fB--cachesettings\fP \fIString\fP
+.br
+Specifies tunable values for a cache LV in "Key = Value" form.
+Repeat this option to specify multiple values.
+(The default values should usually be adequate.)
+The special string value \fBdefault\fP switches
+settings back to their default kernel values and removes
+them from the list of settings stored in LVM metadata.
+See \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT]
+.br
+The size of chunks in a snapshot, cache pool or thin pool.
+For snapshots, the value must be a power of 2 between 4KiB and 512KiB
+and the default value is 4.
+For a cache pool the value must be between 32KiB and 1GiB
+and the default value is 64.
+For a thin pool the value must be between 64KiB and 1GiB
+and the default value starts with 64 and scales up to fit the
+pool metadata size within 128MiB, if the pool metadata size is not specified.
+The value must be a multiple of 64KiB.
+See \fBlvmthin\fP(7) and \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP
+.br
+Specifies how the device-mapper thin pool layer in the kernel should
+handle discards.
+\fBignore\fP causes the thin pool to ignore discards.
+\fBnopassdown\fP causes the thin pool to process discards itself to
+allow reuse of unneeded extents in the thin pool.
+\fBpassdown\fP causes the thin pool to process discards itself
+(like nopassdown) and pass the discards to the underlying device.
+See \fBlvmthin\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-i\fP|\fB--interval\fP \fINumber\fP
+.br
+Report progress at regular intervals.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--merge\fP
+.br
+An alias for --mergethin, --mergemirrors, or --mergesnapshot,
+depending on the type of LV.
+.ad b
+
+.HP
+.ad l
+\fB--mergemirrors\fP
+.br
+Merge LV images that were split from a raid1 LV.
+See --splitmirrors with --trackchanges.
+.ad b
+
+.HP
+.ad l
+\fB--mergesnapshot\fP
+.br
+Merge COW snapshot LV into its origin.
+When merging a snapshot, if both the origin and snapshot LVs are not open,
+the merge will start immediately. Otherwise, the merge will start the
+first time either the origin or snapshot LV are activated and both are
+closed. Merging a snapshot into an origin that cannot be closed, for
+example a root filesystem, is deferred until the next time the origin
+volume is activated. When merging starts, the resulting LV will have the
+origin's name, minor number and UUID. While the merge is in progress,
+reads or writes to the origin appear as being directed to the snapshot
+being merged. When the merge finishes, the merged snapshot is removed.
+Multiple snapshots may be specified on the command line or a @tag may be
+used to specify multiple snapshots be merged to their respective origin.
+.ad b
+
+.HP
+.ad l
+\fB--mergethin\fP
+.br
+Merge thin LV into its origin LV.
+The origin thin LV takes the content of the thin snapshot,
+and the thin snapshot LV is removed.
+See \fBlvmthin\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--metadataprofile\fP \fIString\fP
+.br
+The metadata profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--mirrorlog\fP \fBcore\fP|\fBdisk\fP
+.br
+Specifies the type of mirror log for LVs with the "mirror" type
+(does not apply to the "raid1" type.)
+\fBdisk\fP is a persistent log and requires a small amount of
+storage space, usually on a separate device from the data being mirrored.
+\fBcore\fP is not persistent; the log is kept only in memory.
+In this case, the mirror must be synchronized (by copying LV data from
+the first device to others) each time the LV is activated, e.g. after reboot.
+\fBmirrored\fP is a persistent log that is itself mirrored.
+.ad b
+
+.HP
+.ad l
+\fB-m\fP|\fB--mirrors\fP [\fB+\fP|\fB-\fP]\fINumber\fP
+.br
+Specifies the number of mirror images in addition to the original LV
+image, e.g. --mirrors 1 means there are two images of the data, the
+original and one mirror image.
+Optional positional PV args on the command line can specify the devices
+the images should be placed on.
+There are two mirroring implementations: "raid1" and "mirror".
+These are the names of the corresponding LV types, or "segment types".
+Use the --type option to specify which to use (raid1 is default,
+and mirror is legacy)
+Use lvm.conf global/mirror_segtype_default and
+global/raid10_segtype_default to configure the default types.
+The plus prefix \fB+\fP can be used, in which case
+the number is added to the current number of images,
+or the minus prefix \fB-\fP can be used, in which case
+the number is subtracted from the current number of images.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-n\fP|\fB--name\fP \fIString\fP
+.br
+Specifies the name of a new LV.
+When unspecified, a default name of "lvol#" is
+generated, where # is a number generated by LVM.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB--originname\fP \fILV\fP
+.br
+Specifies the name to use for the external origin LV when converting an LV
+to a thin LV. The LV being converted becomes a read-only external origin
+with this name.
+.ad b
+
+.HP
+.ad l
+\fB--poolmetadata\fP \fILV\fP
+.br
+The name of a an LV to use for storing pool metadata.
+.ad b
+
+.HP
+.ad l
+\fB--poolmetadatasize\fP \fISize\fP[m|UNIT]
+.br
+Specifies the size of the new pool metadata LV.
+.ad b
+
+.HP
+.ad l
+\fB--poolmetadataspare\fP \fBy\fP|\fBn\fP
+.br
+Enable or disable the automatic creation and management of a
+spare pool metadata LV in the VG. A spare metadata LV is reserved
+space that can be used when repairing a pool.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP
+.br
+Sets read ahead sector count of an LV.
+\fBauto\fP is the default which allows the kernel to choose
+a suitable value automatically.
+\fBnone\fP is equivalent to zero.
+.ad b
+
+.HP
+.ad l
+\fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT]
+.br
+Size of each raid or mirror synchronization region.
+lvm.conf activation/raid_region_size can be used to
+configure a default.
+.ad b
+
+.HP
+.ad l
+\fB--repair\fP
+.br
+Replace failed PVs in a raid or mirror LV, or run a repair
+utility on a thin pool. See \fBlvmraid\fP(7) and \fBlvmthin\fP(7)
+for more information.
+.ad b
+
+.HP
+.ad l
+\fB--replace\fP \fIPV\fP
+.br
+Replace a specific PV in a raid LV with another PV.
+The new PV to use can be optionally specified after the LV.
+Multiple PVs can be replaced by repeating this option.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-s\fP|\fB--snapshot\fP
+.br
+Combine a former COW snapshot LV with a former origin LV to reverse
+a previous --splitsnapshot command.
+.ad b
+
+.HP
+.ad l
+\fB--splitcache\fP
+.br
+Separates a cache pool from a cache LV, and keeps the unused cache pool LV.
+Before the separation, the cache is flushed. Also see --uncache.
+.ad b
+
+.HP
+.ad l
+\fB--splitmirrors\fP \fINumber\fP
+.br
+Splits the specified number of images from a raid1 or mirror LV
+and uses them to create a new LV. If --trackchanges is also specified,
+changes to the raid1 LV are tracked while the split LV remains detached.
+.ad b
+
+.HP
+.ad l
+\fB--splitsnapshot\fP
+.br
+Separates a COW snapshot from its origin LV. The LV that is split off
+contains the chunks that differ from the origin LV along with metadata
+describing them. This LV can be wiped and then destroyed with lvremove.
+.ad b
+
+.HP
+.ad l
+\fB--startpoll\fP
+.br
+Start polling an LV to continue processing a conversion.
+.ad b
+
+.HP
+.ad l
+\fB--stripes\fP \fINumber\fP
+.br
+Specifies the number of stripes in a striped LV. This is the number of
+PVs (devices) that a striped LV is spread across. Data that
+appears sequential in the LV is spread across multiple devices in units of
+the stripe size (see --stripesize). This does not apply to
+existing allocated space, only newly allocated space can be striped.
+.ad b
+
+.HP
+.ad l
+\fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT]
+.br
+The amount of data that is written to one device before
+moving to the next in a striped LV.
+.ad b
+
+.HP
+.ad l
+\fB--swapmetadata\fP
+.br
+Extracts the metadata LV from a pool and replaces it with another specified LV.
+The extracted LV is preserved and given the name of the LV that replaced it.
+Use for repair only. When the metadata LV is swapped out of the pool, it can
+be activated directly and used with thin provisioning tools:
+\fBcache_dump\fP(8), \fBcache_repair\fP(8), \fBcache_restore\fP(8),
+\fBthin_dump\fP(8), \fBthin_repair\fP(8), \fBthin_restore\fP(8).
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-T\fP|\fB--thin\fP
+.br
+Specifies the command is handling a thin LV or thin pool.
+See --type thin, --type thin-pool, and --virtualsize.
+See \fBlvmthin\fP(7) for more information about LVM thin provisioning.
+.ad b
+
+.HP
+.ad l
+\fB--thinpool\fP \fILV\fP
+.br
+The name of a thin pool LV.
+.ad b
+
+.HP
+.ad l
+\fB--trackchanges\fP
+.br
+Can be used with --splitmirrors on a raid1 LV. This causes
+changes to the original raid1 LV to be tracked while the split images
+remain detached. This allows the read-only detached image(s) to be
+merged efficiently back into the raid1 LV later. Only the regions with
+changed data are resynchronized during merge. (This option only applies
+when using the raid1 LV type.)
+.ad b
+
+.HP
+.ad l
+\fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP
+.br
+The LV type, also known as "segment type" or "segtype".
+See usage descriptions for the specific ways to use these types.
+For more information about redundancy and performance (\fBraid\fP<N>, \fBmirror\fP, \fBstriped\fP, \fBlinear\fP) see \fBlvmraid\fP(7).
+For thin provisioning (\fBthin\fP, \fBthin-pool\fP) see \fBlvmthin\fP(7).
+For performance caching (\fBcache\fP, \fBcache-pool\fP) see \fBlvmcache\fP(7).
+For copy-on-write snapshots (\fBsnapshot\fP) see usage definitions.
+Several commands omit an explicit type option because the type
+is inferred from other options or shortcuts
+(e.g. --stripes, --mirrors, --snapshot, --virtualsize, --thin, --cache).
+Use inferred types with care because it can lead to unexpected results.
+.ad b
+
+.HP
+.ad l
+\fB--uncache\fP
+.br
+Separates a cache pool from a cache LV, and deletes the unused cache pool LV.
+Before the separation, the cache is flushed. Also see --splitcache.
+.ad b
+
+.HP
+.ad l
+\fB--usepolicies\fP
+.br
+Perform an operation according to the policy configured in lvm.conf
+or a profile.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+
+.HP
+.ad l
+\fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP
+.br
+For snapshots, this controls zeroing of the first 4KiB of data in the
+snapshot. If the LV is read-only, the snapshot will not be zeroed.
+For thin pools, this controls zeroing of provisioned blocks.
+Provisioning of large zeroed chunks negatively impacts performance.
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+LV followed by _<type> indicates that an LV of the
+given type is required. (raid represents raid<N> type)
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH ADVANCED USAGE
+Alternate command forms, advanced command usage, and listing of all valid syntax for completeness.
+.P
+Convert LV to type mirror (also see type raid1),
+.br
+(also see lvconvert --mirrors).
+.br
+.P
+\fBlvconvert\fP \fB--type\fP \fBmirror\fP \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-m\fP|\fB--mirrors\fP [\fB+\fP|\fB-\fP]\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--mirrorlog\fP \fBcore\fP|\fBdisk\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Change the region size of an LV.
+.br
+.P
+\fBlvconvert\fP \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] \fILV\fP\fI_raid\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Change the type of mirror log used by a mirror LV.
+.br
+.P
+\fBlvconvert\fP \fB--mirrorlog\fP \fBcore\fP|\fBdisk\fP \fILV\fP\fI_mirror\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Convert LV to a thin LV, using the original LV as an external origin
+.br
+(infers --type thin).
+.br
+.P
+\fBlvconvert\fP \fB-T\fP|\fB--thin\fP \fB--thinpool\fP \fILV\fP \fILV\fP\fI_linear_striped_cache_raid\fP
+.br
+.RS 4
+.ad l
+[ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBthin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--originname\fP \fILV\fP\fI_new\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadata\fP \fILV\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Convert LV to type cache (infers --type cache).
+.br
+.P
+\fBlvconvert\fP \fB-H\fP|\fB--cache\fP \fB--cachepool\fP \fILV\fP \fILV\fP\fI_linear_striped_thinpool_raid\fP
+.br
+.RS 4
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBcache\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachepolicy\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachesettings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadata\fP \fILV\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Separate and delete the cache pool from a cache LV.
+.br
+.P
+\fBlvconvert\fP \fB--uncache\fP \fILV\fP\fI_thinpool_cache\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Swap metadata LV in a thin pool or cache pool (for repair only).
+.br
+.P
+\fBlvconvert\fP \fB--swapmetadata\fP \fB--poolmetadata\fP \fILV\fP \fILV\fP\fI_thinpool_cachepool\fP
+.br
+.RS 4
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Merge LV that was split from a mirror (variant, use --mergemirrors).
+.br
+Merge thin LV into its origin LV (variant, use --mergethin).
+.br
+Merge COW snapshot LV into its origin (variant, use --mergesnapshot).
+.br
+.P
+\fBlvconvert\fP \fB--merge\fP \fIVG\fP|\fILV\fP\fI_linear_striped_snapshot_thin_raid\fP|\fITag\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Separate a COW snapshot from its origin LV.
+.br
+.P
+\fBlvconvert\fP \fB--splitsnapshot\fP \fILV\fP\fI_snapshot\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Combine a former COW snapshot (second arg) with a former
+.br
+origin LV (first arg) to reverse a splitsnapshot command.
+.br
+.P
+\fBlvconvert\fP \fB--type\fP \fBsnapshot\fP \fILV\fP \fILV\fP\fI_linear\fP
+.br
+.RS 4
+.ad l
+[ \fB-s\fP|\fB--snapshot\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Combine a former COW snapshot (second arg) with a former
+.br
+origin LV (first arg) to reverse a splitsnapshot command.
+.br
+.P
+\fBlvconvert\fP \fB-s\fP|\fB--snapshot\fP \fILV\fP \fILV\fP\fI_linear\fP
+.br
+.RS 4
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBsnapshot\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Poll LV to continue conversion (also see --startpoll).
+.br
+.P
+\fBlvconvert\fP \fILV\fP\fI_mirror_raid\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+.SH NOTES
+
+This previous command syntax would perform two different operations:
+.br
+\fBlvconvert --thinpool\fP \fILV1\fP \fB--poolmetadata\fP \fILV2\fP
+.br
+If LV1 was not a thin pool, the command would convert LV1 to
+a thin pool, optionally using a specified LV for metadata.
+But, if LV1 was already a thin pool, the command would swap
+the current metadata LV with LV2 (for repair purposes.)
+
+In the same way, this previous command syntax would perform two different
+operations:
+.br
+\fBlvconvert --cachepool\fP \fILV1\fP \fB--poolmetadata\fP \fILV2\fP
+.br
+If LV1 was not a cache pool, the command would convert LV1 to
+a cache pool, optionally using a specified LV for metadata.
+But, if LV1 was already a cache pool, the command would swap
+the current metadata LV with LV2 (for repair purposes.)
+
+.SH EXAMPLES
+
+Convert a linear LV to a two-way mirror LV.
+.br
+.B lvconvert \-\-type mirror \-\-mirrors 1 vg/lvol1
+
+Convert a linear LV to a two-way RAID1 LV.
+.br
+.B lvconvert \-\-type raid1 \-\-mirrors 1 vg/lvol1
+
+Convert a mirror LV to use an in\-memory log.
+.br
+.B lvconvert \-\-mirrorlog core vg/lvol1
+
+Convert a mirror LV to use a disk log.
+.br
+.B lvconvert \-\-mirrorlog disk vg/lvol1
+
+Convert a mirror or raid1 LV to a linear LV.
+.br
+.B lvconvert --type linear vg/lvol1
+
+Convert a mirror LV to a raid1 LV with the same number of images.
+.br
+.B lvconvert \-\-type raid1 vg/lvol1
+
+Convert a linear LV to a two-way mirror LV, allocating new extents from specific
+PV ranges.
+.br
+.B lvconvert \-\-mirrors 1 vg/lvol1 /dev/sda:0\-15 /dev/sdb:0\-15
+
+Convert a mirror LV to a linear LV, freeing physical extents from a specific PV.
+.br
+.B lvconvert \-\-type linear vg/lvol1 /dev/sda
+
+Split one image from a mirror or raid1 LV, making it a new LV.
+.br
+.B lvconvert \-\-splitmirrors 1 \-\-name lv_split vg/lvol1
+
+Split one image from a raid1 LV, and track changes made to the raid1 LV
+while the split image remains detached.
+.br
+.B lvconvert \-\-splitmirrors 1 \-\-trackchanges vg/lvol1
+
+Merge an image (that was previously created with \-\-splitmirrors and
+\-\-trackchanges) back into the original raid1 LV.
+.br
+.B lvconvert \-\-mergemirrors vg/lvol1_rimage_1
+
+Replace PV /dev/sdb1 with PV /dev/sdf1 in a raid1/4/5/6/10 LV.
+.br
+.B lvconvert \-\-replace /dev/sdb1 vg/lvol1 /dev/sdf1
+
+Replace 3 PVs /dev/sd[b-d]1 with PVs /dev/sd[f-h]1 in a raid1 LV.
+.br
+.B lvconvert \-\-replace /dev/sdb1 \-\-replace /dev/sdc1 \-\-replace /dev/sdd1
+.RS
+.B vg/lvol1 /dev/sd[fgh]1
+.RE
+
+Replace the maximum of 2 PVs /dev/sd[bc]1 with PVs /dev/sd[gh]1 in a raid6 LV.
+.br
+.B lvconvert \-\-replace /dev/sdb1 \-\-replace /dev/sdc1 vg/lvol1 /dev/sd[gh]1
+
+Convert an LV into a thin LV in the specified thin pool. The existing LV
+is used as an external read\-only origin for the new thin LV.
+.br
+.B lvconvert \-\-type thin \-\-thinpool vg/tpool1 vg/lvol1
+
+Convert an LV into a thin LV in the specified thin pool. The existing LV
+is used as an external read\-only origin for the new thin LV, and is
+renamed "external".
+.br
+.B lvconvert \-\-type thin \-\-thinpool vg/tpool1
+.RS
+.B \-\-originname external vg/lvol1
+.RE
+
+Convert an LV to a cache pool LV using another specified LV for cache pool
+metadata.
+.br
+.B lvconvert \-\-type cache-pool \-\-poolmetadata vg/poolmeta1 vg/lvol1
+
+Convert an LV to a cache LV using the specified cache pool and chunk size.
+.br
+.B lvconvert \-\-type cache \-\-cachepool vg/cpool1 \-c 128 vg/lvol1
+
+Detach and keep the cache pool from a cache LV.
+.br
+.B lvconvert \-\-splitcache vg/lvol1
+
+Detach and remove the cache pool from a cache LV.
+.br
+.B lvconvert \-\-uncache vg/lvol1
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvcreate.8.des b/man/lvcreate.8_des
index acc07b300..acc07b300 100644
--- a/man/lvcreate.8.des
+++ b/man/lvcreate.8_des
diff --git a/man/lvcreate.8.end b/man/lvcreate.8_end
index 74ae599cb..74ae599cb 100644
--- a/man/lvcreate.8.end
+++ b/man/lvcreate.8_end
diff --git a/man/lvcreate.8_pregen b/man/lvcreate.8_pregen
new file mode 100644
index 000000000..49d907231
--- /dev/null
+++ b/man/lvcreate.8_pregen
@@ -0,0 +1,2865 @@
+.TH LVCREATE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvcreate \- Create a logical volume
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvcreate\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.P
+.ad l
+ \fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP
+.ad b
+.br
+.ad l
+ \fB--addtag\fP \fITag\fP
+.ad b
+.br
+.ad l
+ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.ad b
+.br
+.ad l
+ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-H\fP|\fB--cache\fP
+.ad b
+.br
+.ad l
+ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP
+.ad b
+.br
+.ad l
+ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP
+.ad b
+.br
+.ad l
+ \fB--cachepolicy\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--cachepool\fP \fILV\fP
+.ad b
+.br
+.ad l
+ \fB--cachesettings\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-C\fP|\fB--contiguous\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT]
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB-K\fP|\fB--ignoreactivationskip\fP
+.ad b
+.br
+.ad l
+ \fB--ignoremonitoring\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB-j\fP|\fB--major\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--[raid]maxrecoveryrate\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB--metadataprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--minor\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--[raid]minrecoveryrate\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB--mirrorlog\fP \fBcore\fP|\fBdisk\fP
+.ad b
+.br
+.ad l
+ \fB-m\fP|\fB--mirrors\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--monitor\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-n\fP|\fB--name\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--nosync\fP
+.ad b
+.br
+.ad l
+ \fB--noudevsync\fP
+.ad b
+.br
+.ad l
+ \fB-p\fP|\fB--permission\fP \fBrw\fP|\fBr\fP
+.ad b
+.br
+.ad l
+ \fB-M\fP|\fB--persistent\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP
+.ad b
+.br
+.ad l
+ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.ad b
+.br
+.ad l
+ \fB-k\fP|\fB--setactivationskip\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB-s\fP|\fB--snapshot\fP
+.ad b
+.br
+.ad l
+ \fB-i\fP|\fB--stripes\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB-T\fP|\fB--thin\fP
+.ad b
+.br
+.ad l
+ \fB--thinpool\fP \fILV\fP
+.ad b
+.br
+.ad l
+ \fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB-W\fP|\fB--wipesignatures\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
+.br
+.ad l
+ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP
+.ad b
+
+.P
+
+.SH DESCRIPTION
+lvcreate creates a new LV in a VG. For standard LVs, this requires
+allocating logical extents from the VG's free physical extents. If there
+is not enough free space, then the VG can be extended (see
+\fBvgextend\fP(8)) with other PVs, or existing LVs can be reduced or
+removed (see \fBlvremove\fP, \fBlvreduce\fP.)
+
+To control which PVs a new LV will use, specify one or more PVs as
+position args at the end of the command line. lvcreate will allocate
+physical extents only from the specified PVs.
+
+lvcreate can also create snapshots of existing LVs, e.g. for backup
+purposes. The data in a new snapshot LV represents the content of the
+original LV from the time the snapshot was created.
+
+RAID LVs can be created by specifying an LV type when creating the LV (see
+\fBlvmraid\fP(7)). Different RAID levels require different numbers of
+unique PVs be available in the VG for allocation.
+
+Thin pools (for thin provisioning) and cache pools (for caching) are
+represented by special LVs with types thin-pool and cache-pool (see
+\fBlvmthin\fP(7) and \fBlvmcache\fP(7)). The pool LVs are not usable as
+standard block devices, but the LV names act references to the pools.
+
+Thin LVs are thinly provisioned from a thin pool, and are created with a
+virtual size rather than a physical size. A cache LV is the combination of
+a standard LV with a cache pool, used to cache active portions of the LV
+to improve performance.
+
+.SS Usage notes
+
+In the usage section below, \fB--size\fP \fISize\fP can be replaced
+with \fB--extents\fP \fINumber\fP. See both descriptions
+the options section.
+
+In the usage section below, \fB--name\fP is omitted from the required
+options, even though it is typically used. When the name is not
+specified, a new LV name is generated with the "lvol" prefix and a unique
+numeric suffix. Also see the description in the options section.
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+Create a linear LV.
+.br
+.P
+\fBlvcreate\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBlinear\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a striped LV (infers --type striped).
+.br
+.P
+\fBlvcreate\fP \fB-i\fP|\fB--stripes\fP \fINumber\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBstriped\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a raid1 or mirror LV (infers --type raid1|mirror).
+.br
+.P
+\fBlvcreate\fP \fB-m\fP|\fB--mirrors\fP \fINumber\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-m\fP|\fB--mirrors\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBraid1\fP ]
+.ad b
+.br
+.ad l
+[ \fB--mirrorlog\fP \fBcore\fP|\fBdisk\fP ]
+.ad b
+.br
+.ad l
+[ \fB--[raid]minrecoveryrate\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--[raid]maxrecoveryrate\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a raid LV (a specific raid level must be used, e.g. raid1).
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBraid\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-m\fP|\fB--mirrors\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--[raid]minrecoveryrate\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--[raid]maxrecoveryrate\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a COW snapshot LV of an origin LV.
+.br
+.P
+\fBlvcreate\fP \fB-s\fP|\fB--snapshot\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBsnapshot\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a thin pool.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBthin-pool\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--thinpool\fP \fILV\fP\fI_new\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a cache pool.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBcache-pool\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-H\fP|\fB--cache\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachepolicy\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachesettings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a thin LV in a thin pool (infers --type thin).
+.br
+.P
+\fBlvcreate\fP \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT] \fB--thinpool\fP \fILV\fP\fI_thinpool\fP \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBthin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a thin LV that is a snapshot of an existing thin LV
+.br
+(infers --type thin).
+.br
+.P
+\fBlvcreate\fP \fB-s\fP|\fB--snapshot\fP \fILV\fP\fI_thin\fP
+.br
+.RS 4
+.ad l
+[ \fB--type\fP \fBthin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a thin LV that is a snapshot of an external origin LV.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBthin\fP \fB--thinpool\fP \fILV\fP\fI_thinpool\fP \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a thin LV, first creating a thin pool for it,
+.br
+where the new thin pool is named by the --thinpool arg.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBthin\fP \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT]
+.RS 5
+ \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fB--thinpool\fP \fILV\fP\fI_new\fP
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a cache LV, first creating a new origin LV,
+.br
+then combining it with the existing cache pool named
+.br
+by the --cachepool arg.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBcache\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT]
+.RS 5
+ \fB--cachepool\fP \fILV\fP\fI_cachepool\fP \fIVG\fP
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-H\fP|\fB--cache\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachepolicy\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachesettings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP ]
+.ad b
+.br
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-C\fP|\fB--contiguous\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-K\fP|\fB--ignoreactivationskip\fP ]
+.ad b
+.br
+.ad l
+[ \fB-j\fP|\fB--major\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-n\fP|\fB--name\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-p\fP|\fB--permission\fP \fBrw\fP|\fBr\fP ]
+.ad b
+.br
+.ad l
+[ \fB-M\fP|\fB--persistent\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-k\fP|\fB--setactivationskip\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-W\fP|\fB--wipesignatures\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--addtag\fP \fITag\fP ]
+.ad b
+.br
+.ad l
+[ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoremonitoring\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--minor\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--monitor\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP
+.br
+Controls the active state of the new LV.
+\fBy\fP makes the LV active, or available.
+New LVs are made active by default.
+\fBn\fP makes the LV inactive, or unavailable, only when possible.
+In some cases, creating an LV requires it to be active.
+For example, COW snapshots of an active origin LV can only
+be created in the active state (this does not apply to thin snapshots.)
+The --zero option normally requires the LV to be active.
+If autoactivation \fBay\fP is used, the LV is only activated
+if it matches an item in lvm.conf activation/auto_activation_volume_list.
+\fBay\fP implies --zero n and --wipesignatures n.
+See lvmlockd(8) for more information about activation options for shared VGs.
+See clvmd(8) for more information about activation options for clustered VGs.
+.ad b
+
+.HP
+.ad l
+\fB--addtag\fP \fITag\fP
+.br
+Adds a tag to a PV, VG or LV. This option can be repeated to add
+multiple tags at once. See lvm(8) for information about tags.
+.ad b
+
+.HP
+.ad l
+\fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.br
+Determines the allocation policy when a command needs to allocate
+Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
+which can be changed with vgchange/lvchange, or overriden on the
+command line.
+\fBnormal\fP applies common sense rules such as not placing parallel stripes
+on the same PV.
+\fBinherit\fP applies the VG policy to an LV.
+\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
+\fBcling\fP places new PEs on the same PV as existing PEs in the same
+stripe of the LV.
+If there are sufficient PEs for an allocation, but normal does not
+use them, \fBanywhere\fP will use them even if it reduces performance,
+e.g. by placing two stripes on the same PV.
+Optional positional PV args on the command line can also be used to limit
+which PVs the command will use for allocation.
+See \fBlvm\fP(8) for more information about allocation.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-H\fP|\fB--cache\fP
+.br
+Specifies the command is handling a cache LV or cache pool.
+See --type cache and --type cache-pool.
+See \fBlvmcache\fP(7) for more information about LVM caching.
+.ad b
+
+.HP
+.ad l
+\fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP
+.br
+Specifies the cache metadata format used by cache target.
+.ad b
+
+.HP
+.ad l
+\fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP
+.br
+Specifies when writes to a cache LV should be considered complete.
+\fBwriteback\fP considers a write complete as soon as it is
+stored in the cache pool.
+\fBwritethough\fP considers a write complete only when it has
+been stored in both the cache pool and on the origin LV.
+While writethrough may be slower for writes, it is more
+resilient if something should happen to a device associated with the
+cache pool LV. With \fBpassthrough\fP, all reads are served
+from the origin LV (all reads miss the cache) and all writes are
+forwarded to the origin LV; additionally, write hits cause cache
+block invalidates. See \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--cachepolicy\fP \fIString\fP
+.br
+Specifies the cache policy for a cache LV.
+See \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--cachepool\fP \fILV\fP
+.br
+The name of a cache pool LV.
+.ad b
+
+.HP
+.ad l
+\fB--cachesettings\fP \fIString\fP
+.br
+Specifies tunable values for a cache LV in "Key = Value" form.
+Repeat this option to specify multiple values.
+(The default values should usually be adequate.)
+The special string value \fBdefault\fP switches
+settings back to their default kernel values and removes
+them from the list of settings stored in LVM metadata.
+See \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT]
+.br
+The size of chunks in a snapshot, cache pool or thin pool.
+For snapshots, the value must be a power of 2 between 4KiB and 512KiB
+and the default value is 4.
+For a cache pool the value must be between 32KiB and 1GiB
+and the default value is 64.
+For a thin pool the value must be between 64KiB and 1GiB
+and the default value starts with 64 and scales up to fit the
+pool metadata size within 128MiB, if the pool metadata size is not specified.
+The value must be a multiple of 64KiB.
+See \fBlvmthin\fP(7) and \fBlvmcache\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-C\fP|\fB--contiguous\fP \fBy\fP|\fBn\fP
+.br
+Sets or resets the contiguous allocation policy for LVs.
+Default is no contiguous allocation based on a next free principle.
+It is only possible to change a non-contiguous allocation policy
+to contiguous if all of the allocated physical extents in the LV
+are already contiguous.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP
+.br
+Specifies how the device-mapper thin pool layer in the kernel should
+handle discards.
+\fBignore\fP causes the thin pool to ignore discards.
+\fBnopassdown\fP causes the thin pool to process discards itself to
+allow reuse of unneeded extents in the thin pool.
+\fBpassdown\fP causes the thin pool to process discards itself
+(like nopassdown) and pass the discards to the underlying device.
+See \fBlvmthin\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--errorwhenfull\fP \fBy\fP|\fBn\fP
+.br
+Specifies thin pool behavior when data space is exhausted.
+When yes, device-mapper will immediately return an error
+when a thin pool is full and an I/O request requires space.
+When no, device-mapper will queue these I/O requests for a
+period of time to allow the thin pool to be extended.
+Errors are returned if no space is available after the timeout.
+(Also see dm-thin-pool kernel module option no_space_timeout.)
+See \fBlvmthin\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT]
+.br
+Specifies the size of the new LV in logical extents.
+The --size and --extents options are alternate methods of specifying size.
+The total number of physical extents used will be
+greater when redundant data is needed for RAID levels.
+An alternate syntax allows the size to be determined indirectly
+as a percentage of the size of a related VG, LV, or set of PVs. The
+suffix \fB%VG\fP denotes the total size of the VG, the suffix \fB%FREE\fP
+the remaining free space in the VG, and the suffix \fB%PVS\fP the free
+space in the specified PVs. For a snapshot, the size
+can be expressed as a percentage of the total size of the origin LV
+with the suffix \fB%ORIGIN\fP (\fB100%ORIGIN\fP provides space for
+the whole origin).
+When expressed as a percentage, the size defines an upper limit for the
+number of logical extents in the new LV. The precise number of logical
+extents in the new LV is not determined until the command has completed.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-K\fP|\fB--ignoreactivationskip\fP
+.br
+Ignore the "activation skip" LV flag during activation
+to allow LVs with the flag set to be activated.
+.ad b
+
+.HP
+.ad l
+\fB--ignoremonitoring\fP
+.br
+Do not interact with dmeventd unless --monitor is specified.
+Do not use this if dmeventd is already monitoring a device.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-j\fP|\fB--major\fP \fINumber\fP
+.br
+Sets the major number of an LV block device.
+.ad b
+
+.HP
+.ad l
+\fB--[raid]maxrecoveryrate\fP \fISize\fP[k|UNIT]
+.br
+Sets the maximum recovery rate for a RAID LV. The rate value
+is an amount of data per second for each device in the array.
+Setting the rate to 0 means it will be unbounded.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--metadataprofile\fP \fIString\fP
+.br
+The metadata profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--minor\fP \fINumber\fP
+.br
+Sets the minor number of an LV block device.
+.ad b
+
+.HP
+.ad l
+\fB--[raid]minrecoveryrate\fP \fISize\fP[k|UNIT]
+.br
+Sets the minimum recovery rate for a RAID LV. The rate value
+is an amount of data per second for each device in the array.
+Setting the rate to 0 means it will be unbounded.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--mirrorlog\fP \fBcore\fP|\fBdisk\fP
+.br
+Specifies the type of mirror log for LVs with the "mirror" type
+(does not apply to the "raid1" type.)
+\fBdisk\fP is a persistent log and requires a small amount of
+storage space, usually on a separate device from the data being mirrored.
+\fBcore\fP is not persistent; the log is kept only in memory.
+In this case, the mirror must be synchronized (by copying LV data from
+the first device to others) each time the LV is activated, e.g. after reboot.
+\fBmirrored\fP is a persistent log that is itself mirrored.
+.ad b
+
+.HP
+.ad l
+\fB-m\fP|\fB--mirrors\fP \fINumber\fP
+.br
+Specifies the number of mirror images in addition to the original LV
+image, e.g. --mirrors 1 means there are two images of the data, the
+original and one mirror image.
+Optional positional PV args on the command line can specify the devices
+the images should be placed on.
+There are two mirroring implementations: "raid1" and "mirror".
+These are the names of the corresponding LV types, or "segment types".
+Use the --type option to specify which to use (raid1 is default,
+and mirror is legacy)
+Use lvm.conf global/mirror_segtype_default and
+global/raid10_segtype_default to configure the default types.
+See the --nosync option for avoiding initial image synchronization.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--monitor\fP \fBy\fP|\fBn\fP
+.br
+Start (yes) or stop (no) monitoring an LV with dmeventd.
+dmeventd monitors kernel events for an LV, and performs
+automated maintenance for the LV in reponse to specific events.
+See dmeventd(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-n\fP|\fB--name\fP \fIString\fP
+.br
+Specifies the name of a new LV.
+When unspecified, a default name of "lvol#" is
+generated, where # is a number generated by LVM.
+.ad b
+
+.HP
+.ad l
+\fB--nosync\fP
+.br
+Causes the creation of mirror, raid1, raid4, raid5 and raid10 to skip the
+initial synchronization. In case of mirror, raid1 and raid10, any data
+written afterwards will be mirrored, but the original contents will not be
+copied. In case of raid4 and raid5, no parity blocks will be written,
+though any data written afterwards will cause parity blocks to be stored.
+This is useful for skipping a potentially long and resource intensive initial
+sync of an empty mirror/raid1/raid4/raid5 and raid10 LV.
+This option is not valid for raid6, because raid6 relies on proper parity
+(P and Q Syndromes) being created during initial synchronization in order
+to reconstruct proper user date in case of device failures.
+raid0 and raid0_meta do not provide any data copies or parity support
+and thus do not support initial synchronization.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB-p\fP|\fB--permission\fP \fBrw\fP|\fBr\fP
+.br
+Set access permission to read only \fBr\fP or read and write \fBrw\fP.
+.ad b
+
+.HP
+.ad l
+\fB-M\fP|\fB--persistent\fP \fBy\fP|\fBn\fP
+.br
+When yes, makes the specified minor number persistent.
+.ad b
+
+.HP
+.ad l
+\fB--poolmetadatasize\fP \fISize\fP[m|UNIT]
+.br
+Specifies the size of the new pool metadata LV.
+.ad b
+
+.HP
+.ad l
+\fB--poolmetadataspare\fP \fBy\fP|\fBn\fP
+.br
+Enable or disable the automatic creation and management of a
+spare pool metadata LV in the VG. A spare metadata LV is reserved
+space that can be used when repairing a pool.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-r\fP|\fB--readahead\fP \fBauto\fP|\fBnone\fP|\fINumber\fP
+.br
+Sets read ahead sector count of an LV.
+\fBauto\fP is the default which allows the kernel to choose
+a suitable value automatically.
+\fBnone\fP is equivalent to zero.
+.ad b
+
+.HP
+.ad l
+\fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT]
+.br
+Size of each raid or mirror synchronization region.
+lvm.conf activation/raid_region_size can be used to
+configure a default.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-k\fP|\fB--setactivationskip\fP \fBy\fP|\fBn\fP
+.br
+Persistently sets (yes) or clears (no) the "activation skip" flag on an LV.
+An LV with this flag set is not activated unless the
+--ignoreactivationskip option is used by the activation command.
+This flag is set by default on new thin snapshot LVs.
+The flag is not applied to deactivation.
+The current value of the flag is indicated in the lvs lv_attr bits.
+.ad b
+
+.HP
+.ad l
+\fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT]
+.br
+Specifies the size of the new LV.
+The --size and --extents options are alternate methods of specifying size.
+The total number of physical extents used will be
+greater when redundant data is needed for RAID levels.
+.ad b
+
+.HP
+.ad l
+\fB-s\fP|\fB--snapshot\fP
+.br
+Create a snapshot. Snapshots provide a "frozen image" of an origin LV.
+The snapshot LV can be used, e.g. for backups, while the origin LV
+continues to be used.
+This option can create a COW (copy on write) snapshot,
+or a thin snapshot (in a thin pool.)
+Thin snapshots are created when the origin is a thin LV and
+the size option is NOT specified. Thin snapshots share the same blocks
+in the thin pool, and do not allocate new space from the VG.
+Thin snapshots are created with the "activation skip" flag,
+see --setactivationskip.
+A thin snapshot of a non-thin "external origin" LV is created
+when a thin pool is specified. Unprovisioned blocks in the thin snapshot
+LV are read from the external origin LV. The external origin LV must
+be read-only.
+See \fBlvmthin\fP(7) for more information about LVM thin provisioning.
+COW snapshots are created when a size is specified. The size is allocated
+from space in the VG, and is the amount of space that can be used
+for saving COW blocks as writes occur to the origin or snapshot.
+The size chosen should depend upon the amount of writes that are expected;
+often 20% of the origin LV is enough. If COW space runs low, it can
+be extended with lvextend (shrinking is also allowed with lvreduce.)
+A small amount of the COW snapshot LV size is used to track COW block
+locations, so the full size is not available for COW data blocks.
+Use lvs to check how much space is used, and see --monitor to
+to automatically extend the size to avoid running out of space.
+.ad b
+
+.HP
+.ad l
+\fB-i\fP|\fB--stripes\fP \fINumber\fP
+.br
+Specifies the number of stripes in a striped LV. This is the number of
+PVs (devices) that a striped LV is spread across. Data that
+appears sequential in the LV is spread across multiple devices in units of
+the stripe size (see --stripesize). This does not change existing
+allocated space, but only applies to space being allocated by the command.
+When creating a RAID 4/5/6 LV, this number does not include the extra
+devices that are required for parity. The largest number depends on
+the RAID type (raid0: 64, raid10: 32, raid4/5: 63, raid6: 62), and
+when unspecified, the default depends on the RAID type
+(raid0: 2, raid10: 4, raid4/5: 3, raid6: 5.)
+To stripe a new raid LV across all PVs by default,
+see lvm.conf allocation/raid_stripe_all_devices.
+.ad b
+
+.HP
+.ad l
+\fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT]
+.br
+The amount of data that is written to one device before
+moving to the next in a striped LV.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-T\fP|\fB--thin\fP
+.br
+Specifies the command is handling a thin LV or thin pool.
+See --type thin, --type thin-pool, and --virtualsize.
+See \fBlvmthin\fP(7) for more information about LVM thin provisioning.
+.ad b
+
+.HP
+.ad l
+\fB--thinpool\fP \fILV\fP
+.br
+The name of a thin pool LV.
+.ad b
+
+.HP
+.ad l
+\fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP
+.br
+The LV type, also known as "segment type" or "segtype".
+See usage descriptions for the specific ways to use these types.
+For more information about redundancy and performance (\fBraid\fP<N>, \fBmirror\fP, \fBstriped\fP, \fBlinear\fP) see \fBlvmraid\fP(7).
+For thin provisioning (\fBthin\fP, \fBthin-pool\fP) see \fBlvmthin\fP(7).
+For performance caching (\fBcache\fP, \fBcache-pool\fP) see \fBlvmcache\fP(7).
+For copy-on-write snapshots (\fBsnapshot\fP) see usage definitions.
+Several commands omit an explicit type option because the type
+is inferred from other options or shortcuts
+(e.g. --stripes, --mirrors, --snapshot, --virtualsize, --thin, --cache).
+Use inferred types with care because it can lead to unexpected results.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT]
+.br
+The virtual size of a new thin LV.
+See \fBlvmthin\fP(7) for more information about LVM thin provisioning.
+Using virtual size (-V) and actual size (-L) together creates
+a sparse LV.
+lvm.conf global/sparse_segtype_default determines the
+default segment type used to create a sparse LV.
+Anything written to a sparse LV will be returned when reading from it.
+Reading from other areas of the LV will return blocks of zeros.
+When using a snapshot to create a sparse LV, a hidden virtual device
+is created using the zero target, and the LV has the suffix _vorigin.
+Snapshots are less efficient than thin provisioning when creating
+large sparse LVs (GiB).
+.ad b
+
+.HP
+.ad l
+\fB-W\fP|\fB--wipesignatures\fP \fBy\fP|\fBn\fP
+.br
+Controls detection and subsequent wiping of signatures on new LVs.
+There is a prompt for each signature detected to confirm its wiping
+(unless --yes is used to override confirmations.)
+When not specified, signatures are wiped whenever zeroing is done
+(see --zero). This behaviour can be configured with
+lvm.conf allocation/wipe_signatures_when_zeroing_new_lvs.
+If blkid wiping is used (lvm.conf allocation/use_blkid_wiping)
+and LVM is compiled with blkid wiping support, then the blkid(8)
+library is used to detect the signatures (use blkid -k to list the
+signatures that are recognized).
+Otherwise, native LVM code is used to detect signatures
+(only MD RAID, swap and LUKS signatures are detected in this case.)
+The LV is not wiped if the read only flag is set.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+
+.HP
+.ad l
+\fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP
+.br
+Controls zeroing of the first 4KiB of data in the new LV.
+Default is \fBy\fP.
+Snapshot COW volumes are always zeroed.
+LV is not zeroed if the read only flag is set.
+Warning: trying to mount an unzeroed LV can cause the system to hang.
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+For lvcreate, the required VG positional arg may be
+omitted when the VG name is included in another option,
+e.g. --name VG/LV.
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+LV followed by _<type> indicates that an LV of the
+given type is required. (raid represents raid<N> type)
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH ADVANCED USAGE
+Alternate command forms, advanced command usage, and listing of all valid syntax for completeness.
+.P
+Create an LV that returns errors when used.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBerror\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create an LV that returns zeros when read.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBzero\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a linear LV.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBlinear\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a striped LV (also see lvcreate --stripes).
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBstriped\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a mirror LV (also see --type raid1).
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBmirror\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-m\fP|\fB--mirrors\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-R\fP|\fB--regionsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--mirrorlog\fP \fBcore\fP|\fBdisk\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a COW snapshot LV of an origin LV
+.br
+(also see --snapshot).
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBsnapshot\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-s\fP|\fB--snapshot\fP ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a sparse COW snapshot LV of a virtual origin LV
+.br
+(also see --snapshot).
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBsnapshot\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT]
+.RS 5
+ \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT] \fIVG\fP
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-s\fP|\fB--snapshot\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a sparse COW snapshot LV of a virtual origin LV.
+.br
+.P
+\fBlvcreate\fP \fB-s\fP|\fB--snapshot\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT]
+.RS 5
+ \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT] \fIVG\fP
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBsnapshot\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a thin pool (infers --type thin-pool).
+.br
+.P
+\fBlvcreate\fP \fB-T\fP|\fB--thin\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBthin-pool\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a thin pool named by the --thinpool arg
+.br
+(infers --type thin-pool).
+.br
+.P
+\fBlvcreate\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fB--thinpool\fP \fILV\fP\fI_new\fP \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBthin-pool\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a cache pool named by the --cachepool arg
+.br
+(variant, uses --cachepool in place of --name).
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBcache-pool\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT]
+.RS 5
+ \fB--cachepool\fP \fILV\fP\fI_new\fP \fIVG\fP
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-H\fP|\fB--cache\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachepolicy\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachesettings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a thin LV in a thin pool.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBthin\fP \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT]
+.RS 5
+ \fB--thinpool\fP \fILV\fP\fI_thinpool\fP \fIVG\fP
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a thin LV in a thin pool named in the first arg
+.br
+(variant, also see --thinpool for naming pool).
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBthin\fP \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT] \fILV\fP\fI_thinpool\fP
+.br
+.RS 4
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a thin LV in the thin pool named in the first arg
+.br
+(variant, infers --type thin, also see --thinpool for
+.br
+naming pool.)
+.br
+.P
+\fBlvcreate\fP \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT] \fILV\fP\fI_thinpool\fP
+.br
+.RS 4
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBthin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a thin LV that is a snapshot of an existing thin LV.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBthin\fP \fILV\fP\fI_thin\fP
+.br
+.RS 4
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a thin LV that is a snapshot of an existing thin LV
+.br
+(infers --type thin).
+.br
+.P
+\fBlvcreate\fP \fB-T\fP|\fB--thin\fP \fILV\fP\fI_thin\fP
+.br
+.RS 4
+.ad l
+[ \fB--type\fP \fBthin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a thin LV that is a snapshot of an external origin LV
+.br
+(infers --type thin).
+.br
+.P
+\fBlvcreate\fP \fB-s\fP|\fB--snapshot\fP \fB--thinpool\fP \fILV\fP\fI_thinpool\fP \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB--type\fP \fBthin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Create a thin LV, first creating a thin pool for it,
+.br
+where the new thin pool is named by the --thinpool arg
+.br
+(variant, infers --type thin).
+.br
+.P
+\fBlvcreate\fP \fB-T\fP|\fB--thin\fP \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT]
+.RS 5
+ \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fB--thinpool\fP \fILV\fP\fI_new\fP
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBthin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a thin LV, first creating a thin pool for it,
+.br
+where the new thin pool is named in the first arg,
+.br
+or the new thin pool name is generated when the first
+.br
+arg is a VG name.
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBthin\fP \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT]
+.RS 5
+ \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP|\fILV\fP\fI_new\fP
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a thin LV, first creating a thin pool for it,
+.br
+where the new thin pool is named in the first arg,
+.br
+or the new thin pool name is generated when the first
+.br
+arg is a VG name (variant, infers --type thin).
+.br
+.P
+\fBlvcreate\fP \fB-T\fP|\fB--thin\fP \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT]
+.RS 5
+ \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fIVG\fP|\fILV\fP\fI_new\fP
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBthin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a thin LV, first creating a thin pool for it
+.br
+(infers --type thin).
+.br
+Create a sparse snapshot of a virtual origin LV
+.br
+(infers --type snapshot).
+.br
+Chooses --type thin or --type snapshot according to
+.br
+config setting sparse_segtype_default.
+.br
+.P
+\fBlvcreate\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fB-V\fP|\fB--virtualsize\fP \fISize\fP[m|UNIT] \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-T\fP|\fB--thin\fP ]
+.ad b
+.br
+.ad l
+[ \fB-s\fP|\fB--snapshot\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBthin\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--discards\fP \fBpassdown\fP|\fBnopassdown\fP|\fBignore\fP ]
+.ad b
+.br
+.ad l
+[ \fB--errorwhenfull\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a cache LV, first creating a new origin LV,
+.br
+then combining it with the existing cache pool named
+.br
+by the --cachepool arg (variant, infers --type cache).
+.br
+.P
+\fBlvcreate\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fB--cachepool\fP \fILV\fP\fI_cachepool\fP \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-H\fP|\fB--cache\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBcache\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachepolicy\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachesettings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Create a cache LV, first creating a new origin LV,
+.br
+then combining it with the existing cache pool named
+.br
+in the first arg (variant, also use --cachepool).
+.br
+.P
+\fBlvcreate\fP \fB--type\fP \fBcache\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fILV\fP\fI_cachepool\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-H\fP|\fB--cache\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachepolicy\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachesettings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+When LV is a cache pool, create a cache LV,
+.br
+first creating a new origin LV, then combining it with
+.br
+the existing cache pool named in the first arg
+.br
+(variant, infers --type cache, also use --cachepool).
+.br
+When LV is not a cache pool, convert the specified LV
+.br
+to type cache after creating a new cache pool LV to use
+.br
+(use lvconvert).
+.br
+.P
+\fBlvcreate\fP \fB-H\fP|\fB--cache\fP \fB-L\fP|\fB--size\fP \fISize\fP[m|UNIT] \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP \fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--chunksize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--cachemode\fP \fBwritethrough\fP|\fBwriteback\fP|\fBpassthrough\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachepolicy\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachesettings\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cachemetadataformat\fP \fBauto\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadataspare\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+.SH EXAMPLES
+
+Create a striped LV with 3 stripes, a stripe size of 8KiB and a size of 100MiB.
+The LV name is chosen by lvcreate.
+.br
+.B lvcreate \-i 3 \-I 8 \-L 100m vg00
+
+Create a raid1 LV with two images, and a useable size of 500 MiB. This
+operation requires two devices, one for each mirror image. RAID metadata
+(superblock and bitmap) is also included on the two devices.
+.br
+.B lvcreate \-\-type raid1 \-m1 \-L 500m \-n mylv vg00
+
+Create a mirror LV with two images, and a useable size of 500 MiB.
+This operation requires three devices: two for mirror images and
+one for a disk log.
+.br
+.B lvcreate \-\-type mirror \-m1 \-L 500m \-n mylv vg00
+
+Create a mirror LV with 2 images, and a useable size of 500 MiB.
+This operation requires 2 devices because the log is in memory.
+.br
+.B lvcreate \-\-type mirror \-m1 \-\-mirrorlog core \-L 500m \-n mylv vg00
+
+Create a copy\-on\-write snapshot of an LV:
+.br
+.B lvcreate \-\-snapshot \-\-size 100m \-\-name mysnap vg00/mylv
+
+Create a copy\-on\-write snapshot with a size sufficient
+for overwriting 20% of the size of the original LV.
+.br
+.B lvcreate \-s \-l 20%ORIGIN \-n mysnap vg00/mylv
+
+Create a sparse LV with 1TiB of virtual space, and actual space just under
+100MiB.
+.br
+.B lvcreate \-\-snapshot \-\-virtualsize 1t \-\-size 100m \-\-name mylv vg00
+
+Create a linear LV with a usable size of 64MiB on specific physical extents.
+.br
+.B lvcreate \-L 64m \-n mylv vg00 /dev/sda:0\-7 /dev/sdb:0\-7
+
+Create a RAID5 LV with a usable size of 5GiB, 3 stripes, a stripe size of
+64KiB, using a total of 4 devices (including one for parity).
+.br
+.B lvcreate \-\-type raid5 \-L 5G \-i 3 \-I 64 \-n mylv vg00
+
+Create a RAID5 LV using all of the free space in the VG and spanning all the
+PVs in the VG (note that the command will fail if there are more than 8 PVs in
+the VG, in which case \fB\-i 7\fP must be used to get to the current maximum of
+8 devices including parity for RaidLVs).
+.br
+.B lvcreate \-\-config allocation/raid_stripe_all_devices=1
+.RS
+.B \-\-type raid5 \-l 100%FREE \-n mylv vg00
+.RE
+
+Create RAID10 LV with a usable size of 5GiB, using 2 stripes, each on
+a two-image mirror. (Note that the \fB-i\fP and \fB-m\fP arguments behave
+differently:
+\fB-i\fP specifies the total number of stripes,
+but \fB-m\fP specifies the number of images in addition
+to the first image).
+.br
+.B lvcreate \-\-type raid10 \-L 5G \-i 2 \-m 1 \-n mylv vg00
+
+Create a 1TiB thin LV, first creating a new thin pool for it, where
+the thin pool has 100MiB of space, uses 2 stripes, has a 64KiB stripe
+size, and 256KiB chunk size.
+.br
+.B lvcreate \-\-type thin \-\-name mylv \-\-thinpool mypool
+.RS
+.B \-V 1t \-L 100m \-i 2 \-I 64 \-c 256 vg00
+.RE
+
+Create a thin snapshot of a thin LV (the size option must not be
+used, otherwise a copy-on-write snapshot would be created).
+.br
+.B lvcreate \-\-snapshot \-\-name mysnap vg00/thinvol
+
+Create a thin snapshot of the read-only inactive LV named "origin"
+which becomes an external origin for the thin snapshot LV.
+.br
+.B lvcreate \-\-snapshot \-\-name mysnap \-\-thinpool mypool vg00/origin
+
+Create a cache pool from a fast physical device. The cache pool can
+then be used to cache an LV.
+.br
+.B lvcreate \-\-type cache-pool \-L 1G \-n my_cpool vg00 /dev/fast1
+
+Create a cache LV, first creating a new origin LV on a slow physical device,
+then combining the new origin LV with an existing cache pool.
+.br
+.B lvcreate \-\-type cache \-\-cachepool my_cpool
+.RS
+.B \-L 100G \-n mylv vg00 /dev/slow1
+.RE
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvdisplay.8.des b/man/lvdisplay.8_des
index 48552cc95..48552cc95 100644
--- a/man/lvdisplay.8.des
+++ b/man/lvdisplay.8_des
diff --git a/man/lvdisplay.8_end b/man/lvdisplay.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/lvdisplay.8_end
diff --git a/man/lvdisplay.8_pregen b/man/lvdisplay.8_pregen
new file mode 100644
index 000000000..10d45ae38
--- /dev/null
+++ b/man/lvdisplay.8_pregen
@@ -0,0 +1,639 @@
+.TH LVDISPLAY 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvdisplay \- Display information about a logical volume
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvdisplay\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvdisplay shows the attributes of LVs, like size, read/write status,
+snapshot information, etc.
+
+\fBlvs\fP(8) is a preferred alternative that shows the same information
+and more, using a more compact and configurable output format.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvdisplay\fP
+.br
+.RS 4
+.ad l
+[ \fB-a\fP|\fB--all\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--colon\fP ]
+.ad b
+.br
+.ad l
+[ \fB-C\fP|\fB--columns\fP ]
+.ad b
+.br
+.ad l
+[ \fB-H\fP|\fB--history\fP ]
+.ad b
+.br
+.ad l
+[ \fB-m\fP|\fB--maps\fP ]
+.ad b
+.br
+.ad l
+[ \fB-o\fP|\fB--options\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-O\fP|\fB--sort\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--aligned\fP ]
+.ad b
+.br
+.ad l
+[ \fB--binary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP ]
+.ad b
+.br
+.ad l
+[ \fB--foreign\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--logonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noheadings\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosuffix\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--segments\fP ]
+.ad b
+.br
+.ad l
+[ \fB--separator\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--shared\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unbuffered\fP ]
+.ad b
+.br
+.ad l
+[ \fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fILV\fP|\fITag\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--aligned\fP
+.br
+Use with --separator to align the output columns
+.ad b
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+Show information about internal LVs.
+These are components of normal LVs, such as mirrors,
+which are not independently accessible, e.g. not mountable.
+.ad b
+
+.HP
+.ad l
+\fB--binary\fP
+.br
+Use binary values "0" or "1" instead of descriptive literal values
+for columns that have exactly two valid values to report (not counting
+the "unknown" value which denotes that the value could not be determined).
+.ad b
+
+.HP
+.ad l
+\fB-c\fP|\fB--colon\fP
+.br
+Generate colon separated output for easier parsing in scripts or programs.
+Also see vgs(8) which provides considerably more control over the output.
+.ad b
+
+.HP
+.ad l
+\fB-C\fP|\fB--columns\fP
+.br
+Display output in columns, the equivalent of vgs(8).
+Options listed are the same as options given in vgs(8).
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--foreign\fP
+.br
+Report/display foreign VGs that would otherwise be skipped.
+See lvmsystemid(7) for more information about foreign VGs.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-H\fP|\fB--history\fP
+.br
+Include historical LVs in the output.
+(This has no effect unless LVs were removed while
+lvm.conf metadata/record_lvs_history was enabled.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--logonly\fP
+.br
+Suppress command report and display only log report.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-m\fP|\fB--maps\fP
+.br
+Display the mapping of logical extents to PVs and physical extents.
+To map physical extents to logical extents use:
+pvs --segments -o+lv_name,seg_start_pe,segtype
+.ad b
+
+.HP
+.ad l
+\fB--noheadings\fP
+.br
+Suppress the headings line that is normally the first line of output.
+Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--nosuffix\fP
+.br
+Suppress the suffix on output sizes. Use with --units
+(except h and H) if processing the output.
+.ad b
+
+.HP
+.ad l
+\fB-o\fP|\fB--options\fP \fIString\fP
+.br
+Comma-separated, ordered list of fields to display in columns.
+String arg syntax is: [+|-|#]Field1[,Field2 ...]
+The prefix \fB+\fP will append the specified fields to the default fields,
+\fB-\fP will remove the specified fields from the default fields, and
+\fB#\fP will compact specified fields (removing them when empty for all rows.)
+Use \fB-o help\fP to view the list of all available fields.
+The -o option can be repeated, providing several lists.
+These lists are evaluated from left to right.
+Use field name \fBlv_all\fP to view all LV fields,
+\fBvg_all\fP all VG fields,
+\fBpv_all\fP all PV fields,
+\fBpvseg_all\fP all PV segment fields,
+\fBseg_all\fP all LV segment fields, and
+\fBpvseg_all\fP all PV segment columns.
+See the lvm.conf report section for more config options.
+See lvmreport(7) for more information about reporting.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--segments\fP
+.br
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB--separator\fP \fIString\fP
+.br
+String to use to separate each column. Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--shared\fP
+.br
+Report/display shared VGs that would otherwise be skipped when
+lvmlockd is not being used on the host.
+See lvmlockd(8) for more information about shared VGs.
+.ad b
+
+.HP
+.ad l
+\fB-O\fP|\fB--sort\fP \fIString\fP
+.br
+Comma-separated ordered list of columns to sort by. Replaces the default
+selection. Precede any column with \fB-\fP for a reverse sort on that column.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--unbuffered\fP
+.br
+Produce output immediately without sorting or aligning the columns properly.
+.ad b
+
+.HP
+.ad l
+\fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP
+.br
+All sizes are output in these units:
+human-(r)eadable with '<' rounding indicator,
+(h)uman-readable, (b)ytes, (s)ectors, (k)ilobytes, (m)egabytes,
+(g)igabytes, (t)erabytes, (p)etabytes, (e)xabytes.
+Capitalise to use multiples of 1000 (S.I.) instead of 1024.
+Custom units can be specified, e.g. --units 3M.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvextend.8.des b/man/lvextend.8_des
index 4c0575dd3..4c0575dd3 100644
--- a/man/lvextend.8.des
+++ b/man/lvextend.8_des
diff --git a/man/lvextend.8.end b/man/lvextend.8_end
index 6d197de81..6d197de81 100644
--- a/man/lvextend.8.end
+++ b/man/lvextend.8_end
diff --git a/man/lvextend.8_pregen b/man/lvextend.8_pregen
new file mode 100644
index 000000000..92e579605
--- /dev/null
+++ b/man/lvextend.8_pregen
@@ -0,0 +1,781 @@
+.TH LVEXTEND 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvextend \- Add space to a logical volume
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvextend\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.P
+.ad l
+ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.ad b
+.br
+.ad l
+ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-l\fP|\fB--extents\fP [\fB+\fP]\fINumber\fP[PERCENT]
+.ad b
+.br
+.ad l
+ \fB-f\fP|\fB--force\fP
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB-m\fP|\fB--mirrors\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB-n\fP|\fB--nofsck\fP
+.ad b
+.br
+.ad l
+ \fB--nosync\fP
+.ad b
+.br
+.ad l
+ \fB--noudevsync\fP
+.ad b
+.br
+.ad l
+ \fB--poolmetadatasize\fP [\fB+\fP]\fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.ad b
+.br
+.ad l
+ \fB-r\fP|\fB--resizefs\fP
+.ad b
+.br
+.ad l
+ \fB-L\fP|\fB--size\fP [\fB+\fP]\fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB-i\fP|\fB--stripes\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP
+.ad b
+.br
+.ad l
+ \fB--usepolicies\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
+
+.P
+
+.SH DESCRIPTION
+lvextend extends the size of an LV. This requires allocating logical
+extents from the VG's free physical extents. If the extension adds a new
+LV segment, the new segment will use the existing segment type of the LV.
+
+Extending a copy\-on\-write snapshot LV adds space for COW blocks.
+
+Use \fBlvconvert\fP(8) to change the number of data images in a RAID or
+mirrored LV.
+
+In the usage section below, \fB--size\fP \fISize\fP can be replaced
+with \fB--extents\fP \fINumber\fP. See both descriptions
+the options section.
+
+.P
+.SH USAGE
+.br
+.P
+.
+Extend an LV by a specified size.
+.br
+.P
+\fBlvextend\fP \fB-L\fP|\fB--size\fP [\fB+\fP]\fISize\fP[m|UNIT] \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP [\fB+\fP]\fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-r\fP|\fB--resizefs\fP ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP [\fB+\fP]\fISize\fP[m|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Extend an LV by specified PV extents.
+.br
+.P
+\fBlvextend\fP \fILV\fP \fIPV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-r\fP|\fB--resizefs\fP ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Extend a pool metadata SubLV by a specified size.
+.br
+.P
+\fBlvextend\fP \fB--poolmetadatasize\fP [\fB+\fP]\fISize\fP[m|UNIT] \fILV\fP\fI_thinpool\fP
+.br
+.RS 4
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Extend an LV according to a predefined policy.
+.br
+.P
+\fBlvextend\fP \fB--usepolicies\fP \fILV\fP\fI_snapshot_thinpool\fP
+.br
+.RS 4
+.ad l
+[ \fB-r\fP|\fB--resizefs\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-m\fP|\fB--mirrors\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-n\fP|\fB--nofsck\fP ]
+.ad b
+.br
+.ad l
+[ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.br
+Determines the allocation policy when a command needs to allocate
+Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
+which can be changed with vgchange/lvchange, or overriden on the
+command line.
+\fBnormal\fP applies common sense rules such as not placing parallel stripes
+on the same PV.
+\fBinherit\fP applies the VG policy to an LV.
+\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
+\fBcling\fP places new PEs on the same PV as existing PEs in the same
+stripe of the LV.
+If there are sufficient PEs for an allocation, but normal does not
+use them, \fBanywhere\fP will use them even if it reduces performance,
+e.g. by placing two stripes on the same PV.
+Optional positional PV args on the command line can also be used to limit
+which PVs the command will use for allocation.
+See \fBlvm\fP(8) for more information about allocation.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--extents\fP [\fB+\fP]\fINumber\fP[PERCENT]
+.br
+Specifies the new size of the LV in logical extents.
+The --size and --extents options are alternate methods of specifying size.
+The total number of physical extents used will be
+greater when redundant data is needed for RAID levels.
+An alternate syntax allows the size to be determined indirectly
+as a percentage of the size of a related VG, LV, or set of PVs. The
+suffix \fB%VG\fP denotes the total size of the VG, the suffix \fB%FREE\fP
+the remaining free space in the VG, and the suffix \fB%PVS\fP the free
+space in the specified PVs. For a snapshot, the size
+can be expressed as a percentage of the total size of the origin LV
+with the suffix \fB%ORIGIN\fP (\fB100%ORIGIN\fP provides space for
+the whole origin).
+When expressed as a percentage, the size defines an upper limit for the
+number of logical extents in the new LV. The precise number of logical
+extents in the new LV is not determined until the command has completed.
+When the plus \fB+\fP or minus \fB-\fP prefix is used,
+the value is not an absolute size, but is relative and added or subtracted
+from the current size.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-m\fP|\fB--mirrors\fP \fINumber\fP
+.br
+Not used.
+.ad b
+
+.HP
+.ad l
+\fB-n\fP|\fB--nofsck\fP
+.br
+Do not perform fsck before resizing filesystem when filesystem
+requires it. You may need to use --force to proceed with
+this option.
+.ad b
+
+.HP
+.ad l
+\fB--nosync\fP
+.br
+Causes the creation of mirror, raid1, raid4, raid5 and raid10 to skip the
+initial synchronization. In case of mirror, raid1 and raid10, any data
+written afterwards will be mirrored, but the original contents will not be
+copied. In case of raid4 and raid5, no parity blocks will be written,
+though any data written afterwards will cause parity blocks to be stored.
+This is useful for skipping a potentially long and resource intensive initial
+sync of an empty mirror/raid1/raid4/raid5 and raid10 LV.
+This option is not valid for raid6, because raid6 relies on proper parity
+(P and Q Syndromes) being created during initial synchronization in order
+to reconstruct proper user date in case of device failures.
+raid0 and raid0_meta do not provide any data copies or parity support
+and thus do not support initial synchronization.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB--poolmetadatasize\fP [\fB+\fP]\fISize\fP[m|UNIT]
+.br
+Specifies the new size of the pool metadata LV.
+The plus prefix \fB+\fP can be used, in which case
+the value is added to the current size.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-r\fP|\fB--resizefs\fP
+.br
+Resize underlying filesystem together with the LV using fsadm(8).
+.ad b
+
+.HP
+.ad l
+\fB-L\fP|\fB--size\fP [\fB+\fP]\fISize\fP[m|UNIT]
+.br
+Specifies the new size of the LV.
+The --size and --extents options are alternate methods of specifying size.
+The total number of physical extents used will be
+greater when redundant data is needed for RAID levels.
+When the plus \fB+\fP or minus \fB-\fP prefix is used,
+the value is not an absolute size, but is relative and added or subtracted
+from the current size.
+.ad b
+
+.HP
+.ad l
+\fB-i\fP|\fB--stripes\fP \fINumber\fP
+.br
+Specifies the number of stripes in a striped LV. This is the number of
+PVs (devices) that a striped LV is spread across. Data that
+appears sequential in the LV is spread across multiple devices in units of
+the stripe size (see --stripesize). This does not change existing
+allocated space, but only applies to space being allocated by the command.
+When creating a RAID 4/5/6 LV, this number does not include the extra
+devices that are required for parity. The largest number depends on
+the RAID type (raid0: 64, raid10: 32, raid4/5: 63, raid6: 62), and
+when unspecified, the default depends on the RAID type
+(raid0: 2, raid10: 4, raid4/5: 3, raid6: 5.)
+To stripe a new raid LV across all PVs by default,
+see lvm.conf allocation/raid_stripe_all_devices.
+.ad b
+
+.HP
+.ad l
+\fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT]
+.br
+The amount of data that is written to one device before
+moving to the next in a striped LV.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP
+.br
+The LV type, also known as "segment type" or "segtype".
+See usage descriptions for the specific ways to use these types.
+For more information about redundancy and performance (\fBraid\fP<N>, \fBmirror\fP, \fBstriped\fP, \fBlinear\fP) see \fBlvmraid\fP(7).
+For thin provisioning (\fBthin\fP, \fBthin-pool\fP) see \fBlvmthin\fP(7).
+For performance caching (\fBcache\fP, \fBcache-pool\fP) see \fBlvmcache\fP(7).
+For copy-on-write snapshots (\fBsnapshot\fP) see usage definitions.
+Several commands omit an explicit type option because the type
+is inferred from other options or shortcuts
+(e.g. --stripes, --mirrors, --snapshot, --virtualsize, --thin, --cache).
+Use inferred types with care because it can lead to unexpected results.
+.ad b
+
+.HP
+.ad l
+\fB--usepolicies\fP
+.br
+Perform an operation according to the policy configured in lvm.conf
+or a profile.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+LV followed by _<type> indicates that an LV of the
+given type is required. (raid represents raid<N> type)
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Extend the size of an LV by 54MiB, using a specific PV.
+.br
+.B lvextend \-L +54 vg01/lvol10 /dev/sdk3
+
+Extend the size of an LV by the amount of free
+space on PV /dev/sdk3. This is equivalent to specifying
+"\-l +100%PVS" on the command line.
+.br
+.B lvextend vg01/lvol01 /dev/sdk3
+
+Extend an LV by 16MiB using specific physical extents.
+.br
+.B lvextend \-L+16m vg01/lvol01 /dev/sda:8\-9 /dev/sdb:8\-9
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvm-config.8.des b/man/lvm-config.8_des
index 1d365668d..1d365668d 100644
--- a/man/lvm-config.8.des
+++ b/man/lvm-config.8_des
diff --git a/man/lvm-config.8_end b/man/lvm-config.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/lvm-config.8_end
diff --git a/man/lvm-config.8_pregen b/man/lvm-config.8_pregen
new file mode 100644
index 000000000..7223fd23b
--- /dev/null
+++ b/man/lvm-config.8_pregen
@@ -0,0 +1,522 @@
+.TH LVM CONFIG 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvm config \- Display and manipulate configuration information
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvm config\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+This command is the same as \fBlvmconfig\fP(8).
+
+lvm config produces formatted output from the LVM configuration tree. The
+sources of the configuration data include \fBlvm.conf\fP(5) and command
+line settings from \-\-config.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvm config\fP
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--file\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-l\fP|\fB--list\fP ]
+.ad b
+.br
+.ad l
+[ \fB--atversion\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--typeconfig\fP \fBcurrent\fP|\fBdefault\fP|\fBdiff\fP|\fBfull\fP|\fBlist\fP|\fBmissing\fP|\fBnew\fP|\fBprofilable\fP|\fBprofilable-command\fP|\fBprofilable-metadata\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreadvanced\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreunsupported\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelocal\fP ]
+.ad b
+.br
+.ad l
+[ \fB--mergedconfig\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--sinceversion\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--showdeprecated\fP ]
+.ad b
+.br
+.ad l
+[ \fB--showunsupported\fP ]
+.ad b
+.br
+.ad l
+[ \fB--validate\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withsummary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withcomments\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withspaces\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unconfigured\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withversions\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIString\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--atversion\fP \fIString\fP
+.br
+Specify an LVM version in x.y.z format where x is the major version,
+the y is the minor version and z is the patchlevel (e.g. 2.2.106).
+When configuration is displayed, the configuration settings recognized
+at this LVM version will be considered only. This can be used
+to display a configuration that a certain LVM version understands and
+which does not contain any newer settings for which LVM would
+issue a warning message when checking the configuration.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--file\fP \fIString\fP
+.br
+Write output to the named file.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreadvanced\fP
+.br
+Exclude advanced configuration settings from the output.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelocal\fP
+.br
+Ignore local section.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreunsupported\fP
+.br
+Exclude unsupported configuration settings from the output. These settings are
+either used for debugging and development purposes only or their support is not
+yet complete and they are not meant to be used in production. The \fBcurrent\fP
+and \fBdiff\fP types include unsupported settings in their output by default,
+all the other types ignore unsupported settings.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--list\fP
+.br
+List config settings with summarizing comment. This is the same as using
+options --typeconfig list --withsummary.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--mergedconfig\fP
+.br
+When the command is run with --config
+and/or --commandprofile (or using LVM_COMMAND_PROFILE
+environment variable), --profile, or --metadataprofile,
+merge all the contents of the "config cascade" before displaying it.
+Without merging, only the configuration at the front of the
+cascade is displayed.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--metadataprofile\fP \fIString\fP
+.br
+The metadata profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--showdeprecated\fP
+.br
+Include deprecated configuration settings in the output. These settings
+are deprecated after a certain version. If a concrete version is specified
+with --atversion, deprecated settings are automatically included
+if the specified version is lower than the version in which the settings were
+deprecated. The current and diff types include deprecated settings
+in their output by default, all the other types ignore deprecated settings.
+.ad b
+
+.HP
+.ad l
+\fB--showunsupported\fP
+.br
+Include unsupported configuration settings in the output. These settings
+are either used for debugging or development purposes only, or their support
+is not yet complete and they are not meant to be used in production. The
+current and diff types include unsupported settings in their
+output by default, all the other types ignore unsupported settings.
+.ad b
+
+.HP
+.ad l
+\fB--sinceversion\fP \fIString\fP
+.br
+Specify an LVM version in x.y.z format where x is the major version,
+the y is the minor version and z is the patchlevel (e.g. 2.2.106).
+This option is currently applicable only with --typeconfig new
+to display all configuration settings introduced since given version.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--typeconfig\fP \fBcurrent\fP|\fBdefault\fP|\fBdiff\fP|\fBfull\fP|\fBlist\fP|\fBmissing\fP|\fBnew\fP|\fBprofilable\fP|\fBprofilable-command\fP|\fBprofilable-metadata\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB--unconfigured\fP
+.br
+Internal option used for generating config file during build.
+.ad b
+
+.HP
+.ad l
+\fB--validate\fP
+.br
+Validate current configuration used and exit with appropriate
+return code. The validation is done only for the configuration
+at the front of the "config cascade". To validate the whole
+merged configuration tree, also use --mergedconfig.
+The validation is done even if lvm.conf config/checks is disabled.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB--withcomments\fP
+.br
+Display a full comment for each configuration node. For deprecated
+settings, also display comments about deprecation.
+.ad b
+
+.HP
+.ad l
+\fB--withspaces\fP
+.br
+Where appropriate, add more spaces in output for better readability.
+.ad b
+
+.HP
+.ad l
+\fB--withsummary\fP
+.br
+Display a one line comment for each configuration node.
+.ad b
+
+.HP
+.ad l
+\fB--withversions\fP
+.br
+Also display a comment containing the version of introduction for
+each configuration node. If the setting is deprecated, also display
+the version since which it is deprecated.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvm-dumpconfig.8.des b/man/lvm-dumpconfig.8_des
index 18593fba5..18593fba5 100644
--- a/man/lvm-dumpconfig.8.des
+++ b/man/lvm-dumpconfig.8_des
diff --git a/man/lvm-dumpconfig.8_end b/man/lvm-dumpconfig.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/lvm-dumpconfig.8_end
diff --git a/man/lvm-dumpconfig.8_pregen b/man/lvm-dumpconfig.8_pregen
new file mode 100644
index 000000000..acc54cae5
--- /dev/null
+++ b/man/lvm-dumpconfig.8_pregen
@@ -0,0 +1,522 @@
+.TH LVM DUMPCONFIG 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvm dumpconfig \- Display and manipulate configuration information
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvm dumpconfig\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+This command is the same as \fBlvmconfig\fP(8).
+
+lvm dumpconfig produces formatted output from the LVM configuration tree. The
+sources of the configuration data include \fBlvm.conf\fP(5) and command
+line settings from \-\-config.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvm dumpconfig\fP
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--file\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-l\fP|\fB--list\fP ]
+.ad b
+.br
+.ad l
+[ \fB--atversion\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--typeconfig\fP \fBcurrent\fP|\fBdefault\fP|\fBdiff\fP|\fBfull\fP|\fBlist\fP|\fBmissing\fP|\fBnew\fP|\fBprofilable\fP|\fBprofilable-command\fP|\fBprofilable-metadata\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreadvanced\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreunsupported\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelocal\fP ]
+.ad b
+.br
+.ad l
+[ \fB--mergedconfig\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--sinceversion\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--showdeprecated\fP ]
+.ad b
+.br
+.ad l
+[ \fB--showunsupported\fP ]
+.ad b
+.br
+.ad l
+[ \fB--validate\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withsummary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withcomments\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withspaces\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unconfigured\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withversions\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIString\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--atversion\fP \fIString\fP
+.br
+Specify an LVM version in x.y.z format where x is the major version,
+the y is the minor version and z is the patchlevel (e.g. 2.2.106).
+When configuration is displayed, the configuration settings recognized
+at this LVM version will be considered only. This can be used
+to display a configuration that a certain LVM version understands and
+which does not contain any newer settings for which LVM would
+issue a warning message when checking the configuration.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--file\fP \fIString\fP
+.br
+Write output to the named file.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreadvanced\fP
+.br
+Exclude advanced configuration settings from the output.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelocal\fP
+.br
+Ignore local section.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreunsupported\fP
+.br
+Exclude unsupported configuration settings from the output. These settings are
+either used for debugging and development purposes only or their support is not
+yet complete and they are not meant to be used in production. The \fBcurrent\fP
+and \fBdiff\fP types include unsupported settings in their output by default,
+all the other types ignore unsupported settings.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--list\fP
+.br
+List config settings with summarizing comment. This is the same as using
+options --typeconfig list --withsummary.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--mergedconfig\fP
+.br
+When the command is run with --config
+and/or --commandprofile (or using LVM_COMMAND_PROFILE
+environment variable), --profile, or --metadataprofile,
+merge all the contents of the "config cascade" before displaying it.
+Without merging, only the configuration at the front of the
+cascade is displayed.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--metadataprofile\fP \fIString\fP
+.br
+The metadata profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--showdeprecated\fP
+.br
+Include deprecated configuration settings in the output. These settings
+are deprecated after a certain version. If a concrete version is specified
+with --atversion, deprecated settings are automatically included
+if the specified version is lower than the version in which the settings were
+deprecated. The current and diff types include deprecated settings
+in their output by default, all the other types ignore deprecated settings.
+.ad b
+
+.HP
+.ad l
+\fB--showunsupported\fP
+.br
+Include unsupported configuration settings in the output. These settings
+are either used for debugging or development purposes only, or their support
+is not yet complete and they are not meant to be used in production. The
+current and diff types include unsupported settings in their
+output by default, all the other types ignore unsupported settings.
+.ad b
+
+.HP
+.ad l
+\fB--sinceversion\fP \fIString\fP
+.br
+Specify an LVM version in x.y.z format where x is the major version,
+the y is the minor version and z is the patchlevel (e.g. 2.2.106).
+This option is currently applicable only with --typeconfig new
+to display all configuration settings introduced since given version.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--typeconfig\fP \fBcurrent\fP|\fBdefault\fP|\fBdiff\fP|\fBfull\fP|\fBlist\fP|\fBmissing\fP|\fBnew\fP|\fBprofilable\fP|\fBprofilable-command\fP|\fBprofilable-metadata\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB--unconfigured\fP
+.br
+Internal option used for generating config file during build.
+.ad b
+
+.HP
+.ad l
+\fB--validate\fP
+.br
+Validate current configuration used and exit with appropriate
+return code. The validation is done only for the configuration
+at the front of the "config cascade". To validate the whole
+merged configuration tree, also use --mergedconfig.
+The validation is done even if lvm.conf config/checks is disabled.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB--withcomments\fP
+.br
+Display a full comment for each configuration node. For deprecated
+settings, also display comments about deprecation.
+.ad b
+
+.HP
+.ad l
+\fB--withspaces\fP
+.br
+Where appropriate, add more spaces in output for better readability.
+.ad b
+
+.HP
+.ad l
+\fB--withsummary\fP
+.br
+Display a one line comment for each configuration node.
+.ad b
+
+.HP
+.ad l
+\fB--withversions\fP
+.br
+Also display a comment containing the version of introduction for
+each configuration node. If the setting is deprecated, also display
+the version since which it is deprecated.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvm-fullreport.8.des b/man/lvm-fullreport.8_des
index f350a0aed..f350a0aed 100644
--- a/man/lvm-fullreport.8.des
+++ b/man/lvm-fullreport.8_des
diff --git a/man/lvm-fullreport.8_end b/man/lvm-fullreport.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/lvm-fullreport.8_end
diff --git a/man/lvm-fullreport.8_pregen b/man/lvm-fullreport.8_pregen
new file mode 100644
index 000000000..74f8dd38d
--- /dev/null
+++ b/man/lvm-fullreport.8_pregen
@@ -0,0 +1,623 @@
+.TH LVM FULLREPORT 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvm fullreport \- Display full report
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvm fullreport\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvm fullreport produces formatted output about PVs, PV segments, VGs, LVs
+and LV segments. The information is all gathered together for each VG
+(under a per-VG lock) so it is consistent. Information gathered from
+separate calls to \fBvgs\fP, \fBpvs\fP, and \fBlvs\fP can be inconsistent
+if information changes between commands.
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvm fullreport\fP
+.br
+.RS 4
+.ad l
+[ \fB-a\fP|\fB--all\fP ]
+.ad b
+.br
+.ad l
+[ \fB-o\fP|\fB--options\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-O\fP|\fB--sort\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--aligned\fP ]
+.ad b
+.br
+.ad l
+[ \fB--binary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP ]
+.ad b
+.br
+.ad l
+[ \fB--foreign\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--logonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nameprefixes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noheadings\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nolocking\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosuffix\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--rows\fP ]
+.ad b
+.br
+.ad l
+[ \fB--separator\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--shared\fP ]
+.ad b
+.br
+.ad l
+[ \fB--trustcache\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unbuffered\fP ]
+.ad b
+.br
+.ad l
+[ \fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unquoted\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--aligned\fP
+.br
+Use with --separator to align the output columns
+.ad b
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+.ad b
+
+.HP
+.ad l
+\fB--binary\fP
+.br
+Use binary values "0" or "1" instead of descriptive literal values
+for columns that have exactly two valid values to report (not counting
+the "unknown" value which denotes that the value could not be determined).
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--foreign\fP
+.br
+Report/display foreign VGs that would otherwise be skipped.
+See lvmsystemid(7) for more information about foreign VGs.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--logonly\fP
+.br
+Suppress command report and display only log report.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--nameprefixes\fP
+.br
+Add an "LVM2_" prefix plus the field name to the output. Useful
+with --noheadings to produce a list of field=value pairs that can
+be used to set environment variables (for example, in udev rules).
+.ad b
+
+.HP
+.ad l
+\fB--noheadings\fP
+.br
+Suppress the headings line that is normally the first line of output.
+Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--nolocking\fP
+.br
+Disable locking.
+.ad b
+
+.HP
+.ad l
+\fB--nosuffix\fP
+.br
+Suppress the suffix on output sizes. Use with --units
+(except h and H) if processing the output.
+.ad b
+
+.HP
+.ad l
+\fB-o\fP|\fB--options\fP \fIString\fP
+.br
+Comma-separated, ordered list of fields to display in columns.
+String arg syntax is: [+|-|#]Field1[,Field2 ...]
+The prefix \fB+\fP will append the specified fields to the default fields,
+\fB-\fP will remove the specified fields from the default fields, and
+\fB#\fP will compact specified fields (removing them when empty for all rows.)
+Use \fB-o help\fP to view the list of all available fields.
+The -o option can be repeated, providing several lists.
+These lists are evaluated from left to right.
+Use field name \fBlv_all\fP to view all LV fields,
+\fBvg_all\fP all VG fields,
+\fBpv_all\fP all PV fields,
+\fBpvseg_all\fP all PV segment fields,
+\fBseg_all\fP all LV segment fields, and
+\fBpvseg_all\fP all PV segment columns.
+See the lvm.conf report section for more config options.
+See lvmreport(7) for more information about reporting.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--rows\fP
+.br
+Output columns as rows.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB--separator\fP \fIString\fP
+.br
+String to use to separate each column. Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--shared\fP
+.br
+Report/display shared VGs that would otherwise be skipped when
+lvmlockd is not being used on the host.
+See lvmlockd(8) for more information about shared VGs.
+.ad b
+
+.HP
+.ad l
+\fB-O\fP|\fB--sort\fP \fIString\fP
+.br
+Comma-separated ordered list of columns to sort by. Replaces the default
+selection. Precede any column with \fB-\fP for a reverse sort on that column.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--trustcache\fP
+.br
+Avoids certain device scanning during command processing. Do not use.
+.ad b
+
+.HP
+.ad l
+\fB--unbuffered\fP
+.br
+Produce output immediately without sorting or aligning the columns properly.
+.ad b
+
+.HP
+.ad l
+\fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP
+.br
+All sizes are output in these units:
+human-(r)eadable with '<' rounding indicator,
+(h)uman-readable, (b)ytes, (s)ectors, (k)ilobytes, (m)egabytes,
+(g)igabytes, (t)erabytes, (p)etabytes, (e)xabytes.
+Capitalise to use multiples of 1000 (S.I.) instead of 1024.
+Custom units can be specified, e.g. --units 3M.
+.ad b
+
+.HP
+.ad l
+\fB--unquoted\fP
+.br
+When used with --nameprefixes, output values in the field=value
+pairs are not quoted.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvm-lvpoll.8.des b/man/lvm-lvpoll.8_des
index 35c252231..35c252231 100644
--- a/man/lvm-lvpoll.8.des
+++ b/man/lvm-lvpoll.8_des
diff --git a/man/lvm-lvpoll.8.end b/man/lvm-lvpoll.8_end
index eddb3641b..eddb3641b 100644
--- a/man/lvm-lvpoll.8.end
+++ b/man/lvm-lvpoll.8_end
diff --git a/man/lvm-lvpoll.8_pregen b/man/lvm-lvpoll.8_pregen
new file mode 100644
index 000000000..935123cff
--- /dev/null
+++ b/man/lvm-lvpoll.8_pregen
@@ -0,0 +1,373 @@
+.TH LVM LVPOLL 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvm lvpoll \- Continue already initiated poll operation on a logical volume
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvm lvpoll\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvm lvpoll is an internal command used by \fBlvmpolld\fP(8) to monitor and
+complete \fBlvconvert\fP(8) and \fBpvmove\fP(8) operations. lvpoll itself
+does not initiate these operations and should not normally need to be run
+directly.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvm lvpoll\fP \fB--polloperation\fP \fBpvmove\fP|\fBconvert\fP|\fBmerge\fP|\fBmerge_thin\fP \fILV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--abort\fP ]
+.ad b
+.br
+.ad l
+[ \fB--handlemissingpvs\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--abort\fP
+.br
+Stop processing a poll operation in lvmpolld.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--handlemissingpvs\fP
+.br
+Allows a polling operation to continue when PVs are missing,
+e.g. for repairs due to faulty devices.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-i\fP|\fB--interval\fP \fINumber\fP
+.br
+Report progress at regular intervals.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--polloperation\fP \fBpvmove\fP|\fBconvert\fP|\fBmerge\fP|\fBmerge_thin\fP
+.br
+The command to perform from lvmpolld.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH NOTES
+
+To find the name of the pvmove LV that was created by an original
+\fBpvmove /dev/name\fP command, use the command:
+.br
+\fBlvs -a -S move_pv=/dev/name\fP.
+
+.SH EXAMPLES
+
+Continue polling a pvmove operation.
+.br
+.B lvm lvpoll --polloperation pvmove vg00/pvmove0
+
+Abort a pvmove operation.
+.br
+.B lvm lvpoll --polloperation pvmove --abort vg00/pvmove0
+
+Continue polling a mirror conversion.
+.br
+.B lvm lvpoll --polloperation convert vg00/lvmirror
+
+Continue mirror repair.
+.br
+.B lvm lvpoll --polloperation convert vg/damaged_mirror --handlemissingpvs
+
+Continue snapshot merge.
+.br
+.B lvm lvpoll --polloperation merge vg/snapshot_old
+
+Continue thin snapshot merge.
+.br
+.B lvm lvpoll --polloperation merge_thin vg/thin_snapshot
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvm.8.in b/man/lvm.8_main
index 1f3247a75..1f3247a75 100644
--- a/man/lvm.8.in
+++ b/man/lvm.8_main
diff --git a/man/lvm.conf.5.in b/man/lvm.conf.5_main
index ae884beec..ae884beec 100644
--- a/man/lvm.conf.5.in
+++ b/man/lvm.conf.5_main
diff --git a/man/lvm2-activation-generator.8.in b/man/lvm2-activation-generator.8_main
index e1be5e172..e1be5e172 100644
--- a/man/lvm2-activation-generator.8.in
+++ b/man/lvm2-activation-generator.8_main
diff --git a/man/lvmcache.7.in b/man/lvmcache.7_main
index 45bb5b1a6..45bb5b1a6 100644
--- a/man/lvmcache.7.in
+++ b/man/lvmcache.7_main
diff --git a/man/lvmconf.8.in b/man/lvmconf.8_main
index 44cb52be2..44cb52be2 100644
--- a/man/lvmconf.8.in
+++ b/man/lvmconf.8_main
diff --git a/man/lvmconfig.8.des b/man/lvmconfig.8_des
index 17f9f18e7..17f9f18e7 100644
--- a/man/lvmconfig.8.des
+++ b/man/lvmconfig.8_des
diff --git a/man/lvmconfig.8_end b/man/lvmconfig.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/lvmconfig.8_end
diff --git a/man/lvmconfig.8_pregen b/man/lvmconfig.8_pregen
new file mode 100644
index 000000000..e3bfdfcbd
--- /dev/null
+++ b/man/lvmconfig.8_pregen
@@ -0,0 +1,520 @@
+.TH LVMCONFIG 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvmconfig \- Display and manipulate configuration information
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvmconfig\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvmconfig produces formatted output from the LVM configuration tree. The
+sources of the configuration data include \fBlvm.conf\fP(5) and command
+line settings from \-\-config.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvmconfig\fP
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--file\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-l\fP|\fB--list\fP ]
+.ad b
+.br
+.ad l
+[ \fB--atversion\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--typeconfig\fP \fBcurrent\fP|\fBdefault\fP|\fBdiff\fP|\fBfull\fP|\fBlist\fP|\fBmissing\fP|\fBnew\fP|\fBprofilable\fP|\fBprofilable-command\fP|\fBprofilable-metadata\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreadvanced\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreunsupported\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelocal\fP ]
+.ad b
+.br
+.ad l
+[ \fB--mergedconfig\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--sinceversion\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--showdeprecated\fP ]
+.ad b
+.br
+.ad l
+[ \fB--showunsupported\fP ]
+.ad b
+.br
+.ad l
+[ \fB--validate\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withsummary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withcomments\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withspaces\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unconfigured\fP ]
+.ad b
+.br
+.ad l
+[ \fB--withversions\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIString\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--atversion\fP \fIString\fP
+.br
+Specify an LVM version in x.y.z format where x is the major version,
+the y is the minor version and z is the patchlevel (e.g. 2.2.106).
+When configuration is displayed, the configuration settings recognized
+at this LVM version will be considered only. This can be used
+to display a configuration that a certain LVM version understands and
+which does not contain any newer settings for which LVM would
+issue a warning message when checking the configuration.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--file\fP \fIString\fP
+.br
+Write output to the named file.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreadvanced\fP
+.br
+Exclude advanced configuration settings from the output.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelocal\fP
+.br
+Ignore local section.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreunsupported\fP
+.br
+Exclude unsupported configuration settings from the output. These settings are
+either used for debugging and development purposes only or their support is not
+yet complete and they are not meant to be used in production. The \fBcurrent\fP
+and \fBdiff\fP types include unsupported settings in their output by default,
+all the other types ignore unsupported settings.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--list\fP
+.br
+List config settings with summarizing comment. This is the same as using
+options --typeconfig list --withsummary.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--mergedconfig\fP
+.br
+When the command is run with --config
+and/or --commandprofile (or using LVM_COMMAND_PROFILE
+environment variable), --profile, or --metadataprofile,
+merge all the contents of the "config cascade" before displaying it.
+Without merging, only the configuration at the front of the
+cascade is displayed.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--metadataprofile\fP \fIString\fP
+.br
+The metadata profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--showdeprecated\fP
+.br
+Include deprecated configuration settings in the output. These settings
+are deprecated after a certain version. If a concrete version is specified
+with --atversion, deprecated settings are automatically included
+if the specified version is lower than the version in which the settings were
+deprecated. The current and diff types include deprecated settings
+in their output by default, all the other types ignore deprecated settings.
+.ad b
+
+.HP
+.ad l
+\fB--showunsupported\fP
+.br
+Include unsupported configuration settings in the output. These settings
+are either used for debugging or development purposes only, or their support
+is not yet complete and they are not meant to be used in production. The
+current and diff types include unsupported settings in their
+output by default, all the other types ignore unsupported settings.
+.ad b
+
+.HP
+.ad l
+\fB--sinceversion\fP \fIString\fP
+.br
+Specify an LVM version in x.y.z format where x is the major version,
+the y is the minor version and z is the patchlevel (e.g. 2.2.106).
+This option is currently applicable only with --typeconfig new
+to display all configuration settings introduced since given version.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--typeconfig\fP \fBcurrent\fP|\fBdefault\fP|\fBdiff\fP|\fBfull\fP|\fBlist\fP|\fBmissing\fP|\fBnew\fP|\fBprofilable\fP|\fBprofilable-command\fP|\fBprofilable-metadata\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB--unconfigured\fP
+.br
+Internal option used for generating config file during build.
+.ad b
+
+.HP
+.ad l
+\fB--validate\fP
+.br
+Validate current configuration used and exit with appropriate
+return code. The validation is done only for the configuration
+at the front of the "config cascade". To validate the whole
+merged configuration tree, also use --mergedconfig.
+The validation is done even if lvm.conf config/checks is disabled.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB--withcomments\fP
+.br
+Display a full comment for each configuration node. For deprecated
+settings, also display comments about deprecation.
+.ad b
+
+.HP
+.ad l
+\fB--withspaces\fP
+.br
+Where appropriate, add more spaces in output for better readability.
+.ad b
+
+.HP
+.ad l
+\fB--withsummary\fP
+.br
+Display a one line comment for each configuration node.
+.ad b
+
+.HP
+.ad l
+\fB--withversions\fP
+.br
+Also display a comment containing the version of introduction for
+each configuration node. If the setting is deprecated, also display
+the version since which it is deprecated.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvmdbusd.8.in b/man/lvmdbusd.8_main
index 9e035f50c..9e035f50c 100644
--- a/man/lvmdbusd.8.in
+++ b/man/lvmdbusd.8_main
diff --git a/man/lvmdiskscan.8.des b/man/lvmdiskscan.8_des
index c1e87cca5..c1e87cca5 100644
--- a/man/lvmdiskscan.8.des
+++ b/man/lvmdiskscan.8_des
diff --git a/man/lvmdiskscan.8_end b/man/lvmdiskscan.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/lvmdiskscan.8_end
diff --git a/man/lvmdiskscan.8_pregen b/man/lvmdiskscan.8_pregen
new file mode 100644
index 000000000..fc87d6572
--- /dev/null
+++ b/man/lvmdiskscan.8_pregen
@@ -0,0 +1,314 @@
+.TH LVMDISKSCAN 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvmdiskscan \- List devices that may be used as physical volumes
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvmdiskscan\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvmdiskscan scans all SCSI, (E)IDE disks, multiple devices and a bunch of
+other block devices in the system looking for LVM PVs. The size reported
+is the real device size. Define a filter in \fBlvm.conf\fP(5) to restrict
+the scan to avoid a CD ROM, for example.
+
+This command is deprecated, use \fBpvs\fP instead.
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvmdiskscan\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--lvmpartition\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--lvmpartition\fP
+.br
+Only report PVs.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvmdump.8.in b/man/lvmdump.8_main
index d0e102e96..d0e102e96 100644
--- a/man/lvmdump.8.in
+++ b/man/lvmdump.8_main
diff --git a/man/lvmetad.8.in b/man/lvmetad.8_main
index c665e18b4..c665e18b4 100644
--- a/man/lvmetad.8.in
+++ b/man/lvmetad.8_main
diff --git a/man/lvmlockctl.8.in b/man/lvmlockctl.8_main
index 546564200..546564200 100644
--- a/man/lvmlockctl.8.in
+++ b/man/lvmlockctl.8_main
diff --git a/man/lvmlockd.8.in b/man/lvmlockd.8_main
index 6e9b703cc..6e9b703cc 100644
--- a/man/lvmlockd.8.in
+++ b/man/lvmlockd.8_main
diff --git a/man/lvmpolld.8.in b/man/lvmpolld.8_main
index 00ee1ab75..00ee1ab75 100644
--- a/man/lvmpolld.8.in
+++ b/man/lvmpolld.8_main
diff --git a/man/lvmraid.7.in b/man/lvmraid.7_main
index dc07f2e00..dc07f2e00 100644
--- a/man/lvmraid.7.in
+++ b/man/lvmraid.7_main
diff --git a/man/lvmreport.7.in b/man/lvmreport.7_main
index 7a264018b..7a264018b 100644
--- a/man/lvmreport.7.in
+++ b/man/lvmreport.7_main
diff --git a/man/lvmsadc.8.des b/man/lvmsadc.8_des
index e4cfd8d34..e4cfd8d34 100644
--- a/man/lvmsadc.8.des
+++ b/man/lvmsadc.8_des
diff --git a/man/lvmsadc.8_end b/man/lvmsadc.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/lvmsadc.8_end
diff --git a/man/lvmsadc.8_pregen b/man/lvmsadc.8_pregen
new file mode 100644
index 000000000..6ee5e3ef8
--- /dev/null
+++ b/man/lvmsadc.8_pregen
@@ -0,0 +1,280 @@
+.TH LVMSADC 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvmsadc \- Collect activity data
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvmsadc\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvmsadc is not currently supported in LVM. The device-mapper statistics
+facility provides similar performance metrics using the \fBdmstats(8)\fP
+command.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvmsadc\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvmsar.8.des b/man/lvmsar.8_des
index 3177506ea..3177506ea 100644
--- a/man/lvmsar.8.des
+++ b/man/lvmsar.8_des
diff --git a/man/lvmsar.8_end b/man/lvmsar.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/lvmsar.8_end
diff --git a/man/lvmsar.8_pregen b/man/lvmsar.8_pregen
new file mode 100644
index 000000000..f0f57c8b9
--- /dev/null
+++ b/man/lvmsar.8_pregen
@@ -0,0 +1,296 @@
+.TH LVMSAR 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvmsar \- Create activity report
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvmsar\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvmsar is not currently supported in LVM. The device-mapper statistics
+facility provides similar performance metrics using the \fBdmstats(8)\fP
+command.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvmsar\fP
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--full\fP ]
+.ad b
+.br
+.ad l
+[ \fB-s\fP|\fB--stdin\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--full\fP.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-s\fP|\fB--stdin\fP.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvmsystemid.7.in b/man/lvmsystemid.7_main
index 3aea9967a..3aea9967a 100644
--- a/man/lvmsystemid.7.in
+++ b/man/lvmsystemid.7_main
diff --git a/man/lvmthin.7.in b/man/lvmthin.7_main
index f6f854866..f6f854866 100644
--- a/man/lvmthin.7.in
+++ b/man/lvmthin.7_main
diff --git a/man/lvreduce.8.des b/man/lvreduce.8_des
index 3d5fc2ab2..3d5fc2ab2 100644
--- a/man/lvreduce.8.des
+++ b/man/lvreduce.8_des
diff --git a/man/lvreduce.8.end b/man/lvreduce.8_end
index 59fde52f0..59fde52f0 100644
--- a/man/lvreduce.8.end
+++ b/man/lvreduce.8_end
diff --git a/man/lvreduce.8_pregen b/man/lvreduce.8_pregen
new file mode 100644
index 000000000..67c382b42
--- /dev/null
+++ b/man/lvreduce.8_pregen
@@ -0,0 +1,426 @@
+.TH LVREDUCE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvreduce \- Reduce the size of a logical volume
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvreduce\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvreduce reduces the size of an LV. The freed logical extents are returned
+to the VG to be used by other LVs. A copy\-on\-write snapshot LV can also
+be reduced if less space is needed to hold COW blocks. Use
+\fBlvconvert\fP(8) to change the number of data images in a RAID or
+mirrored LV.
+
+Be careful when reducing an LV's size, because data in the reduced area is
+lost. Ensure that any file system on the LV is resized \fBbefore\fP
+running lvreduce so that the removed extents are not in use by the file
+system.
+
+Sizes will be rounded if necessary. For example, the LV size must be an
+exact number of extents, and the size of a striped segment must be a
+multiple of the number of stripes.
+
+In the usage section below, \fB--size\fP \fISize\fP can be replaced
+with \fB--extents\fP \fINumber\fP. See both descriptions
+the options section.
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvreduce\fP \fB-L\fP|\fB--size\fP [\fB-\fP]\fISize\fP[m|UNIT] \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP [\fB-\fP]\fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-n\fP|\fB--nofsck\fP ]
+.ad b
+.br
+.ad l
+[ \fB-r\fP|\fB--resizefs\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--extents\fP [\fB-\fP]\fINumber\fP[PERCENT]
+.br
+Specifies the new size of the LV in logical extents.
+The --size and --extents options are alternate methods of specifying size.
+The total number of physical extents used will be
+greater when redundant data is needed for RAID levels.
+An alternate syntax allows the size to be determined indirectly
+as a percentage of the size of a related VG, LV, or set of PVs. The
+suffix \fB%VG\fP denotes the total size of the VG, the suffix \fB%FREE\fP
+the remaining free space in the VG, and the suffix \fB%PVS\fP the free
+space in the specified PVs. For a snapshot, the size
+can be expressed as a percentage of the total size of the origin LV
+with the suffix \fB%ORIGIN\fP (\fB100%ORIGIN\fP provides space for
+the whole origin).
+When expressed as a percentage, the size defines an upper limit for the
+number of logical extents in the new LV. The precise number of logical
+extents in the new LV is not determined until the command has completed.
+When the plus \fB+\fP or minus \fB-\fP prefix is used,
+the value is not an absolute size, but is relative and added or subtracted
+from the current size.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-n\fP|\fB--nofsck\fP
+.br
+Do not perform fsck before resizing filesystem when filesystem
+requires it. You may need to use --force to proceed with
+this option.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-r\fP|\fB--resizefs\fP
+.br
+Resize underlying filesystem together with the LV using fsadm(8).
+.ad b
+
+.HP
+.ad l
+\fB-L\fP|\fB--size\fP [\fB-\fP]\fISize\fP[m|UNIT]
+.br
+Specifies the new size of the LV.
+The --size and --extents options are alternate methods of specifying size.
+The total number of physical extents used will be
+greater when redundant data is needed for RAID levels.
+When the plus \fB+\fP or minus \fB-\fP prefix is used,
+the value is not an absolute size, but is relative and added or subtracted
+from the current size.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Reduce the size of an LV by 3 logical extents:
+.br
+.B lvreduce \-l \-3 vg00/lvol1
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvremove.8.des b/man/lvremove.8_des
index 14587c134..14587c134 100644
--- a/man/lvremove.8.des
+++ b/man/lvremove.8_des
diff --git a/man/lvremove.8.end b/man/lvremove.8_end
index 5c70ed644..5c70ed644 100644
--- a/man/lvremove.8.end
+++ b/man/lvremove.8_end
diff --git a/man/lvremove.8_pregen b/man/lvremove.8_pregen
new file mode 100644
index 000000000..e823f1c9f
--- /dev/null
+++ b/man/lvremove.8_pregen
@@ -0,0 +1,424 @@
+.TH LVREMOVE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvremove \- Remove logical volume(s) from the system
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvremove\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvremove removes one or more LVs. For standard LVs, this returns the
+logical extents that were used by the LV to the VG for use by other LVs.
+
+Confirmation will be requested before deactivating any active LV prior to
+removal. LVs cannot be deactivated or removed while they are open (e.g.
+if they contain a mounted filesystem). Removing an origin LV will also
+remove all dependent snapshots.
+
+When a single force option is used, LVs are removed without confirmation,
+and the command will try to deactivate unused LVs.
+
+To remove damaged LVs, two force options may be required (\fB-ff\fP).
+
+\fBHistorical LVs\fP
+
+If the configuration setting \fBmetadata/record_lvs_history\fP is enabled
+and the LV being removed forms part of the history of at least one LV that
+is still present, then a simplified representation of the LV will be
+retained. This includes the time of removal (\fBlv_time_removed\fP
+reporting field), creation time (\fBlv_time\fP), name (\fBlv_name\fP), LV
+uuid (\fBlv_uuid\fP) and VG name (\fBvg_name\fP). This allows later
+reporting to see the ancestry chain of thin snapshot volumes, even after
+some intermediate LVs have been removed. The names of such historical LVs
+acquire a hyphen as a prefix (e.g. '-lvol1') and cannot be reactivated.
+Use lvremove a second time, with the hyphen, to remove the record of the
+former LV completely.
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvremove\fP \fIVG\fP|\fILV\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nohistory\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--nohistory\fP
+.br
+Do not record history of LVs being removed.
+This has no effect unless the configuration setting
+metadata/record_lvs_history is enabled.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fISelect\fP
+.br
+Select indicates that a required positional parameter can
+be omitted if the \fB--select\fP option is used.
+No arg appears in this position.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Remove an active LV without asking for confirmation.
+.br
+.B lvremove \-f vg00/lvol1
+
+Remove all LVs the specified VG.
+.br
+.B lvremove vg00
+
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvrename.8.des b/man/lvrename.8_des
index a8455fc70..a8455fc70 100644
--- a/man/lvrename.8.des
+++ b/man/lvrename.8_des
diff --git a/man/lvrename.8.end b/man/lvrename.8_end
index 3409b8a8c..3409b8a8c 100644
--- a/man/lvrename.8.end
+++ b/man/lvrename.8_end
diff --git a/man/lvrename.8_pregen b/man/lvrename.8_pregen
new file mode 100644
index 000000000..20bdfbf38
--- /dev/null
+++ b/man/lvrename.8_pregen
@@ -0,0 +1,356 @@
+.TH LVRENAME 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvrename \- Rename a logical volume
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvrename\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvrename renames an existing LV or a historical LV (see \fBlvremove\fP for
+historical LV information.)
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvrename\fP \fIVG\fP \fILV\fP \fILV\fP\fI_new\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+\fBlvrename\fP \fILV\fP \fILV\fP\fI_new\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Rename "lvold" to "lvnew":
+.br
+.B lvrename /dev/vg02/lvold vg02/lvnew
+
+An alternate syntax to rename "lvold" to "lvnew":
+.br
+.B lvrename vg02 lvold lvnew
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvresize.8.des b/man/lvresize.8_des
index 6f39ef734..6f39ef734 100644
--- a/man/lvresize.8.des
+++ b/man/lvresize.8_des
diff --git a/man/lvresize.8.end b/man/lvresize.8_end
index a336d6216..a336d6216 100644
--- a/man/lvresize.8.end
+++ b/man/lvresize.8_end
diff --git a/man/lvresize.8_pregen b/man/lvresize.8_pregen
new file mode 100644
index 000000000..598cde093
--- /dev/null
+++ b/man/lvresize.8_pregen
@@ -0,0 +1,702 @@
+.TH LVRESIZE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvresize \- Resize a logical volume
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvresize\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.P
+.ad l
+ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.ad b
+.br
+.ad l
+ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-l\fP|\fB--extents\fP [\fB+\fP|\fB-\fP]\fINumber\fP[PERCENT]
+.ad b
+.br
+.ad l
+ \fB-f\fP|\fB--force\fP
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB-n\fP|\fB--nofsck\fP
+.ad b
+.br
+.ad l
+ \fB--nosync\fP
+.ad b
+.br
+.ad l
+ \fB--noudevsync\fP
+.ad b
+.br
+.ad l
+ \fB--poolmetadatasize\fP [\fB+\fP]\fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.ad b
+.br
+.ad l
+ \fB-r\fP|\fB--resizefs\fP
+.ad b
+.br
+.ad l
+ \fB-L\fP|\fB--size\fP [\fB+\fP|\fB-\fP]\fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB-i\fP|\fB--stripes\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT]
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
+
+.P
+
+.SH DESCRIPTION
+lvresize resizes an LV in the same way as lvextend and lvreduce. See
+\fBlvextend\fP(8) and \fBlvreduce\fP(8) for more information.
+
+In the usage section below, \fB--size\fP \fISize\fP can be replaced
+with \fB--extents\fP \fINumber\fP. See both descriptions
+the options section.
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+Resize an LV by a specified size.
+.br
+.P
+\fBlvresize\fP \fB-L\fP|\fB--size\fP [\fB+\fP|\fB-\fP]\fISize\fP[m|UNIT] \fILV\fP
+.br
+.RS 4
+.ad l
+[ \fB-l\fP|\fB--extents\fP [\fB+\fP|\fB-\fP]\fINumber\fP[PERCENT] ]
+.ad b
+.br
+.ad l
+[ \fB-r\fP|\fB--resizefs\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poolmetadatasize\fP [\fB+\fP]\fISize\fP[m|UNIT] ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Resize an LV by specified PV extents.
+.br
+.P
+\fBlvresize\fP \fILV\fP \fIPV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-r\fP|\fB--resizefs\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Resize a pool metadata SubLV by a specified size.
+.br
+.P
+\fBlvresize\fP \fB--poolmetadatasize\fP [\fB+\fP]\fISize\fP[m|UNIT] \fILV\fP\fI_thinpool\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+--
+
+.br
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-n\fP|\fB--nofsck\fP ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--stripes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.br
+Determines the allocation policy when a command needs to allocate
+Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
+which can be changed with vgchange/lvchange, or overriden on the
+command line.
+\fBnormal\fP applies common sense rules such as not placing parallel stripes
+on the same PV.
+\fBinherit\fP applies the VG policy to an LV.
+\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
+\fBcling\fP places new PEs on the same PV as existing PEs in the same
+stripe of the LV.
+If there are sufficient PEs for an allocation, but normal does not
+use them, \fBanywhere\fP will use them even if it reduces performance,
+e.g. by placing two stripes on the same PV.
+Optional positional PV args on the command line can also be used to limit
+which PVs the command will use for allocation.
+See \fBlvm\fP(8) for more information about allocation.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--extents\fP [\fB+\fP|\fB-\fP]\fINumber\fP[PERCENT]
+.br
+Specifies the new size of the LV in logical extents.
+The --size and --extents options are alternate methods of specifying size.
+The total number of physical extents used will be
+greater when redundant data is needed for RAID levels.
+An alternate syntax allows the size to be determined indirectly
+as a percentage of the size of a related VG, LV, or set of PVs. The
+suffix \fB%VG\fP denotes the total size of the VG, the suffix \fB%FREE\fP
+the remaining free space in the VG, and the suffix \fB%PVS\fP the free
+space in the specified PVs. For a snapshot, the size
+can be expressed as a percentage of the total size of the origin LV
+with the suffix \fB%ORIGIN\fP (\fB100%ORIGIN\fP provides space for
+the whole origin).
+When expressed as a percentage, the size defines an upper limit for the
+number of logical extents in the new LV. The precise number of logical
+extents in the new LV is not determined until the command has completed.
+When the plus \fB+\fP or minus \fB-\fP prefix is used,
+the value is not an absolute size, but is relative and added or subtracted
+from the current size.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-n\fP|\fB--nofsck\fP
+.br
+Do not perform fsck before resizing filesystem when filesystem
+requires it. You may need to use --force to proceed with
+this option.
+.ad b
+
+.HP
+.ad l
+\fB--nosync\fP
+.br
+Causes the creation of mirror, raid1, raid4, raid5 and raid10 to skip the
+initial synchronization. In case of mirror, raid1 and raid10, any data
+written afterwards will be mirrored, but the original contents will not be
+copied. In case of raid4 and raid5, no parity blocks will be written,
+though any data written afterwards will cause parity blocks to be stored.
+This is useful for skipping a potentially long and resource intensive initial
+sync of an empty mirror/raid1/raid4/raid5 and raid10 LV.
+This option is not valid for raid6, because raid6 relies on proper parity
+(P and Q Syndromes) being created during initial synchronization in order
+to reconstruct proper user date in case of device failures.
+raid0 and raid0_meta do not provide any data copies or parity support
+and thus do not support initial synchronization.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB--poolmetadatasize\fP [\fB+\fP]\fISize\fP[m|UNIT]
+.br
+Specifies the new size of the pool metadata LV.
+The plus prefix \fB+\fP can be used, in which case
+the value is added to the current size.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-r\fP|\fB--resizefs\fP
+.br
+Resize underlying filesystem together with the LV using fsadm(8).
+.ad b
+
+.HP
+.ad l
+\fB-L\fP|\fB--size\fP [\fB+\fP|\fB-\fP]\fISize\fP[m|UNIT]
+.br
+Specifies the new size of the LV.
+The --size and --extents options are alternate methods of specifying size.
+The total number of physical extents used will be
+greater when redundant data is needed for RAID levels.
+When the plus \fB+\fP or minus \fB-\fP prefix is used,
+the value is not an absolute size, but is relative and added or subtracted
+from the current size.
+.ad b
+
+.HP
+.ad l
+\fB-i\fP|\fB--stripes\fP \fINumber\fP
+.br
+Specifies the number of stripes in a striped LV. This is the number of
+PVs (devices) that a striped LV is spread across. Data that
+appears sequential in the LV is spread across multiple devices in units of
+the stripe size (see --stripesize). This does not change existing
+allocated space, but only applies to space being allocated by the command.
+When creating a RAID 4/5/6 LV, this number does not include the extra
+devices that are required for parity. The largest number depends on
+the RAID type (raid0: 64, raid10: 32, raid4/5: 63, raid6: 62), and
+when unspecified, the default depends on the RAID type
+(raid0: 2, raid10: 4, raid4/5: 3, raid6: 5.)
+To stripe a new raid LV across all PVs by default,
+see lvm.conf allocation/raid_stripe_all_devices.
+.ad b
+
+.HP
+.ad l
+\fB-I\fP|\fB--stripesize\fP \fISize\fP[k|UNIT]
+.br
+The amount of data that is written to one device before
+moving to the next in a striped LV.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--type\fP \fBlinear\fP|\fBstriped\fP|\fBsnapshot\fP|\fBmirror\fP|\fBraid\fP|\fBthin\fP|\fBcache\fP|\fBthin-pool\fP|\fBcache-pool\fP
+.br
+The LV type, also known as "segment type" or "segtype".
+See usage descriptions for the specific ways to use these types.
+For more information about redundancy and performance (\fBraid\fP<N>, \fBmirror\fP, \fBstriped\fP, \fBlinear\fP) see \fBlvmraid\fP(7).
+For thin provisioning (\fBthin\fP, \fBthin-pool\fP) see \fBlvmthin\fP(7).
+For performance caching (\fBcache\fP, \fBcache-pool\fP) see \fBlvmcache\fP(7).
+For copy-on-write snapshots (\fBsnapshot\fP) see usage definitions.
+Several commands omit an explicit type option because the type
+is inferred from other options or shortcuts
+(e.g. --stripes, --mirrors, --snapshot, --virtualsize, --thin, --cache).
+Use inferred types with care because it can lead to unexpected results.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+LV followed by _<type> indicates that an LV of the
+given type is required. (raid represents raid<N> type)
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Extend an LV by 16MB using specific physical extents:
+.br
+.B lvresize \-L+16M vg1/lv1 /dev/sda:0\-1 /dev/sdb:0\-1
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvs.8.des b/man/lvs.8_des
index 5f8076447..5f8076447 100644
--- a/man/lvs.8.des
+++ b/man/lvs.8_des
diff --git a/man/lvs.8.end b/man/lvs.8_end
index ff9214835..ff9214835 100644
--- a/man/lvs.8.end
+++ b/man/lvs.8_end
diff --git a/man/lvs.8_pregen b/man/lvs.8_pregen
new file mode 100644
index 000000000..2abe377df
--- /dev/null
+++ b/man/lvs.8_pregen
@@ -0,0 +1,733 @@
+.TH LVS 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvs \- Display information about logical volumes
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvs\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvs produces formatted output about LVs.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvs\fP
+.br
+.RS 4
+.ad l
+[ \fB-H\fP|\fB--history\fP ]
+.ad b
+.br
+.ad l
+[ \fB-a\fP|\fB--all\fP ]
+.ad b
+.br
+.ad l
+[ \fB-o\fP|\fB--options\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-O\fP|\fB--sort\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--segments\fP ]
+.ad b
+.br
+.ad l
+[ \fB--aligned\fP ]
+.ad b
+.br
+.ad l
+[ \fB--binary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP ]
+.ad b
+.br
+.ad l
+[ \fB--foreign\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--logonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nameprefixes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noheadings\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nolocking\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosuffix\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--rows\fP ]
+.ad b
+.br
+.ad l
+[ \fB--separator\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--shared\fP ]
+.ad b
+.br
+.ad l
+[ \fB--trustcache\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unbuffered\fP ]
+.ad b
+.br
+.ad l
+[ \fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unquoted\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fILV\fP|\fITag\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--aligned\fP
+.br
+Use with --separator to align the output columns
+.ad b
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+Show information about internal LVs.
+These are components of normal LVs, such as mirrors,
+which are not independently accessible, e.g. not mountable.
+.ad b
+
+.HP
+.ad l
+\fB--binary\fP
+.br
+Use binary values "0" or "1" instead of descriptive literal values
+for columns that have exactly two valid values to report (not counting
+the "unknown" value which denotes that the value could not be determined).
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--foreign\fP
+.br
+Report/display foreign VGs that would otherwise be skipped.
+See lvmsystemid(7) for more information about foreign VGs.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-H\fP|\fB--history\fP
+.br
+Include historical LVs in the output.
+(This has no effect unless LVs were removed while
+lvm.conf metadata/record_lvs_history was enabled.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--logonly\fP
+.br
+Suppress command report and display only log report.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--nameprefixes\fP
+.br
+Add an "LVM2_" prefix plus the field name to the output. Useful
+with --noheadings to produce a list of field=value pairs that can
+be used to set environment variables (for example, in udev rules).
+.ad b
+
+.HP
+.ad l
+\fB--noheadings\fP
+.br
+Suppress the headings line that is normally the first line of output.
+Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--nolocking\fP
+.br
+Disable locking.
+.ad b
+
+.HP
+.ad l
+\fB--nosuffix\fP
+.br
+Suppress the suffix on output sizes. Use with --units
+(except h and H) if processing the output.
+.ad b
+
+.HP
+.ad l
+\fB-o\fP|\fB--options\fP \fIString\fP
+.br
+Comma-separated, ordered list of fields to display in columns.
+String arg syntax is: [+|-|#]Field1[,Field2 ...]
+The prefix \fB+\fP will append the specified fields to the default fields,
+\fB-\fP will remove the specified fields from the default fields, and
+\fB#\fP will compact specified fields (removing them when empty for all rows.)
+Use \fB-o help\fP to view the list of all available fields.
+The -o option can be repeated, providing several lists.
+These lists are evaluated from left to right.
+Use field name \fBlv_all\fP to view all LV fields,
+\fBvg_all\fP all VG fields,
+\fBpv_all\fP all PV fields,
+\fBpvseg_all\fP all PV segment fields,
+\fBseg_all\fP all LV segment fields, and
+\fBpvseg_all\fP all PV segment columns.
+See the lvm.conf report section for more config options.
+See lvmreport(7) for more information about reporting.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--rows\fP
+.br
+Output columns as rows.
+.ad b
+
+.HP
+.ad l
+\fB--segments\fP
+.br
+Use default columns that emphasize segment information.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB--separator\fP \fIString\fP
+.br
+String to use to separate each column. Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--shared\fP
+.br
+Report/display shared VGs that would otherwise be skipped when
+lvmlockd is not being used on the host.
+See lvmlockd(8) for more information about shared VGs.
+.ad b
+
+.HP
+.ad l
+\fB-O\fP|\fB--sort\fP \fIString\fP
+.br
+Comma-separated ordered list of columns to sort by. Replaces the default
+selection. Precede any column with \fB-\fP for a reverse sort on that column.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--trustcache\fP
+.br
+Avoids certain device scanning during command processing. Do not use.
+.ad b
+
+.HP
+.ad l
+\fB--unbuffered\fP
+.br
+Produce output immediately without sorting or aligning the columns properly.
+.ad b
+
+.HP
+.ad l
+\fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP
+.br
+All sizes are output in these units:
+human-(r)eadable with '<' rounding indicator,
+(h)uman-readable, (b)ytes, (s)ectors, (k)ilobytes, (m)egabytes,
+(g)igabytes, (t)erabytes, (p)etabytes, (e)xabytes.
+Capitalise to use multiples of 1000 (S.I.) instead of 1024.
+Custom units can be specified, e.g. --units 3M.
+.ad b
+
+.HP
+.ad l
+\fB--unquoted\fP
+.br
+When used with --nameprefixes, output values in the field=value
+pairs are not quoted.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH NOTES
+.
+The lv_attr bits are:
+.IP 1 3
+Volume type: (C)ache, (m)irrored, (M)irrored without initial sync, (o)rigin,
+(O)rigin with merging snapshot, (r)aid, (R)aid without initial sync,
+(s)napshot, merging (S)napshot, (p)vmove, (v)irtual,
+mirror or raid (i)mage, mirror or raid (I)mage out-of-sync, mirror (l)og device,
+under (c)onversion, thin (V)olume, (t)hin pool, (T)hin pool data, raid or
+pool m(e)tadata or pool metadata spare.
+.IP 2 3
+Permissions: (w)riteable, (r)ead-only, (R)ead-only activation of non-read-only
+volume
+.IP 3 3
+Allocation policy: (a)nywhere, (c)ontiguous, (i)nherited, c(l)ing, (n)ormal
+This is capitalised if the volume is currently locked against allocation
+changes, for example during
+.BR pvmove (8).
+.IP 4 3
+fixed (m)inor
+.IP 5 3
+State: (a)ctive, (h)istorical, (s)uspended, (I)nvalid snapshot,
+invalid (S)uspended snapshot, snapshot (m)erge failed,
+suspended snapshot (M)erge failed, mapped (d)evice present without tables,
+mapped device present with (i)nactive table, thin-pool (c)heck needed,
+suspended thin-pool (C)heck needed, (X) unknown
+.IP 6 3
+device (o)pen, (X) unknown
+.IP 7 3
+Target type: (C)ache, (m)irror, (r)aid, (s)napshot, (t)hin, (u)nknown, (v)irtual.
+This groups logical volumes related to the same kernel target together. So,
+for example, mirror images, mirror logs as well as mirrors themselves appear as
+(m) if they use the original device-mapper mirror kernel driver; whereas the raid
+equivalents using the md raid kernel driver all appear as (r).
+Snapshots using the original device-mapper driver appear as (s); whereas
+snapshots of thin volumes using the new thin provisioning driver appear as (t).
+.IP 8 3
+Newly-allocated data blocks are overwritten with blocks of (z)eroes before use.
+.IP 9 3
+Volume Health, where there are currently three groups of attributes identified:
+.IP
+Common ones for all Logical Volumes: (p)artial, (X) unknown.
+.br
+(p)artial signifies that one or more of the Physical Volumes this Logical
+Volume uses is missing from the system. (X) unknown signifies the status
+is unknown.
+.IP
+Related to RAID Logical Volumes: (r)efresh needed, (m)ismatches exist, (w)ritemostly.
+.br
+(r)efresh signifies that one or more of the Physical Volumes this RAID Logical
+Volume uses had suffered a write error. The write error could be due to a
+temporary failure of that Physical Volume or an indication that it is failing.
+The device should be refreshed or replaced. (m)ismatches signifies that the
+RAID logical volume has portions of the array that are not coherent.
+Inconsistencies are detected by initiating a "check" on a RAID logical volume.
+(The scrubbing operations, "check" and "repair", can be performed on a RAID
+logical volume via the 'lvchange' command.) (w)ritemostly signifies the
+devices in a RAID 1 logical volume that have been marked write-mostly.
+(R)emove after reshape signifies freed striped raid images to be removed.
+.IP
+Related to Thin pool Logical Volumes: (F)ailed, out of (D)ata space,
+(M)etadata read only.
+.br
+(F)ailed is set if thin pool encounters serious failures and hence no further I/O
+is permitted at all. The out of (D)ata space is set if thin pool has run out of
+data space. (M)etadata read only signifies that thin pool encounters certain
+types of failures but it's still possible to do reads at least,
+but no metadata changes are allowed.
+.IP
+Related to Thin Logical Volumes: (F)ailed.
+.br
+(F)ailed is set when related thin pool enters Failed state and no further I/O
+is permitted at all.
+.IP 10 3
+s(k)ip activation: this volume is flagged to be skipped during activation.
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/lvscan.8.des b/man/lvscan.8_des
index e30eb58de..e30eb58de 100644
--- a/man/lvscan.8.des
+++ b/man/lvscan.8_des
diff --git a/man/lvscan.8_end b/man/lvscan.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/lvscan.8_end
diff --git a/man/lvscan.8_pregen b/man/lvscan.8_pregen
new file mode 100644
index 000000000..421b6c592
--- /dev/null
+++ b/man/lvscan.8_pregen
@@ -0,0 +1,399 @@
+.TH LVSCAN 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+lvscan \- List all logical volumes in all volume groups
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBlvscan\fP \fIoption_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+lvscan scans all VGs or all supported LVM block devices in the system for
+LVs. The output consists of one line for each LV indicating whether or not
+it is active, a snapshot or origin, the size of the device and its
+allocation policy. Use \fBlvs\fP(8) or \fBlvdisplay\fP(8) to obtain more
+comprehensive information about LVs.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBlvscan\fP
+.br
+.RS 4
+.ad l
+[ \fB-a\fP|\fB--all\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+\fBlvscan\fP \fB--cache\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fILV\fP ... ]
+.RE
+
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-b\fP|\fB--blockdevice\fP ]
+.ad b
+.br
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+Show information about internal LVs.
+These are components of normal LVs, such as mirrors,
+which are not independently accessible, e.g. not mountable.
+.ad b
+
+.HP
+.ad l
+\fB-b\fP|\fB--blockdevice\fP
+.br
+No longer used.
+.ad b
+
+.HP
+.ad l
+\fB--cache\fP
+.br
+Scan the devices used by an LV and send the metadata to lvmetad.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/pvchange.8.des b/man/pvchange.8_des
index 802850fa1..802850fa1 100644
--- a/man/pvchange.8.des
+++ b/man/pvchange.8_des
diff --git a/man/pvchange.8.end b/man/pvchange.8_end
index a524d071d..a524d071d 100644
--- a/man/pvchange.8.end
+++ b/man/pvchange.8_end
diff --git a/man/pvchange.8_pregen b/man/pvchange.8_pregen
new file mode 100644
index 000000000..1b72672f1
--- /dev/null
+++ b/man/pvchange.8_pregen
@@ -0,0 +1,487 @@
+.TH PVCHANGE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+pvchange \- Change attributes of physical volume(s)
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBpvchange\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+pvchange changes PV attributes in the VG.
+
+.P
+.SH USAGE
+.br
+.P
+.
+Change properties of all PVs.
+.br
+.P
+\fBpvchange\fP
+.RS 4
+( \fB-x\fP|\fB--allocatable\fP \fBy\fP|\fBn\fP,
+.ad b
+.br
+.ad l
+ \fB-u\fP|\fB--uuid\fP,
+.ad b
+.br
+.ad l
+ \fB-a\fP|\fB--all\fP,
+.ad b
+.br
+.ad l
+ \fB--addtag\fP \fITag\fP,
+.ad b
+.br
+.ad l
+ \fB--deltag\fP \fITag\fP,
+.ad b
+.br
+.ad l
+ \fB--metadataignore\fP \fBy\fP|\fBn\fP )
+.RE
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Change properties of specified PVs.
+.br
+.P
+\fBpvchange\fP
+.RS 4
+( \fB-x\fP|\fB--allocatable\fP \fBy\fP|\fBn\fP,
+.ad b
+.br
+.ad l
+ \fB-u\fP|\fB--uuid\fP,
+.ad b
+.br
+.ad l
+ \fB--addtag\fP \fITag\fP,
+.ad b
+.br
+.ad l
+ \fB--deltag\fP \fITag\fP,
+.ad b
+.br
+.ad l
+ \fB--metadataignore\fP \fBy\fP|\fBn\fP )
+.RE
+.RS 4
+ \fIPV\fP|\fISelect\fP ...
+.RE
+.br
+.RS 4
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-u\fP|\fB--uuid\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--addtag\fP \fITag\fP
+.br
+Adds a tag to a PV, VG or LV. This option can be repeated to add
+multiple tags at once. See lvm(8) for information about tags.
+.ad b
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+.ad b
+
+.HP
+.ad l
+\fB-x\fP|\fB--allocatable\fP \fBy\fP|\fBn\fP
+.br
+Enable or disable allocation of physical extents on this PV.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--deltag\fP \fITag\fP
+.br
+Deletes a tag from a PV, VG or LV. This option can be repeated to delete
+multiple tags at once. See lvm(8) for information about tags.
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--metadataignore\fP \fBy\fP|\fBn\fP
+.br
+Specifies the metadataignore property of a PV.
+If yes, metadata areas on the PV are ignored, and lvm will
+not store metadata in the metadata areas of the PV.
+If no, lvm will store metadata on the PV.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-u\fP|\fB--uuid\fP
+.br
+Generate new random UUID for specified PVs.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fISelect\fP
+.br
+Select indicates that a required positional parameter can
+be omitted if the \fB--select\fP option is used.
+No arg appears in this position.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Disallow the allocation of physical extents on a PV (e.g. because of
+disk errors, or because it will be removed after freeing it).
+.br
+.B pvchange \-x n /dev/sdk1
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/pvck.8.des b/man/pvck.8_des
index 0a3265789..0a3265789 100644
--- a/man/pvck.8.des
+++ b/man/pvck.8_des
diff --git a/man/pvck.8.end b/man/pvck.8_end
index 67af2389a..67af2389a 100644
--- a/man/pvck.8.end
+++ b/man/pvck.8_end
diff --git a/man/pvck.8_pregen b/man/pvck.8_pregen
new file mode 100644
index 000000000..a42095341
--- /dev/null
+++ b/man/pvck.8_pregen
@@ -0,0 +1,311 @@
+.TH PVCK 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+pvck \- Check the consistency of physical volume(s)
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBpvck\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+pvck checks the LVM metadata for consistency on PVs.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBpvck\fP \fIPV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB--labelsector\fP \fINumber\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--labelsector\fP \fINumber\fP
+.br
+By default the PV is labelled with an LVM2 identifier in its second
+sector (sector 1). This lets you use a different sector near the
+start of the disk (between 0 and 3 inclusive - see LABEL_SCAN_SECTORS
+in the source). Use with care.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+If the partition table is corrupted or lost on /dev/sda, and you suspect
+there was an LVM partition at approximately 100 MiB, then this
+area of the disk can be scanned using the \fB\-\-labelsector\fP
+parameter with a value of 204800 (100 * 1024 * 1024 / 512 = 204800).
+.br
+.B pvck \-\-labelsector 204800 /dev/sda
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/pvcreate.8.des b/man/pvcreate.8_des
index 1b00e9e2c..1b00e9e2c 100644
--- a/man/pvcreate.8.des
+++ b/man/pvcreate.8_des
diff --git a/man/pvcreate.8.end b/man/pvcreate.8_end
index b1b0f3e53..b1b0f3e53 100644
--- a/man/pvcreate.8.end
+++ b/man/pvcreate.8_end
diff --git a/man/pvcreate.8_pregen b/man/pvcreate.8_pregen
new file mode 100644
index 000000000..0cf7549c5
--- /dev/null
+++ b/man/pvcreate.8_pregen
@@ -0,0 +1,539 @@
+.TH PVCREATE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+pvcreate \- Initialize physical volume(s) for use by LVM
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBpvcreate\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+pvcreate initializes a PV so that it is recognized as belonging to LVM,
+and allows the PV to be used in a VG. A PV can be a disk partition, whole
+disk, meta device, or loopback file.
+
+For DOS disk partitions, the partition id should be set to 0x8e using
+.BR fdisk (8),
+.BR cfdisk (8),
+or a equivalent. For GUID Partition Table (GPT), the id is
+E6D6D379-F507-44C2-A23C-238F2A3DF928. For
+whole disk devices only
+the partition table must be erased, which will effectively destroy all
+data on that disk. This can be done by zeroing the first sector with:
+
+.BI "dd if=/dev/zero of=" PhysicalVolume " bs=512 count=1"
+
+Use \fBvgcreate\fP(8) to create a new VG on the PV, or \fBvgextend\fP(8)
+to add the PV to existing VG.
+
+The force option will create a PV without confirmation. Repeating the
+force option (\fB-ff\fP) will forcibly create a PV, overriding checks that
+normally prevent it, e.g. if the PV is already in a VG.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBpvcreate\fP \fIPV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ]
+.ad b
+.br
+.ad l
+[ \fB-u\fP|\fB--uuid\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--dataalignment\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--dataalignmentoffset\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--bootloaderareasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--labelsector\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--[pv]metadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--metadataignore\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--norestorefile\fP ]
+.ad b
+.br
+.ad l
+[ \fB--setphysicalvolumesize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--restorefile\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--bootloaderareasize\fP \fISize\fP[m|UNIT]
+.br
+Create a separate bootloader area of specified size besides PV's data
+area. The bootloader area is an area of reserved space on the PV from
+which LVM will not allocate any extents and it's kept untouched. This is
+primarily aimed for use with bootloaders to embed their own data or metadata.
+The start of the bootloader area is always aligned, see also --dataalignment
+and --dataalignmentoffset. The bootloader area size may eventually
+end up increased due to the alignment, but it's never less than the
+size that is requested. To see the bootloader area start and size of
+an existing PV use pvs -o +pv_ba_start,pv_ba_size.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--dataalignment\fP \fISize\fP[k|UNIT]
+.br
+Align the start of the data to a multiple of this number.
+Also specify an appropriate Physical Extent size when creating a VG.
+To see the location of the first Physical Extent of an existing PV,
+use pvs -o +pe_start. In addition, it may be shifted by an alignment offset.
+See lvm.conf/data_alignment_offset_detection and --dataalignmentoffset.
+.ad b
+
+.HP
+.ad l
+\fB--dataalignmentoffset\fP \fISize\fP[k|UNIT]
+.br
+Shift the start of the data area by this additional offset.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--labelsector\fP \fINumber\fP
+.br
+By default the PV is labelled with an LVM2 identifier in its second
+sector (sector 1). This lets you use a different sector near the
+start of the disk (between 0 and 3 inclusive - see LABEL_SCAN_SECTORS
+in the source). Use with care.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--metadataignore\fP \fBy\fP|\fBn\fP
+.br
+Specifies the metadataignore property of a PV.
+If yes, metadata areas on the PV are ignored, and lvm will
+not store metadata in the metadata areas of the PV.
+If no, lvm will store metadata on the PV.
+.ad b
+
+.HP
+.ad l
+\fB--metadatasize\fP \fISize\fP[m|UNIT]
+.br
+The approximate amount of space used for each VG metadata area.
+The size may be rounded.
+.ad b
+
+.HP
+.ad l
+\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP
+.br
+Specifies the type of on-disk metadata to use.
+\fBlvm2\fP (or just \fB2\fP) is the current, standard format.
+\fBlvm1\fP (or just \fB1\fP) is a historical format that
+can be used for accessing old data.
+.ad b
+
+.HP
+.ad l
+\fB--norestorefile\fP
+.br
+In conjunction with --uuid, this allows a uuid to be specified
+without also requiring that a backup of the metadata be provided.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB--[pv]metadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP
+.br
+The number of metadata areas to set aside on a PV for storing VG metadata.
+When 2, one copy of the VG metadata is stored at the front of the PV
+and a second copy is stored at the end.
+When 1, one copy of the VG metadata is stored at the front of the PV
+(starting in the 5th sector).
+When 0, no copies of the VG metadata are stored on the given PV.
+This may be useful in VGs containing many PVs (this places limitations
+on the ability to use vgsplit later.)
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--restorefile\fP \fIString\fP
+.br
+In conjunction with --uuid, this reads the file (produced by
+vgcfgbackup), extracts the location and size of the data on the PV,
+and ensures that the metadata produced by the program is consistent
+with the contents of the file, i.e. the physical extents will be in
+the same place and not be overwritten by new metadata. This provides
+a mechanism to upgrade the metadata format or to add/remove metadata
+areas. Use with care.
+.ad b
+
+.HP
+.ad l
+\fB--setphysicalvolumesize\fP \fISize\fP[m|UNIT]
+.br
+Overrides the automatically detected size of the PV.
+Use with care, or prior to reducing the physical size of the device.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-u\fP|\fB--uuid\fP \fIString\fP
+.br
+Specify a UUID for the device.
+Without this option, a random UUID is generated.
+This option is needed before restoring a backup of LVM metadata
+onto a replacement device; see vgcfgrestore(8). As such, use of
+--restorefile is compulsory unless the --norestorefile is used.
+All PVs must have unique UUIDs, and LVM will prevent certain operations
+if multiple devices are seen with the same UUID.
+See vgimportclone(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+
+.HP
+.ad l
+\fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP
+.br
+Controls if the first 4 sectors (2048 bytes) of the device are wiped.
+The default is to wipe these sectors unless either or both of
+--restorefile or --uuid are specified.
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Initialize a partition and a full device.
+.br
+.B pvcreate /dev/sdc4 /dev/sde
+
+If a device is a 4KiB sector drive that compensates for windows
+partitioning (sector 7 is the lowest aligned logical block, the 4KiB
+sectors start at LBA -1, and consequently sector 63 is aligned on a 4KiB
+boundary) manually account for this when initializing for use by LVM.
+.br
+.B pvcreate \-\-dataalignmentoffset 7s /dev/sdb
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/pvdisplay.8.des b/man/pvdisplay.8_des
index 74d57ca78..74d57ca78 100644
--- a/man/pvdisplay.8.des
+++ b/man/pvdisplay.8_des
diff --git a/man/pvdisplay.8_end b/man/pvdisplay.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/pvdisplay.8_end
diff --git a/man/pvdisplay.8_pregen b/man/pvdisplay.8_pregen
new file mode 100644
index 000000000..9e793b989
--- /dev/null
+++ b/man/pvdisplay.8_pregen
@@ -0,0 +1,610 @@
+.TH PVDISPLAY 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+pvdisplay \- Display various attributes of physical volume(s)
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBpvdisplay\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+pvdisplay shows the attributes of PVs, like size, physical extent size,
+space used for the VG descriptor area, etc.
+
+\fBpvs\fP(8) is a preferred alternative that shows the same information
+and more, using a more compact and configurable output format.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBpvdisplay\fP
+.br
+.RS 4
+.ad l
+[ \fB-a\fP|\fB--all\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--colon\fP ]
+.ad b
+.br
+.ad l
+[ \fB-C\fP|\fB--columns\fP ]
+.ad b
+.br
+.ad l
+[ \fB-m\fP|\fB--maps\fP ]
+.ad b
+.br
+.ad l
+[ \fB-o\fP|\fB--options\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-s\fP|\fB--short\fP ]
+.ad b
+.br
+.ad l
+[ \fB-O\fP|\fB--sort\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--aligned\fP ]
+.ad b
+.br
+.ad l
+[ \fB--binary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP ]
+.ad b
+.br
+.ad l
+[ \fB--foreign\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--logonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noheadings\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosuffix\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--separator\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--shared\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unbuffered\fP ]
+.ad b
+.br
+.ad l
+[ \fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP|\fITag\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--aligned\fP
+.br
+Use with --separator to align the output columns
+.ad b
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+Show information about devices that have not been initialized
+by LVM, i.e. they are not PVs.
+.ad b
+
+.HP
+.ad l
+\fB--binary\fP
+.br
+Use binary values "0" or "1" instead of descriptive literal values
+for columns that have exactly two valid values to report (not counting
+the "unknown" value which denotes that the value could not be determined).
+.ad b
+
+.HP
+.ad l
+\fB-c\fP|\fB--colon\fP
+.br
+Generate colon separated output for easier parsing in scripts or programs.
+Also see vgs(8) which provides considerably more control over the output.
+.ad b
+
+.HP
+.ad l
+\fB-C\fP|\fB--columns\fP
+.br
+Display output in columns, the equivalent of vgs(8).
+Options listed are the same as options given in vgs(8).
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--foreign\fP
+.br
+Report/display foreign VGs that would otherwise be skipped.
+See lvmsystemid(7) for more information about foreign VGs.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--logonly\fP
+.br
+Suppress command report and display only log report.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-m\fP|\fB--maps\fP
+.br
+Display the mapping of physical extents to LVs and logical extents.
+.ad b
+
+.HP
+.ad l
+\fB--noheadings\fP
+.br
+Suppress the headings line that is normally the first line of output.
+Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--nosuffix\fP
+.br
+Suppress the suffix on output sizes. Use with --units
+(except h and H) if processing the output.
+.ad b
+
+.HP
+.ad l
+\fB-o\fP|\fB--options\fP \fIString\fP
+.br
+Comma-separated, ordered list of fields to display in columns.
+String arg syntax is: [+|-|#]Field1[,Field2 ...]
+The prefix \fB+\fP will append the specified fields to the default fields,
+\fB-\fP will remove the specified fields from the default fields, and
+\fB#\fP will compact specified fields (removing them when empty for all rows.)
+Use \fB-o help\fP to view the list of all available fields.
+The -o option can be repeated, providing several lists.
+These lists are evaluated from left to right.
+Use field name \fBlv_all\fP to view all LV fields,
+\fBvg_all\fP all VG fields,
+\fBpv_all\fP all PV fields,
+\fBpvseg_all\fP all PV segment fields,
+\fBseg_all\fP all LV segment fields, and
+\fBpvseg_all\fP all PV segment columns.
+See the lvm.conf report section for more config options.
+See lvmreport(7) for more information about reporting.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB--separator\fP \fIString\fP
+.br
+String to use to separate each column. Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--shared\fP
+.br
+Report/display shared VGs that would otherwise be skipped when
+lvmlockd is not being used on the host.
+See lvmlockd(8) for more information about shared VGs.
+.ad b
+
+.HP
+.ad l
+\fB-s\fP|\fB--short\fP
+.br
+Only display the size of the given PVs.
+.ad b
+
+.HP
+.ad l
+\fB-O\fP|\fB--sort\fP \fIString\fP
+.br
+Comma-separated ordered list of columns to sort by. Replaces the default
+selection. Precede any column with \fB-\fP for a reverse sort on that column.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--unbuffered\fP
+.br
+Produce output immediately without sorting or aligning the columns properly.
+.ad b
+
+.HP
+.ad l
+\fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP
+.br
+All sizes are output in these units:
+human-(r)eadable with '<' rounding indicator,
+(h)uman-readable, (b)ytes, (s)ectors, (k)ilobytes, (m)egabytes,
+(g)igabytes, (t)erabytes, (p)etabytes, (e)xabytes.
+Capitalise to use multiples of 1000 (S.I.) instead of 1024.
+Custom units can be specified, e.g. --units 3M.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/pvmove.8.des b/man/pvmove.8_des
index c003c5edd..c003c5edd 100644
--- a/man/pvmove.8.des
+++ b/man/pvmove.8_des
diff --git a/man/pvmove.8.end b/man/pvmove.8_end
index 906606d1a..906606d1a 100644
--- a/man/pvmove.8.end
+++ b/man/pvmove.8_end
diff --git a/man/pvmove.8_pregen b/man/pvmove.8_pregen
new file mode 100644
index 000000000..b4ce27ef6
--- /dev/null
+++ b/man/pvmove.8_pregen
@@ -0,0 +1,551 @@
+.TH PVMOVE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+pvmove \- Move extents from one physical volume to another
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBpvmove\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+pvmove moves the allocated physical extents (PEs) on a source PV to one or
+more destination PVs. You can optionally specify a source LV in which
+case only extents used by that LV will be moved to free (or specified)
+extents on the destination PV. If no destination PV is specified, the
+normal allocation rules for the VG are used.
+
+If pvmove is interrupted for any reason (e.g. the machine crashes) then
+run pvmove again without any PV arguments to restart any operations that
+were in progress from the last checkpoint. Alternatively, use the abort
+option at any time to abort the operation. The resulting location of LVs
+after an abort depends on whether the atomic option was used.
+
+More than one pvmove can run concurrently if they are moving data from
+different source PVs, but additional pvmoves will ignore any LVs already
+in the process of being changed, so some data might not get moved.
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+Move PV extents.
+.br
+.P
+\fBpvmove\fP \fIPV\fP
+.br
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-n\fP|\fB--name\fP \fILV\fP ]
+.ad b
+.br
+.ad l
+[ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--atomic\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP ... ]
+.RE
+
+
+Continue or abort existing pvmove operations.
+.br
+.P
+\fBpvmove\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-b\fP|\fB--background\fP ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--interval\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--abort\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--abort\fP
+.br
+Abort any pvmove operations in progress. If a pvmove was started
+with the --atomic option, then all LVs will remain on the source PV.
+Otherwise, segments that have been moved will remain on the
+destination PV, while unmoved segments will remain on the source PV.
+.ad b
+
+.HP
+.ad l
+\fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.br
+Determines the allocation policy when a command needs to allocate
+Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
+which can be changed with vgchange/lvchange, or overriden on the
+command line.
+\fBnormal\fP applies common sense rules such as not placing parallel stripes
+on the same PV.
+\fBinherit\fP applies the VG policy to an LV.
+\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
+\fBcling\fP places new PEs on the same PV as existing PEs in the same
+stripe of the LV.
+If there are sufficient PEs for an allocation, but normal does not
+use them, \fBanywhere\fP will use them even if it reduces performance,
+e.g. by placing two stripes on the same PV.
+Optional positional PV args on the command line can also be used to limit
+which PVs the command will use for allocation.
+See \fBlvm\fP(8) for more information about allocation.
+.ad b
+
+.HP
+.ad l
+\fB--atomic\fP
+.br
+Makes a pvmove operation atomic, ensuring that all affected LVs are
+moved to the destination PV, or none are if the operation is aborted.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-b\fP|\fB--background\fP
+.br
+If the operation requires polling, this option causes the command to
+return before the operation is complete, and polling is done in the
+background.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-i\fP|\fB--interval\fP \fINumber\fP
+.br
+Report progress at regular intervals.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-n\fP|\fB--name\fP \fIString\fP
+.br
+Move only the extents belonging to the named LV.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH NOTES
+
+pvmove works as follows:
+
+1. A temporary 'pvmove' LV is created to store details of all the data
+movements required.
+
+2. Every LV in the VG is searched for contiguous data that need moving
+according to the command line arguments.
+For each piece of data found, a new segment is added to the end of the
+pvmove LV.
+This segment takes the form of a temporary mirror to copy the data
+from the original location to a newly allocated location.
+The original LV is updated to use the new temporary mirror segment
+in the pvmove LV instead of accessing the data directly.
+
+3. The VG metadata is updated on disk.
+
+4. The first segment of the pvmove LV is activated and starts to mirror
+the first part of the data. Only one segment is mirrored at once as this
+is usually more efficient.
+
+5. A daemon repeatedly checks progress at the specified time interval.
+When it detects that the first temporary mirror is in sync, it breaks that
+mirror so that only the new location for that data gets used and writes a
+checkpoint into the VG metadata on disk. Then it activates the mirror for
+the next segment of the pvmove LV.
+
+6. When there are no more segments left to be mirrored, the temporary LV
+is removed and the VG metadata is updated so that the LVs reflect the new
+data locations.
+
+Note that this new process cannot support the original LVM1
+type of on-disk metadata. Metadata can be converted using
+\fBvgconvert\fP(8).
+
+If the \fB\-\-atomic\fP option is used, a slightly different approach is
+used for the move. Again, a temporary 'pvmove' LV is created to store the
+details of all the data movements required. This temporary LV contains
+all the segments of the various LVs that need to be moved. However, in
+this case, an identical LV is allocated that contains the same number of
+segments and a mirror is created to copy the contents from the first
+temporary LV to the second. After a complete copy is made, the temporary
+LVs are removed, leaving behind the segments on the destination PV. If an
+abort is issued during the move, all LVs being moved will remain on the
+source PV.
+
+.SH EXAMPLES
+
+Move all physical extents that are used by simple LVs on the specified PV to
+free physical extents elsewhere in the VG.
+.br
+.B pvmove /dev/sdb1
+
+Use a specific destination PV when moving physical extents.
+.br
+.B pvmove /dev/sdb1 /dev/sdc1
+
+Move extents belonging to a single LV.
+.br
+.B pvmove \-n lvol1 /dev/sdb1 /dev/sdc1
+
+Rather than moving the contents of an entire device, it is possible to
+move a range of physical extents, for example numbers 1000 to 1999
+inclusive on the specified PV.
+.br
+.B pvmove /dev/sdb1:1000\-1999
+
+A range of physical extents to move can be specified as start+length. For
+example, starting from PE 1000. (Counting starts from 0, so this refers to the
+1001st to the 2000th PE inclusive.)
+.br
+.B pvmove /dev/sdb1:1000+1000
+
+Move a range of physical extents to a specific PV (which must have
+sufficient free extents).
+.br
+.B pvmove /dev/sdb1:1000\-1999 /dev/sdc1
+
+Move a range of physical extents to specific new extents on a new PV.
+.br
+.B pvmove /dev/sdb1:1000\-1999 /dev/sdc1:0\-999
+
+If the source and destination are on the same disk, the
+\fBanywhere\fP allocation policy is needed.
+.br
+.B pvmove \-\-alloc anywhere /dev/sdb1:1000\-1999 /dev/sdb1:0\-999
+
+The part of a specific LV present within in a range of physical
+extents can also be picked out and moved.
+.br
+.B pvmove \-n lvol1 /dev/sdb1:1000\-1999 /dev/sdc1
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/pvremove.8.des b/man/pvremove.8_des
index cc84148a1..cc84148a1 100644
--- a/man/pvremove.8.des
+++ b/man/pvremove.8_des
diff --git a/man/pvremove.8_end b/man/pvremove.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/pvremove.8_end
diff --git a/man/pvremove.8_pregen b/man/pvremove.8_pregen
new file mode 100644
index 000000000..18873c15a
--- /dev/null
+++ b/man/pvremove.8_pregen
@@ -0,0 +1,323 @@
+.TH PVREMOVE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+pvremove \- Remove LVM label(s) from physical volume(s)
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBpvremove\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+pvremove wipes the label on a device so that LVM will no longer recognise
+it as a PV.
+
+A PV cannot be removed from a VG while it is used by an active LV.
+
+Repeat the force option (\fB-ff\fP) to forcibly remove a PV belonging to
+an existing VG. Normally, \fBvgreduce\fP(8) should be used instead.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBpvremove\fP \fIPV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/pvresize.8.des b/man/pvresize.8_des
index b3cfe631a..b3cfe631a 100644
--- a/man/pvresize.8.des
+++ b/man/pvresize.8_des
diff --git a/man/pvresize.8.end b/man/pvresize.8_end
index 316e408ad..316e408ad 100644
--- a/man/pvresize.8.end
+++ b/man/pvresize.8_end
diff --git a/man/pvresize.8_pregen b/man/pvresize.8_pregen
new file mode 100644
index 000000000..a57abf3bd
--- /dev/null
+++ b/man/pvresize.8_pregen
@@ -0,0 +1,334 @@
+.TH PVRESIZE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+pvresize \- Resize physical volume(s)
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBpvresize\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+pvresize resizes a PV. The PV may already be in a VG and may have active
+LVs allocated on it.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBpvresize\fP \fIPV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB--setphysicalvolumesize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--setphysicalvolumesize\fP \fISize\fP[m|UNIT]
+.br
+Overrides the automatically detected size of the PV.
+Use with care, or prior to reducing the physical size of the device.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH NOTES
+
+pvresize will refuse to shrink a PV if it has allocated extents beyond the
+new end.
+
+.SH EXAMPLES
+
+Expand a PV after enlarging the partition.
+.br
+.B pvresize /dev/sda1
+
+Shrink a PV prior to shrinking the partition (ensure that the PV size is
+appropriate for the intended new partition size).
+.br
+.B pvresize \-\-setphysicalvolumesize 40G /dev/sda1
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/pvs.8.des b/man/pvs.8_des
index 08497cef2..08497cef2 100644
--- a/man/pvs.8.des
+++ b/man/pvs.8_des
diff --git a/man/pvs.8.end b/man/pvs.8_end
index ba36a8bc2..ba36a8bc2 100644
--- a/man/pvs.8.end
+++ b/man/pvs.8_end
diff --git a/man/pvs.8_pregen b/man/pvs.8_pregen
new file mode 100644
index 000000000..5df8c4a25
--- /dev/null
+++ b/man/pvs.8_pregen
@@ -0,0 +1,656 @@
+.TH PVS 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+pvs \- Display information about physical volumes
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBpvs\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+pvs produces formatted output about PVs.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBpvs\fP
+.br
+.RS 4
+.ad l
+[ \fB-a\fP|\fB--all\fP ]
+.ad b
+.br
+.ad l
+[ \fB-o\fP|\fB--options\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-O\fP|\fB--sort\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--segments\fP ]
+.ad b
+.br
+.ad l
+[ \fB--aligned\fP ]
+.ad b
+.br
+.ad l
+[ \fB--binary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP ]
+.ad b
+.br
+.ad l
+[ \fB--foreign\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--logonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nameprefixes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noheadings\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nolocking\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosuffix\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--rows\fP ]
+.ad b
+.br
+.ad l
+[ \fB--separator\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--shared\fP ]
+.ad b
+.br
+.ad l
+[ \fB--trustcache\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unbuffered\fP ]
+.ad b
+.br
+.ad l
+[ \fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unquoted\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIPV\fP|\fITag\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--aligned\fP
+.br
+Use with --separator to align the output columns
+.ad b
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+Show information about devices that have not been initialized
+by LVM, i.e. they are not PVs.
+.ad b
+
+.HP
+.ad l
+\fB--binary\fP
+.br
+Use binary values "0" or "1" instead of descriptive literal values
+for columns that have exactly two valid values to report (not counting
+the "unknown" value which denotes that the value could not be determined).
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--foreign\fP
+.br
+Report/display foreign VGs that would otherwise be skipped.
+See lvmsystemid(7) for more information about foreign VGs.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--logonly\fP
+.br
+Suppress command report and display only log report.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--nameprefixes\fP
+.br
+Add an "LVM2_" prefix plus the field name to the output. Useful
+with --noheadings to produce a list of field=value pairs that can
+be used to set environment variables (for example, in udev rules).
+.ad b
+
+.HP
+.ad l
+\fB--noheadings\fP
+.br
+Suppress the headings line that is normally the first line of output.
+Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--nolocking\fP
+.br
+Disable locking.
+.ad b
+
+.HP
+.ad l
+\fB--nosuffix\fP
+.br
+Suppress the suffix on output sizes. Use with --units
+(except h and H) if processing the output.
+.ad b
+
+.HP
+.ad l
+\fB-o\fP|\fB--options\fP \fIString\fP
+.br
+Comma-separated, ordered list of fields to display in columns.
+String arg syntax is: [+|-|#]Field1[,Field2 ...]
+The prefix \fB+\fP will append the specified fields to the default fields,
+\fB-\fP will remove the specified fields from the default fields, and
+\fB#\fP will compact specified fields (removing them when empty for all rows.)
+Use \fB-o help\fP to view the list of all available fields.
+The -o option can be repeated, providing several lists.
+These lists are evaluated from left to right.
+Use field name \fBlv_all\fP to view all LV fields,
+\fBvg_all\fP all VG fields,
+\fBpv_all\fP all PV fields,
+\fBpvseg_all\fP all PV segment fields,
+\fBseg_all\fP all LV segment fields, and
+\fBpvseg_all\fP all PV segment columns.
+See the lvm.conf report section for more config options.
+See lvmreport(7) for more information about reporting.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--rows\fP
+.br
+Output columns as rows.
+.ad b
+
+.HP
+.ad l
+\fB--segments\fP
+.br
+Produces one line of output for each contiguous allocation of space on each
+PV, showing the start (pvseg_start) and length (pvseg_size) in units of
+physical extents.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB--separator\fP \fIString\fP
+.br
+String to use to separate each column. Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--shared\fP
+.br
+Report/display shared VGs that would otherwise be skipped when
+lvmlockd is not being used on the host.
+See lvmlockd(8) for more information about shared VGs.
+.ad b
+
+.HP
+.ad l
+\fB-O\fP|\fB--sort\fP \fIString\fP
+.br
+Comma-separated ordered list of columns to sort by. Replaces the default
+selection. Precede any column with \fB-\fP for a reverse sort on that column.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--trustcache\fP
+.br
+Avoids certain device scanning during command processing. Do not use.
+.ad b
+
+.HP
+.ad l
+\fB--unbuffered\fP
+.br
+Produce output immediately without sorting or aligning the columns properly.
+.ad b
+
+.HP
+.ad l
+\fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP
+.br
+All sizes are output in these units:
+human-(r)eadable with '<' rounding indicator,
+(h)uman-readable, (b)ytes, (s)ectors, (k)ilobytes, (m)egabytes,
+(g)igabytes, (t)erabytes, (p)etabytes, (e)xabytes.
+Capitalise to use multiples of 1000 (S.I.) instead of 1024.
+Custom units can be specified, e.g. --units 3M.
+.ad b
+
+.HP
+.ad l
+\fB--unquoted\fP
+.br
+When used with --nameprefixes, output values in the field=value
+pairs are not quoted.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH NOTES
+.
+The pv_attr bits are:
+.IP 1 3
+(d)uplicate, (a)llocatable, (u)sed
+.IP 2 3
+e(x)ported
+.IP 3 3
+(m)issing
+
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/pvscan.8.des b/man/pvscan.8_des
index ab8c50cf7..ab8c50cf7 100644
--- a/man/pvscan.8.des
+++ b/man/pvscan.8_des
diff --git a/man/pvscan.8_end b/man/pvscan.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/pvscan.8_end
diff --git a/man/pvscan.8_pregen b/man/pvscan.8_pregen
new file mode 100644
index 000000000..dc64b2156
--- /dev/null
+++ b/man/pvscan.8_pregen
@@ -0,0 +1,542 @@
+.TH PVSCAN 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+pvscan \- List all physical volumes
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBpvscan\fP \fIoption_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+pvscan scans all supported LVM block devices in the system for PVs.
+
+\fBScanning with lvmetad\fP
+
+pvscan operates differently when used with the
+.BR lvmetad (8)
+daemon.
+
+Scanning disks is required to read LVM metadata and identify LVM PVs.
+Once read, lvmetad caches the metadata so that LVM commands can read it
+without repeatedly scanning disks. This is helpful because scanning disks
+is time consuming, and frequent scanning may interfere with the normal
+work of the system and disks.
+
+When lvmetad is not used, LVM commands revert to scanning disks to read
+metadata. Any LVM command that needs metadata will scan disks for it;
+running the pvscan command is not necessary for the sake of other LVM
+commands.
+
+When lvmetad is used, LVM commands avoid scanning disks by reading
+metadata from lvmetad. When new disks appear, they must be scanned so
+their metadata can be cached in lvmetad. This is done by the command
+pvscan \-\-cache, which scans disks and passes the metadata to lvmetad.
+
+The pvscan \-\-cache command is typically run automatically by system
+services when a new device appears. Users do not generally need to run
+this command if the system and lvmetad are running properly.
+
+Many scripts contain unnecessary pvscan (or vgscan) commands for
+historical reasons. To avoid disrupting the system with extraneous disk
+scanning, an ordinary pvscan (without \-\-cache) will simply read metadata
+from lvmetad like other LVM commands. It does not do anything beyond
+displaying the current state of the cache.
+
+.IP \[bu] 2
+When given specific device name arguments, pvscan \-\-cache will only
+read the named devices.
+
+.IP \[bu] 2
+LVM udev rules and systemd services are used to initiate automatic device
+scanning.
+
+.IP \[bu] 2
+To prevent devices from being scanned by pvscan --cache, add them
+to
+.BR lvm.conf (5)
+.B devices/global_filter.
+The devices/filter setting does not
+apply to system level scanning.
+For more information, see:
+.br
+.B lvmconfig --withcomments devices/global_filter
+
+.IP \[bu] 2
+If lvmetad is started or restarted after devices are visible, or
+if the global_filter has changed, then all devices must be rescanned
+for metadata with the command pvscan \-\-cache.
+
+.IP \[bu] 2
+lvmetad does not cache older metadata formats, e.g. lvm1, and will
+be temporarily disabled if they are seen.
+
+.IP \[bu] 2
+To notify lvmetad about a device that is no longer present, the major and
+minor numbers must be given, not the path.
+
+.P
+
+\fBAutomatic activation\fP
+
+When event-driven system services detect a new LVM device, the first step
+is to automatically scan and cache the metadata from the device. This is
+done by pvscan \-\-cache. A second step is to automatically activate LVs
+that are present on the new device. This auto-activation is done by the
+same pvscan \-\-cache command when the option '\-a|\-\-activate ay' is
+included.
+
+Auto-activation of VGs or LVs can be enabled/disabled using:
+.br
+.BR lvm.conf (5)
+.B activation/auto_activation_volume_list
+
+For more information, see:
+.br
+.B lvmconfig --withcomments activation/auto_activation_volume_list
+
+When this setting is undefined, all LVs are auto-activated (when lvm is
+fully integrated with the event-driven system services.)
+
+When a VG or LV is not auto-activated, traditional activation using
+vgchange or lvchange -a|--activate is needed.
+
+.IP \[bu] 2
+pvscan auto-activation can be only done in combination with \-\-cache.
+
+.IP \[bu] 2
+Auto-activation is designated by the "a" argument in '-a|--activate ay'.
+This is meant to distinguish system generated commands from explicit user
+commands, although it can be used in any activation command. Whenever it
+is used, the auto_activation_volume_list is applied.
+
+.IP \[bu] 2
+Auto-activation is not yet supported for LVs that are part of partial or
+clustered volume groups.
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+Display PV information.
+.br
+.P
+\fBpvscan\fP
+.br
+.RS 4
+.ad l
+[ \fB-e\fP|\fB--exported\fP ]
+.ad b
+.br
+.ad l
+[ \fB-n\fP|\fB--novolumegroup\fP ]
+.ad b
+.br
+.ad l
+[ \fB-s\fP|\fB--short\fP ]
+.ad b
+.br
+.ad l
+[ \fB-u\fP|\fB--uuid\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Populate the lvmetad cache by scanning PVs.
+.br
+.P
+\fBpvscan\fP \fB--cache\fP
+.br
+.RS 4
+.ad l
+[ \fB-b\fP|\fB--background\fP ]
+.ad b
+.br
+.ad l
+[ \fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP ]
+.ad b
+.br
+.ad l
+[ \fB-j\fP|\fB--major\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--minor\fP \fINumber\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIString\fP|\fIPV\fP ... ]
+.RE
+
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP
+.br
+.ad b
+
+.HP
+.ad l
+\fB-b\fP|\fB--background\fP
+.br
+If the operation requires polling, this option causes the command to
+return before the operation is complete, and polling is done in the
+background.
+.ad b
+
+.HP
+.ad l
+\fB--cache\fP
+.br
+Scan one or more devices and send the metadata to lvmetad.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-e\fP|\fB--exported\fP
+.br
+Only show PVs belonging to exported VGs.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-j\fP|\fB--major\fP \fINumber\fP
+.br
+The major number of a device.
+.ad b
+
+.HP
+.ad l
+\fB--minor\fP \fINumber\fP
+.br
+The minor number of a device.
+.ad b
+
+.HP
+.ad l
+\fB-n\fP|\fB--novolumegroup\fP
+.br
+Only show PVs not belonging to any VG.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-s\fP|\fB--short\fP
+.br
+Short listing format.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-u\fP|\fB--uuid\fP
+.br
+Show UUIDs in addition to device names.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgcfgbackup.8.des b/man/vgcfgbackup.8_des
index 0720e017f..0720e017f 100644
--- a/man/vgcfgbackup.8.des
+++ b/man/vgcfgbackup.8_des
diff --git a/man/vgcfgbackup.8_end b/man/vgcfgbackup.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgcfgbackup.8_end
diff --git a/man/vgcfgbackup.8_pregen b/man/vgcfgbackup.8_pregen
new file mode 100644
index 000000000..880854094
--- /dev/null
+++ b/man/vgcfgbackup.8_pregen
@@ -0,0 +1,389 @@
+.TH VGCFGBACKUP 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgcfgbackup \- Backup volume group configuration(s)
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgcfgbackup\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgcfgbackup creates back up files containing metadata of VGs.
+If no VGs are named, back up files are created for all VGs.
+See \fBvgcfgrestore\fP for information on using the back up
+files.
+
+In a default installation, each VG is backed up into a separate file
+bearing the name of the VG in the directory \fI/etc/lvm/backup\fP.
+
+To use an alternative back up file, use \fB\-f\fP. In this case, when
+backing up multiple VGs, the file name is treated as a template, with %s
+replaced by the VG name.
+
+NB. This DOES NOT back up the data content of LVs.
+
+It may also be useful to regularly back up the files in
+\fI/etc/lvm\fP.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgcfgbackup\fP
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--file\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB--foreign\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--file\fP \fIString\fP
+.br
+Write the backup to the named file.
+When backing up more than one VG, the file name is
+treated as a template, and %s is replaced by the VG name.
+.ad b
+
+.HP
+.ad l
+\fB--foreign\fP
+.br
+Report/display foreign VGs that would otherwise be skipped.
+See lvmsystemid(7) for more information about foreign VGs.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgcfgrestore.8.des b/man/vgcfgrestore.8_des
index ee3a99e6d..ee3a99e6d 100644
--- a/man/vgcfgrestore.8.des
+++ b/man/vgcfgrestore.8_des
diff --git a/man/vgcfgrestore.8.end b/man/vgcfgrestore.8_end
index 5ac451d74..5ac451d74 100644
--- a/man/vgcfgrestore.8.end
+++ b/man/vgcfgrestore.8_end
diff --git a/man/vgcfgrestore.8_pregen b/man/vgcfgrestore.8_pregen
new file mode 100644
index 000000000..36da54322
--- /dev/null
+++ b/man/vgcfgrestore.8_pregen
@@ -0,0 +1,473 @@
+.TH VGCFGRESTORE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgcfgrestore \- Restore volume group configuration
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgcfgrestore\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.P
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-f\fP|\fB--file\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--force\fP
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB-l\fP|\fB--list\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
+
+.P
+
+.SH DESCRIPTION
+vgcfgrestore restores the metadata of a VG from a text back up file
+produced by \fBvgcfgbackup\fP. This writes VG metadata onto the devices
+specifed in back up file.
+
+A back up file can be specified with \fB\-\-file\fP. If no backup file is
+specified, the most recent one is used. Use \fB\-\-list\fP for a list of
+the available back up and archive files of a VG.
+
+WARNING: When a VG contains thin pools, changes to thin metadata cannot be
+reverted, and data loss may occur if thin metadata has changed. The force
+option is required to restore in this case.
+
+.P
+.SH USAGE
+.br
+.P
+.
+Restore VG metadata from last backup.
+.br
+.P
+\fBvgcfgrestore\fP \fIVG\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Restore VG metadata from specified file.
+.br
+.P
+\fBvgcfgrestore\fP \fB-f\fP|\fB--file\fP \fIString\fP \fIVG\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+List all VG metadata backups.
+.br
+.P
+\fBvgcfgrestore\fP \fB-l\fP|\fB--list\fP \fIVG\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+List one VG metadata backup file.
+.br
+.P
+\fBvgcfgrestore\fP \fB-l\fP|\fB--list\fP \fB-f\fP|\fB--file\fP \fIString\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP ]
+.RE
+
+--
+
+.br
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ]
+.ad b
+.br
+.ad l
+[ \fB--force\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--file\fP \fIString\fP
+.br
+Read metadata backup from the named file.
+Usually this file was created by vgcfgbackup.
+.ad b
+
+.HP
+.ad l
+\fB--force\fP ...
+.br
+Force metadata restore even with thin pool LVs.
+Use with extreme caution. Most changes to thin metadata
+cannot be reverted.
+You may lose data if you restore metadata that does not match the
+thin pool kernel metadata precisely.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--list\fP
+.br
+List metadata backup and archive files pertaining to the VG.
+May be used with --file. Does not restore the VG.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP
+.br
+Specifies the type of on-disk metadata to use.
+\fBlvm2\fP (or just \fB2\fP) is the current, standard format.
+\fBlvm1\fP (or just \fB1\fP) is a historical format that
+can be used for accessing old data.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH NOTES
+
+To replace PVs, \fBvgdisplay \-\-partial \-\-verbose\fP will show the
+UUIDs and sizes of any PVs that are no longer present. If a PV in the VG
+is lost and you wish to substitute another of the same size, use
+\fBpvcreate \-\-restorefile filename \-\-uuid uuid\fP (plus additional
+arguments as appropriate) to initialise it with the same UUID as the
+missing PV. Repeat for all other missing PVs in the VG. Then use
+\fBvgcfgrestore \-\-file filename\fP to restore the VG's metadata.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgchange.8.des b/man/vgchange.8_des
index 6b873d88e..6b873d88e 100644
--- a/man/vgchange.8.des
+++ b/man/vgchange.8_des
diff --git a/man/vgchange.8.end b/man/vgchange.8_end
index a11bdd172..a11bdd172 100644
--- a/man/vgchange.8.end
+++ b/man/vgchange.8_end
diff --git a/man/vgchange.8_pregen b/man/vgchange.8_pregen
new file mode 100644
index 000000000..1494f4eba
--- /dev/null
+++ b/man/vgchange.8_pregen
@@ -0,0 +1,1151 @@
+.TH VGCHANGE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgchange \- Change volume group attributes
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgchange\fP \fIoption_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.P
+.ad l
+ \fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP
+.ad b
+.br
+.ad l
+ \fB--activationmode\fP \fBpartial\fP|\fBdegraded\fP|\fBcomplete\fP
+.ad b
+.br
+.ad l
+ \fB--addtag\fP \fITag\fP
+.ad b
+.br
+.ad l
+ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.ad b
+.br
+.ad l
+ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-c\fP|\fB--clustered\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--deltag\fP \fITag\fP
+.ad b
+.br
+.ad l
+ \fB--detachprofile\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-f\fP|\fB--force\fP
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB-K\fP|\fB--ignoreactivationskip\fP
+.ad b
+.br
+.ad l
+ \fB--ignorelockingfailure\fP
+.ad b
+.br
+.ad l
+ \fB--ignoremonitoring\fP
+.ad b
+.br
+.ad l
+ \fB--ignoreskippedcluster\fP
+.ad b
+.br
+.ad l
+ \fB--lockopt\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--lockstart\fP
+.ad b
+.br
+.ad l
+ \fB--lockstop\fP
+.ad b
+.br
+.ad l
+ \fB--locktype\fP \fBsanlock\fP|\fBdlm\fP|\fBnone\fP
+.ad b
+.br
+.ad l
+ \fB-l\fP|\fB--logicalvolume\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB-p\fP|\fB--maxphysicalvolumes\fP \fINumber\fP
+.ad b
+.br
+.ad l
+ \fB--metadataprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--monitor\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--noudevsync\fP
+.ad b
+.br
+.ad l
+ \fB-P\fP|\fB--partial\fP
+.ad b
+.br
+.ad l
+ \fB-s\fP|\fB--physicalextentsize\fP \fISize\fP[m|UNIT]
+.ad b
+.br
+.ad l
+ \fB--poll\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--pvmetadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB--refresh\fP
+.ad b
+.br
+.ad l
+ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.ad b
+.br
+.ad l
+ \fB-x\fP|\fB--resizeable\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-S\fP|\fB--select\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--sysinit\fP
+.ad b
+.br
+.ad l
+ \fB--systemid\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB-u\fP|\fB--uuid\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB--[vg]metadatacopies\fP \fBall\fP|\fBunmanaged\fP|\fINumber\fP
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
+
+.P
+
+.SH DESCRIPTION
+vgchange changes VG attributes, changes LV activation in the kernel, and
+includes other utilities for VG maintenance.
+
+.P
+.SH USAGE
+.br
+.P
+.
+Change a general VG attribute.
+.br
+For options listed in parentheses, any one is
+.br
+required, after which the others are optional.
+.br
+.P
+\fBvgchange\fP
+.RS 4
+( \fB-l\fP|\fB--logicalvolume\fP \fINumber\fP,
+.ad b
+.br
+.ad l
+ \fB-p\fP|\fB--maxphysicalvolumes\fP \fINumber\fP,
+.ad b
+.br
+.ad l
+ \fB-u\fP|\fB--uuid\fP,
+.ad b
+.br
+.ad l
+ \fB-c\fP|\fB--clustered\fP \fBy\fP|\fBn\fP,
+.ad b
+.br
+.ad l
+ \fB-s\fP|\fB--physicalextentsize\fP \fISize\fP[m|UNIT],
+.ad b
+.br
+.ad l
+ \fB-x\fP|\fB--resizeable\fP \fBy\fP|\fBn\fP,
+.ad b
+.br
+.ad l
+ \fB--addtag\fP \fITag\fP,
+.ad b
+.br
+.ad l
+ \fB--deltag\fP \fITag\fP,
+.ad b
+.br
+.ad l
+ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP,
+.ad b
+.br
+.ad l
+ \fB--pvmetadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP,
+.ad b
+.br
+.ad l
+ \fB--[vg]metadatacopies\fP \fBall\fP|\fBunmanaged\fP|\fINumber\fP,
+.ad b
+.br
+.ad l
+ \fB--systemid\fP \fIString\fP,
+.ad b
+.br
+.ad l
+ \fB--locktype\fP \fBsanlock\fP|\fBdlm\fP|\fBnone\fP,
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP,
+.ad b
+.br
+.ad l
+ \fB--detachprofile\fP,
+.ad b
+.br
+.ad l
+ \fB--metadataprofile\fP \fIString\fP )
+.RE
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP|\fISelect\fP ... ]
+.RE
+
+--
+
+.br
+
+Start or stop monitoring LVs from dmeventd.
+.br
+.P
+\fBvgchange\fP \fB--monitor\fP \fBy\fP|\fBn\fP
+.br
+.RS 4
+.ad l
+[ \fB--sysinit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poll\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP|\fISelect\fP ... ]
+.RE
+
+--
+
+.br
+
+Start or stop processing LV conversions.
+.br
+.P
+\fBvgchange\fP \fB--poll\fP \fBy\fP|\fBn\fP
+.br
+.RS 4
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP|\fISelect\fP ... ]
+.RE
+
+--
+
+.br
+
+Activate or deactivate LVs.
+.br
+.P
+\fBvgchange\fP \fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP
+.br
+.RS 4
+.ad l
+[ \fB-K\fP|\fB--ignoreactivationskip\fP ]
+.ad b
+.br
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB--activationmode\fP \fBpartial\fP|\fBdegraded\fP|\fBcomplete\fP ]
+.ad b
+.br
+.ad l
+[ \fB--sysinit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--monitor\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poll\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP|\fISelect\fP ... ]
+.RE
+
+--
+
+.br
+
+Reactivate LVs using the latest metadata.
+.br
+.P
+\fBvgchange\fP \fB--refresh\fP
+.br
+.RS 4
+.ad l
+[ \fB--sysinit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--monitor\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--poll\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP|\fISelect\fP ... ]
+.RE
+
+--
+
+.br
+
+Start the lockspace of a shared VG in lvmlockd.
+.br
+.P
+\fBvgchange\fP \fB--lockstart\fP
+.br
+.RS 4
+.ad l
+[ \fB--lockopt\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP|\fISelect\fP ... ]
+.RE
+
+--
+
+.br
+
+Stop the lockspace of a shared VG in lvmlockd.
+.br
+.P
+\fBvgchange\fP \fB--lockstop\fP
+.br
+.RS 4
+.ad l
+[ \fB--lockopt\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP|\fISelect\fP ... ]
+.RE
+
+--
+
+.br
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoremonitoring\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-a\fP|\fB--activate\fP \fBy\fP|\fBn\fP|\fBay\fP
+.br
+Change the active state of LVs.
+An active LV can be used through a block device,
+allowing data on the LV to be accessed.
+\fBy\fP makes LVs active, or available.
+\fBn\fP makes LVs inactive, or unavailable.
+The block device for the LV is added or removed from the system
+using device-mapper in the kernel.
+A symbolic link /dev/VGName/LVName pointing to the device node is also added/removed.
+All software and scripts should access the device through the symbolic
+link and present this as the name of the device.
+The location and name of the underlying device node may depend on
+the distribution, configuration (e.g. udev), or release version.
+\fBay\fP specifies autoactivation, in which case an LV is activated
+only if it matches an item in lvm.conf activation/auto_activation_volume_list.
+If the list is not set, all LVs are considered to match, and if
+if the list is set but empty, no LVs match.
+Autoactivation should be used during system boot to make it possible
+to select which LVs should be automatically activated by the system.
+See lvmlockd(8) for more information about activation options \fBey\fP and \fBsy\fP for shared VGs.
+See clvmd(8) for more information about activation options \fBey\fP, \fBsy\fP, \fBly\fP and \fBln\fP for clustered VGs.
+.ad b
+
+.HP
+.ad l
+\fB--activationmode\fP \fBpartial\fP|\fBdegraded\fP|\fBcomplete\fP
+.br
+Determines if LV activation is allowed when PVs are missing,
+e.g. because of a device failure.
+\fBcomplete\fP only allows LVs with no missing PVs to be activated,
+and is the most restrictive mode.
+\fBdegraded\fP allows RAID LVs with missing PVs to be activated.
+(This does not include the "mirror" type, see "raid1" instead.)
+\fBpartial\fP allows any LV with missing PVs to be activated, and
+should only be used for recovery or repair.
+For default, see lvm.conf/activation_mode.
+See \fBlvmraid\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--addtag\fP \fITag\fP
+.br
+Adds a tag to a PV, VG or LV. This option can be repeated to add
+multiple tags at once. See lvm(8) for information about tags.
+.ad b
+
+.HP
+.ad l
+\fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.br
+Determines the allocation policy when a command needs to allocate
+Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
+which can be changed with vgchange/lvchange, or overriden on the
+command line.
+\fBnormal\fP applies common sense rules such as not placing parallel stripes
+on the same PV.
+\fBinherit\fP applies the VG policy to an LV.
+\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
+\fBcling\fP places new PEs on the same PV as existing PEs in the same
+stripe of the LV.
+If there are sufficient PEs for an allocation, but normal does not
+use them, \fBanywhere\fP will use them even if it reduces performance,
+e.g. by placing two stripes on the same PV.
+Optional positional PV args on the command line can also be used to limit
+which PVs the command will use for allocation.
+See \fBlvm\fP(8) for more information about allocation.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-c\fP|\fB--clustered\fP \fBy\fP|\fBn\fP
+.br
+Change the clustered property of a VG using clvmd.
+See clvmd(8) for more information about clustered VGs.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--deltag\fP \fITag\fP
+.br
+Deletes a tag from a PV, VG or LV. This option can be repeated to delete
+multiple tags at once. See lvm(8) for information about tags.
+.ad b
+
+.HP
+.ad l
+\fB--detachprofile\fP
+.br
+Detaches a metadata profile from a VG or LV.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-K\fP|\fB--ignoreactivationskip\fP
+.br
+Ignore the "activation skip" LV flag during activation
+to allow LVs with the flag set to be activated.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--ignoremonitoring\fP
+.br
+Do not interact with dmeventd unless --monitor is specified.
+Do not use this if dmeventd is already monitoring a device.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--lockopt\fP \fIString\fP
+.br
+Used to pass options for special cases to lvmlockd.
+See lvmlockd(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--lockstart\fP
+.br
+Start the lockspace of a shared VG in lvmlockd.
+lvmlockd locks becomes available for the VG, allowing LVM to use the VG.
+See lvmlockd(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--lockstop\fP
+.br
+Stop the lockspace of a shared VG in lvmlockd.
+lvmlockd locks become unavailable for the VG, preventing LVM from using the VG.
+See lvmlockd(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--locktype\fP \fBsanlock\fP|\fBdlm\fP|\fBnone\fP
+.br
+Change the VG lock type to or from a shared lock type used with lvmlockd.
+See lvmlockd(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--logicalvolume\fP \fINumber\fP
+.br
+Sets the maximum number of LVs allowed in a VG.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-p\fP|\fB--maxphysicalvolumes\fP \fINumber\fP
+.br
+Sets the maximum number of PVs that can belong to the VG.
+The value 0 removes any limitation.
+For large numbers of PVs, also see options --pvmetadatacopies,
+and --vgmetadatacopies for improving performance.
+.ad b
+
+.HP
+.ad l
+\fB--metadataprofile\fP \fIString\fP
+.br
+The metadata profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--monitor\fP \fBy\fP|\fBn\fP
+.br
+Start (yes) or stop (no) monitoring an LV with dmeventd.
+dmeventd monitors kernel events for an LV, and performs
+automated maintenance for the LV in reponse to specific events.
+See dmeventd(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB-s\fP|\fB--physicalextentsize\fP \fISize\fP[m|UNIT]
+.br
+Sets the physical extent size of PVs in the VG.
+The value must be either a power of 2 of at least 1 sector
+(where the sector size is the largest sector size of the PVs
+currently used in the VG), or at least 128KiB.
+Once this value has been set, it is difficult to change
+without recreating the VG, unless no extents need moving.
+Before increasing the physical extent size, you might need to use lvresize,
+pvresize and/or pvmove so that everything fits. For example, every
+contiguous range of extents used in a LV must start and end on an extent boundary.
+.ad b
+
+.HP
+.ad l
+\fB--poll\fP \fBy\fP|\fBn\fP
+.br
+When yes, start the background transformation of an LV.
+An incomplete transformation, e.g. pvmove or lvconvert interrupted
+by reboot or crash, can be restarted from the last checkpoint with --poll y.
+When no, background transformation of an LV will not occur, and the
+transformation will not complete. It may not be appropriate to immediately
+poll an LV after activation, in which case --poll n can be used to defer
+polling until a later --poll y command.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB--pvmetadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP
+.br
+The number of metadata areas to set aside on a PV for storing VG metadata.
+When 2, one copy of the VG metadata is stored at the front of the PV
+and a second copy is stored at the end.
+When 1, one copy of the VG metadata is stored at the front of the PV
+(starting in the 5th sector).
+When 0, no copies of the VG metadata are stored on the given PV.
+This may be useful in VGs containing many PVs (this places limitations
+on the ability to use vgsplit later.)
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--refresh\fP
+.br
+If the LV is active, reload its metadata.
+This is not necessary in normal operation, but may be useful
+if something has gone wrong, or if some form of manual LV
+sharing is being used.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-x\fP|\fB--resizeable\fP \fBy\fP|\fBn\fP
+.br
+Enables or disables the addition or removal of PVs to/from a VG
+(by vgextend/vgreduce).
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB--sysinit\fP
+.br
+Indicates that vgchange/lvchange is being invoked from early system initialisation
+scripts (e.g. rc.sysinit or an initrd), before writable filesystems are
+available. As such, some functionality needs to be disabled and this option
+acts as a shortcut which selects an appropriate set of options. Currently,
+this is equivalent to using --ignorelockingfailure, --ignoremonitoring,
+--poll n, and setting env var LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES.
+When used in conjunction with lvmetad enabled and running,
+vgchange/lvchange skip autoactivation, and defer to pvscan autoactivation.
+.ad b
+
+.HP
+.ad l
+\fB--systemid\fP \fIString\fP
+.br
+Changes the system ID of the VG. Using this option requires caution
+because the VG may become foreign to the host running the command,
+leaving the host unable to access it.
+See lvmsystemid(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-u\fP|\fB--uuid\fP
+.br
+Generate new random UUID for specified VGs.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB--[vg]metadatacopies\fP \fBall\fP|\fBunmanaged\fP|\fINumber\fP
+.br
+Number of copies of the VG metadata that are kept.
+VG metadata is kept in VG metadata areas on PVs in the VG,
+i.e. reserved space at the start and/or end of the PVs.
+Keeping a copy of the VG metadata on every PV can reduce performance
+in VGs containing a large number of PVs.
+When this number is set to a non-zero value, LVM will automatically
+choose PVs on which to store metadata, using the metadataignore flags
+on PVs to achieve the specified number.
+The number can also be replaced with special string values:
+\fBunmanaged\fP causes LVM to not automatically manage the PV
+metadataignore flags.
+\fBall\fP causes LVM to first clear the metadataignore flags on
+all PVs, and then to become unmanaged.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fISelect\fP
+.br
+Select indicates that a required positional parameter can
+be omitted if the \fB--select\fP option is used.
+No arg appears in this position.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH NOTES
+
+If vgchange recognizes COW snapshot LVs that were dropped because they ran
+out of space, it displays a message informing the administrator that the
+snapshots should be removed.
+
+.SH EXAMPLES
+
+Activate all LVs in all VGs on all existing devices.
+.br
+.B vgchange \-a y
+
+Change the maximum number of LVs for an inactive VG.
+.br
+.B vgchange \-l 128 vg00
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgck.8.des b/man/vgck.8_des
index 24e1dbe7d..24e1dbe7d 100644
--- a/man/vgck.8.des
+++ b/man/vgck.8_des
diff --git a/man/vgck.8_end b/man/vgck.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgck.8_end
diff --git a/man/vgck.8_pregen b/man/vgck.8_pregen
new file mode 100644
index 000000000..fa0136251
--- /dev/null
+++ b/man/vgck.8_pregen
@@ -0,0 +1,310 @@
+.TH VGCK 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgck \- Check the consistency of volume group(s)
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgck\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgck checks LVM metadata for consistency.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgck\fP
+.br
+.RS 4
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgconvert.8.des b/man/vgconvert.8_des
index 47bc0cc79..47bc0cc79 100644
--- a/man/vgconvert.8.des
+++ b/man/vgconvert.8_des
diff --git a/man/vgconvert.8_end b/man/vgconvert.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgconvert.8_end
diff --git a/man/vgconvert.8_pregen b/man/vgconvert.8_pregen
new file mode 100644
index 000000000..4f89b9e3f
--- /dev/null
+++ b/man/vgconvert.8_pregen
@@ -0,0 +1,394 @@
+.TH VGCONVERT 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgconvert \- Change volume group metadata format
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgconvert\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgconvert converts VG metadata from one format to another. The new
+metadata format must be able to fit into the space provided by the old
+format.
+
+Because the LVM1 format should no longer be used, this command is no
+longer needed in general.
+
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgconvert\fP \fIVG\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ]
+.ad b
+.br
+.ad l
+[ \fB--labelsector\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--bootloaderareasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--pvmetadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--bootloaderareasize\fP \fISize\fP[m|UNIT]
+.br
+Create a separate bootloader area of specified size besides PV's data
+area. The bootloader area is an area of reserved space on the PV from
+which LVM will not allocate any extents and it's kept untouched. This is
+primarily aimed for use with bootloaders to embed their own data or metadata.
+The start of the bootloader area is always aligned, see also --dataalignment
+and --dataalignmentoffset. The bootloader area size may eventually
+end up increased due to the alignment, but it's never less than the
+size that is requested. To see the bootloader area start and size of
+an existing PV use pvs -o +pv_ba_start,pv_ba_size.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--labelsector\fP \fINumber\fP
+.br
+By default the PV is labelled with an LVM2 identifier in its second
+sector (sector 1). This lets you use a different sector near the
+start of the disk (between 0 and 3 inclusive - see LABEL_SCAN_SECTORS
+in the source). Use with care.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--metadatasize\fP \fISize\fP[m|UNIT]
+.br
+The approximate amount of space used for each VG metadata area.
+The size may be rounded.
+.ad b
+
+.HP
+.ad l
+\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP
+.br
+Specifies the type of on-disk metadata to use.
+\fBlvm2\fP (or just \fB2\fP) is the current, standard format.
+\fBlvm1\fP (or just \fB1\fP) is a historical format that
+can be used for accessing old data.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB--pvmetadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP
+.br
+The number of metadata areas to set aside on a PV for storing VG metadata.
+When 2, one copy of the VG metadata is stored at the front of the PV
+and a second copy is stored at the end.
+When 1, one copy of the VG metadata is stored at the front of the PV
+(starting in the 5th sector).
+When 0, no copies of the VG metadata are stored on the given PV.
+This may be useful in VGs containing many PVs (this places limitations
+on the ability to use vgsplit later.)
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgcreate.8.des b/man/vgcreate.8_des
index a2d716169..a2d716169 100644
--- a/man/vgcreate.8.des
+++ b/man/vgcreate.8_des
diff --git a/man/vgcreate.8.end b/man/vgcreate.8_end
index 66bcfbba1..66bcfbba1 100644
--- a/man/vgcreate.8.end
+++ b/man/vgcreate.8_end
diff --git a/man/vgcreate.8_pregen b/man/vgcreate.8_pregen
new file mode 100644
index 000000000..5c733122f
--- /dev/null
+++ b/man/vgcreate.8_pregen
@@ -0,0 +1,626 @@
+.TH VGCREATE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgcreate \- Create a volume group
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgcreate\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgcreate creates a new VG on block devices. If the devices were not
+previously intialized as PVs with \fBpvcreate\fP(8), vgcreate will
+inititialize them, making them PVs. The pvcreate options for initializing
+devices are also available with vgcreate.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgcreate\fP \fIVG\fP\fI_new\fP \fIPV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--clustered\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-l\fP|\fB--maxlogicalvolumes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-p\fP|\fB--maxphysicalvolumes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ]
+.ad b
+.br
+.ad l
+[ \fB-s\fP|\fB--physicalextentsize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--addtag\fP \fITag\fP ]
+.ad b
+.br
+.ad l
+[ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--labelsector\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--pvmetadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+.ad l
+[ \fB--[vg]metadatacopies\fP \fBall\fP|\fBunmanaged\fP|\fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--dataalignment\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--dataalignmentoffset\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--shared\fP ]
+.ad b
+.br
+.ad l
+[ \fB--systemid\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--locktype\fP \fBsanlock\fP|\fBdlm\fP|\fBnone\fP ]
+.ad b
+.br
+.ad l
+[ \fB--lockopt\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--addtag\fP \fITag\fP
+.br
+Adds a tag to a PV, VG or LV. This option can be repeated to add
+multiple tags at once. See lvm(8) for information about tags.
+.ad b
+
+.HP
+.ad l
+\fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.br
+Determines the allocation policy when a command needs to allocate
+Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
+which can be changed with vgchange/lvchange, or overriden on the
+command line.
+\fBnormal\fP applies common sense rules such as not placing parallel stripes
+on the same PV.
+\fBinherit\fP applies the VG policy to an LV.
+\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
+\fBcling\fP places new PEs on the same PV as existing PEs in the same
+stripe of the LV.
+If there are sufficient PEs for an allocation, but normal does not
+use them, \fBanywhere\fP will use them even if it reduces performance,
+e.g. by placing two stripes on the same PV.
+Optional positional PV args on the command line can also be used to limit
+which PVs the command will use for allocation.
+See \fBlvm\fP(8) for more information about allocation.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-c\fP|\fB--clustered\fP \fBy\fP|\fBn\fP
+.br
+Create a clustered VG using clvmd if LVM is compiled with cluster support.
+This allows multiple hosts to share a VG on shared devices.
+clvmd and a lock manager must be configured and running.
+(A clustered VG using clvmd is different from a shared VG using lvmlockd.)
+See clvmd(8) for more information about clustered VGs.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--dataalignment\fP \fISize\fP[k|UNIT]
+.br
+Align the start of the data to a multiple of this number.
+Also specify an appropriate Physical Extent size when creating a VG.
+To see the location of the first Physical Extent of an existing PV,
+use pvs -o +pe_start. In addition, it may be shifted by an alignment offset.
+See lvm.conf/data_alignment_offset_detection and --dataalignmentoffset.
+.ad b
+
+.HP
+.ad l
+\fB--dataalignmentoffset\fP \fISize\fP[k|UNIT]
+.br
+Shift the start of the data area by this additional offset.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--labelsector\fP \fINumber\fP
+.br
+By default the PV is labelled with an LVM2 identifier in its second
+sector (sector 1). This lets you use a different sector near the
+start of the disk (between 0 and 3 inclusive - see LABEL_SCAN_SECTORS
+in the source). Use with care.
+.ad b
+
+.HP
+.ad l
+\fB--lockopt\fP \fIString\fP
+.br
+Used to pass options for special cases to lvmlockd.
+See lvmlockd(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--locktype\fP \fBsanlock\fP|\fBdlm\fP|\fBnone\fP
+.br
+Specify the VG lock type directly in place of using --shared.
+See lvmlockd(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--maxlogicalvolumes\fP \fINumber\fP
+.br
+Sets the maximum number of LVs allowed in a VG.
+.ad b
+
+.HP
+.ad l
+\fB-p\fP|\fB--maxphysicalvolumes\fP \fINumber\fP
+.br
+Sets the maximum number of PVs that can belong to the VG.
+The value 0 removes any limitation.
+For large numbers of PVs, also see options --pvmetadatacopies,
+and --vgmetadatacopies for improving performance.
+.ad b
+
+.HP
+.ad l
+\fB--metadataprofile\fP \fIString\fP
+.br
+The metadata profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--metadatasize\fP \fISize\fP[m|UNIT]
+.br
+The approximate amount of space used for each VG metadata area.
+The size may be rounded.
+.ad b
+
+.HP
+.ad l
+\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP
+.br
+Specifies the type of on-disk metadata to use.
+\fBlvm2\fP (or just \fB2\fP) is the current, standard format.
+\fBlvm1\fP (or just \fB1\fP) is a historical format that
+can be used for accessing old data.
+.ad b
+
+.HP
+.ad l
+\fB-s\fP|\fB--physicalextentsize\fP \fISize\fP[m|UNIT]
+.br
+Sets the physical extent size of PVs in the VG.
+The value must be either a power of 2 of at least 1 sector
+(where the sector size is the largest sector size of the PVs
+currently used in the VG), or at least 128KiB.
+Once this value has been set, it is difficult to change
+without recreating the VG, unless no extents need moving.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB--pvmetadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP
+.br
+The number of metadata areas to set aside on a PV for storing VG metadata.
+When 2, one copy of the VG metadata is stored at the front of the PV
+and a second copy is stored at the end.
+When 1, one copy of the VG metadata is stored at the front of the PV
+(starting in the 5th sector).
+When 0, no copies of the VG metadata are stored on the given PV.
+This may be useful in VGs containing many PVs (this places limitations
+on the ability to use vgsplit later.)
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--shared\fP
+.br
+Create a shared VG using lvmlockd if LVM is compiled with lockd support.
+lvmlockd will select lock type sanlock or dlm depending on which lock
+manager is running. This allows multiple hosts to share a VG on shared
+devices. lvmlockd and a lock manager must be configured and running.
+(A shared VG using lvmlockd is different from a clustered VG using clvmd.)
+See lvmlockd(8) for more information about shared VGs.
+.ad b
+
+.HP
+.ad l
+\fB--systemid\fP \fIString\fP
+.br
+Specifies the system ID that will be given to the new VG, overriding the
+system ID of the host running the command. A VG is normally created
+without this option, in which case the new VG is given the system ID of
+the host creating it. Using this option requires caution because the
+system ID of the new VG may not match the system ID of the host running
+the command, leaving the VG inaccessible to the host.
+See lvmsystemid(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB--[vg]metadatacopies\fP \fBall\fP|\fBunmanaged\fP|\fINumber\fP
+.br
+Number of copies of the VG metadata that are kept.
+VG metadata is kept in VG metadata areas on PVs in the VG,
+i.e. reserved space at the start and/or end of the PVs.
+Keeping a copy of the VG metadata on every PV can reduce performance
+in VGs containing a large number of PVs.
+When this number is set to a non-zero value, LVM will automatically
+choose PVs on which to store metadata, using the metadataignore flags
+on PVs to achieve the specified number.
+The number can also be replaced with special string values:
+\fBunmanaged\fP causes LVM to not automatically manage the PV
+metadataignore flags.
+\fBall\fP causes LVM to first clear the metadataignore flags on
+all PVs, and then to become unmanaged.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+
+.HP
+.ad l
+\fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP
+.br
+Controls if the first 4 sectors (2048 bytes) of the device are wiped.
+The default is to wipe these sectors unless either or both of
+--restorefile or --uuid are specified.
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Create a VG with two PVs, using the default physical extent size.
+.br
+.B vgcreate myvg /dev/sdk1 /dev/sdl1
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgdisplay.8.des b/man/vgdisplay.8_des
index c42f8218b..c42f8218b 100644
--- a/man/vgdisplay.8.des
+++ b/man/vgdisplay.8_des
diff --git a/man/vgdisplay.8_end b/man/vgdisplay.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgdisplay.8_end
diff --git a/man/vgdisplay.8_pregen b/man/vgdisplay.8_pregen
new file mode 100644
index 000000000..352a521b6
--- /dev/null
+++ b/man/vgdisplay.8_pregen
@@ -0,0 +1,606 @@
+.TH VGDISPLAY 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgdisplay \- Display volume group information
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgdisplay\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgdisplay shows the attributes of VGs, and the associated PVs and LVs.
+
+\fBvgs\fP(8) is a preferred alternative that shows the same information
+and more, using a more compact and configurable output format.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgdisplay\fP
+.br
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--activevolumegroups\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--colon\fP ]
+.ad b
+.br
+.ad l
+[ \fB-C\fP|\fB--columns\fP ]
+.ad b
+.br
+.ad l
+[ \fB-o\fP|\fB--options\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-s\fP|\fB--short\fP ]
+.ad b
+.br
+.ad l
+[ \fB-O\fP|\fB--sort\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--aligned\fP ]
+.ad b
+.br
+.ad l
+[ \fB--binary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP ]
+.ad b
+.br
+.ad l
+[ \fB--foreign\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--logonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noheadings\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosuffix\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--shared\fP ]
+.ad b
+.br
+.ad l
+[ \fB--separator\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unbuffered\fP ]
+.ad b
+.br
+.ad l
+[ \fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-A\fP|\fB--activevolumegroups\fP
+.br
+Only select active VGs. The VG is considered active
+if at least one of its LVs is active.
+.ad b
+
+.HP
+.ad l
+\fB--aligned\fP
+.br
+Use with --separator to align the output columns
+.ad b
+
+.HP
+.ad l
+\fB--binary\fP
+.br
+Use binary values "0" or "1" instead of descriptive literal values
+for columns that have exactly two valid values to report (not counting
+the "unknown" value which denotes that the value could not be determined).
+.ad b
+
+.HP
+.ad l
+\fB-c\fP|\fB--colon\fP
+.br
+Generate colon separated output for easier parsing in scripts or programs.
+Also see vgs(8) which provides considerably more control over the output.
+.ad b
+
+.HP
+.ad l
+\fB-C\fP|\fB--columns\fP
+.br
+Display output in columns, the equivalent of vgs(8).
+Options listed are the same as options given in vgs(8).
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--foreign\fP
+.br
+Report/display foreign VGs that would otherwise be skipped.
+See lvmsystemid(7) for more information about foreign VGs.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--logonly\fP
+.br
+Suppress command report and display only log report.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--noheadings\fP
+.br
+Suppress the headings line that is normally the first line of output.
+Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--nosuffix\fP
+.br
+Suppress the suffix on output sizes. Use with --units
+(except h and H) if processing the output.
+.ad b
+
+.HP
+.ad l
+\fB-o\fP|\fB--options\fP \fIString\fP
+.br
+Comma-separated, ordered list of fields to display in columns.
+String arg syntax is: [+|-|#]Field1[,Field2 ...]
+The prefix \fB+\fP will append the specified fields to the default fields,
+\fB-\fP will remove the specified fields from the default fields, and
+\fB#\fP will compact specified fields (removing them when empty for all rows.)
+Use \fB-o help\fP to view the list of all available fields.
+The -o option can be repeated, providing several lists.
+These lists are evaluated from left to right.
+Use field name \fBlv_all\fP to view all LV fields,
+\fBvg_all\fP all VG fields,
+\fBpv_all\fP all PV fields,
+\fBpvseg_all\fP all PV segment fields,
+\fBseg_all\fP all LV segment fields, and
+\fBpvseg_all\fP all PV segment columns.
+See the lvm.conf report section for more config options.
+See lvmreport(7) for more information about reporting.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB--separator\fP \fIString\fP
+.br
+String to use to separate each column. Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--shared\fP
+.br
+Report/display shared VGs that would otherwise be skipped when
+lvmlockd is not being used on the host.
+See lvmlockd(8) for more information about shared VGs.
+.ad b
+
+.HP
+.ad l
+\fB-s\fP|\fB--short\fP
+.br
+Give a short listing showing the existence of VGs.
+.ad b
+
+.HP
+.ad l
+\fB-O\fP|\fB--sort\fP \fIString\fP
+.br
+Comma-separated ordered list of columns to sort by. Replaces the default
+selection. Precede any column with \fB-\fP for a reverse sort on that column.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--unbuffered\fP
+.br
+Produce output immediately without sorting or aligning the columns properly.
+.ad b
+
+.HP
+.ad l
+\fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP
+.br
+All sizes are output in these units:
+human-(r)eadable with '<' rounding indicator,
+(h)uman-readable, (b)ytes, (s)ectors, (k)ilobytes, (m)egabytes,
+(g)igabytes, (t)erabytes, (p)etabytes, (e)xabytes.
+Capitalise to use multiples of 1000 (S.I.) instead of 1024.
+Custom units can be specified, e.g. --units 3M.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgexport.8.des b/man/vgexport.8_des
index f9fa49c9b..f9fa49c9b 100644
--- a/man/vgexport.8.des
+++ b/man/vgexport.8_des
diff --git a/man/vgexport.8_end b/man/vgexport.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgexport.8_end
diff --git a/man/vgexport.8_pregen b/man/vgexport.8_pregen
new file mode 100644
index 000000000..0551c26f7
--- /dev/null
+++ b/man/vgexport.8_pregen
@@ -0,0 +1,363 @@
+.TH VGEXPORT 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgexport \- Unregister volume group(s) from the system
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgexport\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgexport makes inactive VGs unknown to the system. In this state, all the
+PVs in the VG can be moved to a different system, from which
+\fBvgimport\fP can then be run.
+
+Most LVM tools ignore exported VGs.
+
+vgexport clears the VG system ID, and vgimport sets the VG system ID to
+match the host running vgimport (if the host has a system ID).
+
+.P
+.SH USAGE
+.br
+.P
+.
+Export specified VGs.
+.br
+.P
+\fBvgexport\fP \fIVG\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Export all VGs.
+.br
+.P
+\fBvgexport\fP \fB-a\fP|\fB--all\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fISelect\fP
+.br
+Select indicates that a required positional parameter can
+be omitted if the \fB--select\fP option is used.
+No arg appears in this position.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgextend.8.des b/man/vgextend.8_des
index 85fe6fcdf..85fe6fcdf 100644
--- a/man/vgextend.8.des
+++ b/man/vgextend.8_des
diff --git a/man/vgextend.8.end b/man/vgextend.8_end
index e50fcce8d..e50fcce8d 100644
--- a/man/vgextend.8.end
+++ b/man/vgextend.8_end
diff --git a/man/vgextend.8_pregen b/man/vgextend.8_pregen
new file mode 100644
index 000000000..42ef2685b
--- /dev/null
+++ b/man/vgextend.8_pregen
@@ -0,0 +1,473 @@
+.TH VGEXTEND 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgextend \- Add physical volumes to a volume group
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgextend\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgextend adds one or more PVs to a VG. This increases the space available
+for LVs in the VG.
+
+Also, PVs that have gone missing and then returned, e.g. due to a
+transient device failure, can be added back to the VG without
+re-initializing them (see \-\-restoremissing).
+
+If the specified PVs have not yet been initialized with pvcreate, vgextend
+will initialize them. In this case pvcreate options can be used, e.g.
+\-\-labelsector, \-\-metadatasize, \-\-metadataignore,
+\-\-pvmetadatacopies, \-\-dataalignment, \-\-dataalignmentoffset.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgextend\fP \fIVG\fP \fIPV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ]
+.ad b
+.br
+.ad l
+[ \fB--labelsector\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadatasize\fP \fISize\fP[m|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--pvmetadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP ]
+.ad b
+.br
+.ad l
+[ \fB--metadataignore\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--dataalignment\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--dataalignmentoffset\fP \fISize\fP[k|UNIT] ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--restoremissing\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--dataalignment\fP \fISize\fP[k|UNIT]
+.br
+Align the start of the data to a multiple of this number.
+Also specify an appropriate Physical Extent size when creating a VG.
+To see the location of the first Physical Extent of an existing PV,
+use pvs -o +pe_start. In addition, it may be shifted by an alignment offset.
+See lvm.conf/data_alignment_offset_detection and --dataalignmentoffset.
+.ad b
+
+.HP
+.ad l
+\fB--dataalignmentoffset\fP \fISize\fP[k|UNIT]
+.br
+Shift the start of the data area by this additional offset.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--labelsector\fP \fINumber\fP
+.br
+By default the PV is labelled with an LVM2 identifier in its second
+sector (sector 1). This lets you use a different sector near the
+start of the disk (between 0 and 3 inclusive - see LABEL_SCAN_SECTORS
+in the source). Use with care.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--metadataignore\fP \fBy\fP|\fBn\fP
+.br
+Specifies the metadataignore property of a PV.
+If yes, metadata areas on the PV are ignored, and lvm will
+not store metadata in the metadata areas of the PV.
+If no, lvm will store metadata on the PV.
+.ad b
+
+.HP
+.ad l
+\fB--metadatasize\fP \fISize\fP[m|UNIT]
+.br
+The approximate amount of space used for each VG metadata area.
+The size may be rounded.
+.ad b
+
+.HP
+.ad l
+\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP
+.br
+Specifies the type of on-disk metadata to use.
+\fBlvm2\fP (or just \fB2\fP) is the current, standard format.
+\fBlvm1\fP (or just \fB1\fP) is a historical format that
+can be used for accessing old data.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB--pvmetadatacopies\fP \fB0\fP|\fB1\fP|\fB2\fP
+.br
+The number of metadata areas to set aside on a PV for storing VG metadata.
+When 2, one copy of the VG metadata is stored at the front of the PV
+and a second copy is stored at the end.
+When 1, one copy of the VG metadata is stored at the front of the PV
+(starting in the 5th sector).
+When 0, no copies of the VG metadata are stored on the given PV.
+This may be useful in VGs containing many PVs (this places limitations
+on the ability to use vgsplit later.)
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--restoremissing\fP
+.br
+Add a PV back into a VG after the PV was missing and then returned,
+e.g. due to a transient failure. The PV is not reinitialized.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+
+.HP
+.ad l
+\fB-Z\fP|\fB--zero\fP \fBy\fP|\fBn\fP
+.br
+Controls if the first 4 sectors (2048 bytes) of the device are wiped.
+The default is to wipe these sectors unless either or both of
+--restorefile or --uuid are specified.
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Add two PVs to a VG.
+.br
+.B vgextend vg00 /dev/sda4 /dev/sdn1
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgimport.8.des b/man/vgimport.8_des
index 91196b683..91196b683 100644
--- a/man/vgimport.8.des
+++ b/man/vgimport.8_des
diff --git a/man/vgimport.8_end b/man/vgimport.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgimport.8_end
diff --git a/man/vgimport.8_pregen b/man/vgimport.8_pregen
new file mode 100644
index 000000000..e71436f7a
--- /dev/null
+++ b/man/vgimport.8_pregen
@@ -0,0 +1,372 @@
+.TH VGIMPORT 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgimport \- Register exported volume group with system
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgimport\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgimport makes exported VGs known to the system again, perhaps after
+moving the PVs from a different system.
+
+vgexport clears the VG system ID, and vgimport sets the VG system ID to
+match the host running vgimport (if the host has a system ID).
+
+.P
+.SH USAGE
+.br
+.P
+.
+Import specified VGs.
+.br
+.P
+\fBvgimport\fP \fIVG\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Import all VGs.
+.br
+.P
+\fBvgimport\fP \fB-a\fP|\fB--all\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fISelect\fP
+.br
+Select indicates that a required positional parameter can
+be omitted if the \fB--select\fP option is used.
+No arg appears in this position.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgimportclone.8.des b/man/vgimportclone.8_des
index a5002da6d..a5002da6d 100644
--- a/man/vgimportclone.8.des
+++ b/man/vgimportclone.8_des
diff --git a/man/vgimportclone.8.end b/man/vgimportclone.8_end
index 83394b581..83394b581 100644
--- a/man/vgimportclone.8.end
+++ b/man/vgimportclone.8_end
diff --git a/man/vgimportclone.8_pregen b/man/vgimportclone.8_pregen
new file mode 100644
index 000000000..280e2a8c9
--- /dev/null
+++ b/man/vgimportclone.8_pregen
@@ -0,0 +1,330 @@
+.TH VGIMPORTCLONE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgimportclone \- Import a VG from cloned PVs
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgimportclone\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgimportclone imports a VG from duplicated PVs, e.g. created by a hardware
+snapshot of existing PVs.
+
+A duplicated VG cannot used until it is made to coexist with the original
+VG. vgimportclone renames the VG associated with the specified PVs and
+changes the associated VG and PV UUIDs.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgimportclone\fP \fIPV\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-n\fP|\fB--basevgname\fP \fIVG\fP ]
+.ad b
+.br
+.ad l
+[ \fB-i\fP|\fB--import\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-n\fP|\fB--basevgname\fP \fIString\fP
+.br
+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.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-i\fP|\fB--import\fP
+.br
+Import exported VGs. Otherwise VGs that have been exported
+will not be changed (nor will their associated PVs).
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+An original VG "vg00" has PVs "/dev/sda" and "/dev/sdb".
+The corresponding PVs from a hardware snapshot are "/dev/sdc" and "/dev/sdd".
+Rename the VG associated with "/dev/sdc" and "/dev/sdd" from "vg00" to "vg00_snap"
+(and change associated UUIDs).
+.br
+.B vgimportclone \-\-basevgname vg00_snap /dev/sdc /dev/sdd
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgmerge.8.des b/man/vgmerge.8_des
index ff7c177c7..ff7c177c7 100644
--- a/man/vgmerge.8.des
+++ b/man/vgmerge.8_des
diff --git a/man/vgmerge.8.end b/man/vgmerge.8_end
index 9787c6a82..9787c6a82 100644
--- a/man/vgmerge.8.end
+++ b/man/vgmerge.8_end
diff --git a/man/vgmerge.8_pregen b/man/vgmerge.8_pregen
new file mode 100644
index 000000000..ffa9929cc
--- /dev/null
+++ b/man/vgmerge.8_pregen
@@ -0,0 +1,315 @@
+.TH VGMERGE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgmerge \- Merge volume groups
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgmerge\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgmerge merges two existing VGs. The inactive source VG is merged into the
+destination VG if physical extent sizes are equal and PV and LV summaries
+of both VGs fit into the destination VG's limits.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgmerge\fP \fIVG\fP \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-l\fP|\fB--list\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--list\fP
+.br
+Display merged destination VG like vgdisplay -v.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Merge an inactive VG named "vg00" into the active or inactive VG named
+"databases", giving verbose runtime information.
+.br
+.B vgmerge \-v databases vg00
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgmknodes.8.des b/man/vgmknodes.8_des
index a93d629e1..a93d629e1 100644
--- a/man/vgmknodes.8.des
+++ b/man/vgmknodes.8_des
diff --git a/man/vgmknodes.8_end b/man/vgmknodes.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgmknodes.8_end
diff --git a/man/vgmknodes.8_pregen b/man/vgmknodes.8_pregen
new file mode 100644
index 000000000..6f785b27c
--- /dev/null
+++ b/man/vgmknodes.8_pregen
@@ -0,0 +1,346 @@
+.TH VGMKNODES 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgmknodes \- Create the special files for volume group devices in /dev
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgmknodes\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgmknodes checks the LVM device nodes in /dev that are needed for active
+LVs and creates any that are missing and removes unused ones.
+
+This command should not usually be needed if all the system components are
+interoperating correctly.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgmknodes\fP
+.br
+.RS 4
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--refresh\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fILV\fP|\fITag\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--refresh\fP
+.br
+If the LV is active, reload its metadata.
+This is not necessary in normal operation, but may be useful
+if something has gone wrong, or if some form of manual LV
+sharing is being used.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fILV\fP
+.br
+Logical Volume name. See \fBlvm\fP(8) for valid names.
+An LV positional arg generally includes the VG name and LV name, e.g. VG/LV.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgreduce.8.des b/man/vgreduce.8_des
index 1bcdaf9ff..1bcdaf9ff 100644
--- a/man/vgreduce.8.des
+++ b/man/vgreduce.8_des
diff --git a/man/vgreduce.8_end b/man/vgreduce.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgreduce.8_end
diff --git a/man/vgreduce.8_pregen b/man/vgreduce.8_pregen
new file mode 100644
index 000000000..548188b14
--- /dev/null
+++ b/man/vgreduce.8_pregen
@@ -0,0 +1,483 @@
+.TH VGREDUCE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgreduce \- Remove physical volume(s) from a volume group
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgreduce\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.P
+.ad l
+ \fB-a\fP|\fB--all\fP
+.ad b
+.br
+.ad l
+ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB--commandprofile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB--config\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-d\fP|\fB--debug\fP
+.ad b
+.br
+.ad l
+ \fB--driverloaded\fP \fBy\fP|\fBn\fP
+.ad b
+.br
+.ad l
+ \fB-f\fP|\fB--force\fP
+.ad b
+.br
+.ad l
+ \fB-h\fP|\fB--help\fP
+.ad b
+.br
+.ad l
+ \fB--longhelp\fP
+.ad b
+.br
+.ad l
+ \fB--mirrorsonly\fP
+.ad b
+.br
+.ad l
+ \fB--profile\fP \fIString\fP
+.ad b
+.br
+.ad l
+ \fB-q\fP|\fB--quiet\fP
+.ad b
+.br
+.ad l
+ \fB--removemissing\fP
+.ad b
+.br
+.ad l
+ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.ad b
+.br
+.ad l
+ \fB-t\fP|\fB--test\fP
+.ad b
+.br
+.ad l
+ \fB-v\fP|\fB--verbose\fP
+.ad b
+.br
+.ad l
+ \fB--version\fP
+.ad b
+.br
+.ad l
+ \fB-y\fP|\fB--yes\fP
+.ad b
+
+.P
+
+.SH DESCRIPTION
+vgreduce removes one or more unused PVs from a VG.
+
+.P
+.SH USAGE
+.br
+.P
+.
+Remove a PV from a VG.
+.br
+.P
+\fBvgreduce\fP \fIVG\fP \fIPV\fP ...
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Remove all unused PVs from a VG.
+.br
+.P
+\fBvgreduce\fP \fB-a\fP|\fB--all\fP \fIVG\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Remove all missing PVs from a VG.
+.br
+.P
+\fBvgreduce\fP \fB--removemissing\fP \fIVG\fP
+.br
+.RS 4
+.ad l
+[ \fB--mirrorsonly\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+--
+
+.br
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+Removes all empty PVs if none are named on the command line.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--mirrorsonly\fP
+.br
+Only remove missing PVs from mirror LVs.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--removemissing\fP
+.br
+Removes all missing PVs from the VG, if there are no LVs allocated
+on them. This resumes normal operation of the VG (new LVs may again
+be created, changed and so on).
+If this is not possible because LVs are referencing the missing PVs,
+this option can be combined with --force to have the command remove
+any partial LVs. In this case, any LVs and dependent snapshots that
+were partly on the missing disks are removed completely, including
+those parts on disks that are still present.
+If LVs spanned several disks, including ones that are lost, salvaging
+some data first may be possible by activating LVs in partial mode.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgremove.8.des b/man/vgremove.8_des
index 6414c734a..6414c734a 100644
--- a/man/vgremove.8.des
+++ b/man/vgremove.8_des
diff --git a/man/vgremove.8_end b/man/vgremove.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgremove.8_end
diff --git a/man/vgremove.8_pregen b/man/vgremove.8_pregen
new file mode 100644
index 000000000..ab1aa9001
--- /dev/null
+++ b/man/vgremove.8_pregen
@@ -0,0 +1,364 @@
+.TH VGREMOVE 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgremove \- Remove volume group(s)
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgremove\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgremove removes one or more VGs. If LVs exist in the VG, a prompt is used
+to confirm LV removal.
+
+If one or more PVs in the VG are lost, consider
+\fBvgreduce \-\-removemissing\fP to make the VG
+metadata consistent again.
+
+Repeat the force option (\fB-ff\fP) to forcibly remove LVs in the VG
+without confirmation.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgremove\fP \fIVG\fP|\fITag\fP|\fISelect\fP ...
+.br
+.RS 4
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noudevsync\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--noudevsync\fP
+.br
+Disables udev synchronisation. The process will not wait for notification
+from udev. It will continue irrespective of any possible udev processing
+in the background. Only use this if udev is not running or has rules that
+ignore the devices LVM creates.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fISelect\fP
+.br
+Select indicates that a required positional parameter can
+be omitted if the \fB--select\fP option is used.
+No arg appears in this position.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgrename.8.des b/man/vgrename.8_des
index 2384b6bf0..2384b6bf0 100644
--- a/man/vgrename.8.des
+++ b/man/vgrename.8_des
diff --git a/man/vgrename.8.end b/man/vgrename.8_end
index 98eeb532a..98eeb532a 100644
--- a/man/vgrename.8.end
+++ b/man/vgrename.8_end
diff --git a/man/vgrename.8_pregen b/man/vgrename.8_pregen
new file mode 100644
index 000000000..a9055d05d
--- /dev/null
+++ b/man/vgrename.8_pregen
@@ -0,0 +1,361 @@
+.TH VGRENAME 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgrename \- Rename a volume group
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgrename\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgrename renames a VG.
+
+All VGs visible to a system need to have different names, otherwise many
+LVM commands will refuse to run or give warning messages. VGs with the
+same name can occur when disks are moved between machines, or filters are
+changed. If a newly connected disk has a VG with the same name as the VG
+containing the root filesystem, the machine may not boot correctly. When
+two VGs have the same name, the VG UUID can be used in place of the source
+VG name.
+
+.P
+.SH USAGE
+.br
+.P
+.
+Rename a VG.
+.br
+.P
+\fBvgrename\fP \fIVG\fP \fIVG\fP\fI_new\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Rename a VG by specifying the VG UUID.
+.br
+.P
+\fBvgrename\fP \fIString\fP \fIVG\fP\fI_new\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-f\fP|\fB--force\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-f\fP|\fB--force\fP ...
+.br
+Override various checks, confirmations and protections.
+Use with extreme caution.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH EXAMPLES
+
+Rename VG "vg02" to "myvg":
+.br
+.B vgrename "vg02" "myvg"
+
+Rename the VG with the specified UUID to "myvg".
+.br
+.B vgrename Zvlifi\-Ep3t\-e0Ng\-U42h\-o0ye\-KHu1\-nl7Ns4 myvg
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgs.8.des b/man/vgs.8_des
index 15bdb9749..15bdb9749 100644
--- a/man/vgs.8.des
+++ b/man/vgs.8_des
diff --git a/man/vgs.8.end b/man/vgs.8_end
index b8cda2643..b8cda2643 100644
--- a/man/vgs.8.end
+++ b/man/vgs.8_end
diff --git a/man/vgs.8_pregen b/man/vgs.8_pregen
new file mode 100644
index 000000000..c00460b7f
--- /dev/null
+++ b/man/vgs.8_pregen
@@ -0,0 +1,642 @@
+.TH VGS 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgs \- Display information about volume groups
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgs\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+ [ \fIposition_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgs produces formatted output about VGs.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgs\fP
+.br
+.RS 4
+.ad l
+[ \fB-a\fP|\fB--all\fP ]
+.ad b
+.br
+.ad l
+[ \fB-o\fP|\fB--options\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB-S\fP|\fB--select\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB-O\fP|\fB--sort\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--aligned\fP ]
+.ad b
+.br
+.ad l
+[ \fB--binary\fP ]
+.ad b
+.br
+.ad l
+[ \fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP ]
+.ad b
+.br
+.ad l
+[ \fB--foreign\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignoreskippedcluster\fP ]
+.ad b
+.br
+.ad l
+[ \fB--logonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nameprefixes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--noheadings\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nolocking\fP ]
+.ad b
+.br
+.ad l
+[ \fB--nosuffix\fP ]
+.ad b
+.br
+.ad l
+[ \fB--readonly\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+.ad l
+[ \fB--rows\fP ]
+.ad b
+.br
+.ad l
+[ \fB--separator\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--shared\fP ]
+.ad b
+.br
+.ad l
+[ \fB--trustcache\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unbuffered\fP ]
+.ad b
+.br
+.ad l
+[ \fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP ]
+.ad b
+.br
+.ad l
+[ \fB--unquoted\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+.RS 4
+[ \fIVG\fP|\fITag\fP ... ]
+.RE
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--aligned\fP
+.br
+Use with --separator to align the output columns
+.ad b
+
+.HP
+.ad l
+\fB-a\fP|\fB--all\fP
+.br
+List all VGs. Equivalent to not specifying any VGs.
+.ad b
+
+.HP
+.ad l
+\fB--binary\fP
+.br
+Use binary values "0" or "1" instead of descriptive literal values
+for columns that have exactly two valid values to report (not counting
+the "unknown" value which denotes that the value could not be determined).
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB--configreport\fP \fBlog\fP|\fBvg\fP|\fBlv\fP|\fBpv\fP|\fBpvseg\fP|\fBseg\fP
+.br
+See lvmreport(7).
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB--foreign\fP
+.br
+Report/display foreign VGs that would otherwise be skipped.
+See lvmsystemid(7) for more information about foreign VGs.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--ignoreskippedcluster\fP
+.br
+Use to avoid exiting with an non-zero status code if the command is run
+without clustered locking and clustered VGs are skipped.
+.ad b
+
+.HP
+.ad l
+\fB--logonly\fP
+.br
+Suppress command report and display only log report.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--nameprefixes\fP
+.br
+Add an "LVM2_" prefix plus the field name to the output. Useful
+with --noheadings to produce a list of field=value pairs that can
+be used to set environment variables (for example, in udev rules).
+.ad b
+
+.HP
+.ad l
+\fB--noheadings\fP
+.br
+Suppress the headings line that is normally the first line of output.
+Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--nolocking\fP
+.br
+Disable locking.
+.ad b
+
+.HP
+.ad l
+\fB--nosuffix\fP
+.br
+Suppress the suffix on output sizes. Use with --units
+(except h and H) if processing the output.
+.ad b
+
+.HP
+.ad l
+\fB-o\fP|\fB--options\fP \fIString\fP
+.br
+Comma-separated, ordered list of fields to display in columns.
+String arg syntax is: [+|-|#]Field1[,Field2 ...]
+The prefix \fB+\fP will append the specified fields to the default fields,
+\fB-\fP will remove the specified fields from the default fields, and
+\fB#\fP will compact specified fields (removing them when empty for all rows.)
+Use \fB-o help\fP to view the list of all available fields.
+The -o option can be repeated, providing several lists.
+These lists are evaluated from left to right.
+Use field name \fBlv_all\fP to view all LV fields,
+\fBvg_all\fP all VG fields,
+\fBpv_all\fP all PV fields,
+\fBpvseg_all\fP all PV segment fields,
+\fBseg_all\fP all LV segment fields, and
+\fBpvseg_all\fP all PV segment columns.
+See the lvm.conf report section for more config options.
+See lvmreport(7) for more information about reporting.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--readonly\fP
+.br
+Run the command in a special read-only mode which will read on-disk
+metadata without needing to take any locks. This can be used to peek
+inside metadata used by a virtual machine image while the virtual
+machine is running.
+It can also be used to peek inside the metadata of clustered VGs
+when clustered locking is not configured or running. No attempt
+will be made to communicate with the device-mapper kernel driver, so
+this option is unable to report whether or not LVs are
+actually in use.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB--rows\fP
+.br
+Output columns as rows.
+.ad b
+
+.HP
+.ad l
+\fB-S\fP|\fB--select\fP \fIString\fP
+.br
+Select objects for processing and reporting based on specified criteria.
+The criteria syntax is described by \fB--select help\fP and \fBlvmreport\fP(7).
+For reporting commands, one row is displayed for each object matching the criteria.
+See \fB--options help\fP for selectable object fields.
+Rows can be displayed with an additional "selected" field (-o selected)
+showing 1 if the row matches the selection and 0 otherwise.
+For non-reporting commands which process LVM entities, the selection is
+used to choose items to process.
+.ad b
+
+.HP
+.ad l
+\fB--separator\fP \fIString\fP
+.br
+String to use to separate each column. Useful if grepping the output.
+.ad b
+
+.HP
+.ad l
+\fB--shared\fP
+.br
+Report/display shared VGs that would otherwise be skipped when
+lvmlockd is not being used on the host.
+See lvmlockd(8) for more information about shared VGs.
+.ad b
+
+.HP
+.ad l
+\fB-O\fP|\fB--sort\fP \fIString\fP
+.br
+Comma-separated ordered list of columns to sort by. Replaces the default
+selection. Precede any column with \fB-\fP for a reverse sort on that column.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB--trustcache\fP
+.br
+Avoids certain device scanning during command processing. Do not use.
+.ad b
+
+.HP
+.ad l
+\fB--unbuffered\fP
+.br
+Produce output immediately without sorting or aligning the columns properly.
+.ad b
+
+.HP
+.ad l
+\fB--units\fP \fBr\fP|\fBR\fP|\fBh\fP|\fBH\fP|\fBb\fP|\fBB\fP|\fBs\fP|\fBS\fP|\fBk\fP|\fBK\fP|\fBm\fP|\fBM\fP|\fBg\fP|\fBG\fP|\fBt\fP|\fBT\fP|\fBp\fP|\fBP\fP|\fBe\fP|\fBE\fP
+.br
+All sizes are output in these units:
+human-(r)eadable with '<' rounding indicator,
+(h)uman-readable, (b)ytes, (s)ectors, (k)ilobytes, (m)egabytes,
+(g)igabytes, (t)erabytes, (p)etabytes, (e)xabytes.
+Capitalise to use multiples of 1000 (S.I.) instead of 1024.
+Custom units can be specified, e.g. --units 3M.
+.ad b
+
+.HP
+.ad l
+\fB--unquoted\fP
+.br
+When used with --nameprefixes, output values in the field=value
+pairs are not quoted.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fITag\fP
+.br
+Tag name. See \fBlvm\fP(8) for information about tag names and using tags
+in place of a VG, LV or PV.
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH NOTES
+.
+The vg_attr bits are:
+.IP 1 3
+Permissions: (w)riteable, (r)ead-only
+.IP 2 3
+Resi(z)eable
+.IP 3 3
+E(x)ported
+.IP 4 3
+(p)artial: one or more physical volumes belonging to the volume group
+are missing from the system
+.IP 5 3
+Allocation policy: (c)ontiguous, c(l)ing, (n)ormal, (a)nywhere
+.IP 6 3
+(c)lustered, (s)hared
+
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgscan.8.des b/man/vgscan.8_des
index e8041ed9e..e8041ed9e 100644
--- a/man/vgscan.8.des
+++ b/man/vgscan.8_des
diff --git a/man/vgscan.8_end b/man/vgscan.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgscan.8_end
diff --git a/man/vgscan.8_pregen b/man/vgscan.8_pregen
new file mode 100644
index 000000000..57691efdc
--- /dev/null
+++ b/man/vgscan.8_pregen
@@ -0,0 +1,356 @@
+.TH VGSCAN 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgscan \- Search for all volume groups
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgscan\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgscan scans all supported LVM block devices in the system for VGs.
+
+.P
+.SH USAGE
+.br
+.P
+.
+\fBvgscan\fP
+.br
+.RS 4
+.ad l
+[ \fB-P\fP|\fB--partial\fP ]
+.ad b
+.br
+.ad l
+[ \fB--cache\fP ]
+.ad b
+.br
+.ad l
+[ \fB--ignorelockingfailure\fP ]
+.ad b
+.br
+.ad l
+[ \fB--mknodes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--notifydbus\fP ]
+.ad b
+.br
+.ad l
+[ \fB--reportformat\fP \fBbasic\fP|\fBjson\fP ]
+.ad b
+.br
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--cache\fP
+.br
+Scan all devices and send the metadata to lvmetad.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--ignorelockingfailure\fP
+.br
+Allows a command to continue with read-only metadata
+operations after locking failures.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB--mknodes\fP
+.br
+Also checks the LVM special files in /dev that are needed for active
+LVs and creates any missing ones and removes unused ones.
+.ad b
+
+.HP
+.ad l
+\fB--notifydbus\fP
+.br
+Send a notification to D-Bus. The command will exit with an error
+if LVM is not built with support for D-Bus notification, or if the
+notify_dbus config setting is disabled.
+.ad b
+
+.HP
+.ad l
+\fB-P\fP|\fB--partial\fP
+.br
+When set, the tools will do their best to provide access to VGs
+that are only partially available (one or more PVs belonging
+to the VG are missing from the system). Metadata may not be
+changed with this option.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB--reportformat\fP \fBbasic\fP|\fBjson\fP
+.br
+Overrides current output format for reports which is defined globally by
+the report/output_format setting in lvm.conf.
+\fBbasic\fP is the original format with columns and rows.
+If there is more than one report per command, each report is prefixed
+with the report name for identification. \fBjson\fP produces report
+output in JSON format. See \fBlvmreport\fP(7) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+
diff --git a/man/vgsplit.8.des b/man/vgsplit.8_des
index 29eb5c5cb..29eb5c5cb 100644
--- a/man/vgsplit.8.des
+++ b/man/vgsplit.8_des
diff --git a/man/vgsplit.8_end b/man/vgsplit.8_end
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/man/vgsplit.8_end
diff --git a/man/vgsplit.8_pregen b/man/vgsplit.8_pregen
new file mode 100644
index 000000000..a45db0bdb
--- /dev/null
+++ b/man/vgsplit.8_pregen
@@ -0,0 +1,444 @@
+.TH VGSPLIT 8 "LVM TOOLS 2.02.169(2)-git (2016-11-30)" "Red Hat, Inc."
+.SH NAME
+.
+vgsplit \- Move physical volumes into a new or existing volume group
+.P
+.
+.SH SYNOPSIS
+.br
+.P
+.
+\fBvgsplit\fP \fIoption_args\fP \fIposition_args\fP
+.br
+ [ \fIoption_args\fP ]
+.br
+.P
+
+.SH DESCRIPTION
+vgsplit moves one or more PVs from a source VG to a destination VG. The
+PVs can be specified explicitly or implicitly by naming an LV, in which
+case on PVs underlying the LV are moved.
+
+If the destination VG does not exist, a new VG is created (command options
+can be used to specify properties of the new VG, also see
+\fBvgcreate\fP(8).)
+
+LVs cannot be split between VGs; each LV must be entirely on the PVs in
+the source or destination VG.
+
+vgsplit can only move complete PVs. (See \fBpvmove\fP(8) for moving part
+of a PV.)
+
+.P
+.SH USAGE
+.br
+.P
+.
+Split a VG by specified PVs.
+.br
+.P
+\fBvgsplit\fP \fIVG\fP \fIVG\fP \fIPV\fP ...
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Split a VG by PVs in a specified LV.
+.br
+.P
+\fBvgsplit\fP \fB-n\fP|\fB--name\fP \fILV\fP \fIVG\fP \fIVG\fP
+.br
+.RS 4
+[ COMMON_OPTIONS ]
+.RE
+.br
+
+
+Common options for command:
+.
+.RS 4
+.ad l
+[ \fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-c\fP|\fB--clustered\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB-l\fP|\fB--maxlogicalvolumes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-p\fP|\fB--maxphysicalvolumes\fP \fINumber\fP ]
+.ad b
+.br
+.ad l
+[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ]
+.ad b
+.br
+.ad l
+[ \fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP ]
+.ad b
+.br
+.ad l
+[ \fB--[vg]metadatacopies\fP \fBall\fP|\fBunmanaged\fP|\fINumber\fP ]
+.ad b
+
+.RE
+.br
+
+Common options for lvm:
+.
+.RS 4
+.ad l
+[ \fB-d\fP|\fB--debug\fP ]
+.ad b
+.br
+.ad l
+[ \fB-h\fP|\fB--help\fP ]
+.ad b
+.br
+.ad l
+[ \fB-q\fP|\fB--quiet\fP ]
+.ad b
+.br
+.ad l
+[ \fB-t\fP|\fB--test\fP ]
+.ad b
+.br
+.ad l
+[ \fB-v\fP|\fB--verbose\fP ]
+.ad b
+.br
+.ad l
+[ \fB-y\fP|\fB--yes\fP ]
+.ad b
+.br
+.ad l
+[ \fB--commandprofile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--config\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--driverloaded\fP \fBy\fP|\fBn\fP ]
+.ad b
+.br
+.ad l
+[ \fB--longhelp\fP ]
+.ad b
+.br
+.ad l
+[ \fB--profile\fP \fIString\fP ]
+.ad b
+.br
+.ad l
+[ \fB--version\fP ]
+.ad b
+
+.RE
+
+.SH OPTIONS
+.br
+
+.HP
+.ad l
+\fB--alloc\fP \fBcontiguous\fP|\fBcling\fP|\fBcling_by_tags\fP|\fBnormal\fP|\fBanywhere\fP|\fBinherit\fP
+.br
+Determines the allocation policy when a command needs to allocate
+Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy
+which can be changed with vgchange/lvchange, or overriden on the
+command line.
+\fBnormal\fP applies common sense rules such as not placing parallel stripes
+on the same PV.
+\fBinherit\fP applies the VG policy to an LV.
+\fBcontiguous\fP requires new PEs be placed adjacent to existing PEs.
+\fBcling\fP places new PEs on the same PV as existing PEs in the same
+stripe of the LV.
+If there are sufficient PEs for an allocation, but normal does not
+use them, \fBanywhere\fP will use them even if it reduces performance,
+e.g. by placing two stripes on the same PV.
+Optional positional PV args on the command line can also be used to limit
+which PVs the command will use for allocation.
+See \fBlvm\fP(8) for more information about allocation.
+.ad b
+
+.HP
+.ad l
+\fB-A\fP|\fB--autobackup\fP \fBy\fP|\fBn\fP
+.br
+Specifies if metadata should be backed up automatically after a change.
+Enabling this is strongly advised! See vgcfgbackup(8) for more information.
+.ad b
+
+.HP
+.ad l
+\fB-c\fP|\fB--clustered\fP \fBy\fP|\fBn\fP
+.br
+Specifies the clustered property of the new VG.
+.ad b
+
+.HP
+.ad l
+\fB--commandprofile\fP \fIString\fP
+.br
+The command profile to use for command configuration.
+See \fBlvm.conf\fP(5) for more information about profiles.
+.ad b
+
+.HP
+.ad l
+\fB--config\fP \fIString\fP
+.br
+Config settings for the command. These override lvm.conf settings.
+The String arg uses the same format as lvm.conf,
+or may use section/field syntax.
+See \fBlvm.conf\fP(5) for more information about config.
+.ad b
+
+.HP
+.ad l
+\fB-d\fP|\fB--debug\fP ...
+.br
+Set debug level. Repeat from 1 to 6 times to increase the detail of
+messages sent to the log file and/or syslog (if configured).
+.ad b
+
+.HP
+.ad l
+\fB--driverloaded\fP \fBy\fP|\fBn\fP
+.br
+If set to no, the command will not attempt to use device-mapper.
+For testing and debugging.
+.ad b
+
+.HP
+.ad l
+\fB-h\fP|\fB--help\fP
+.br
+Display help text.
+.ad b
+
+.HP
+.ad l
+\fB--longhelp\fP
+.br
+Display long help text.
+.ad b
+
+.HP
+.ad l
+\fB-l\fP|\fB--maxlogicalvolumes\fP \fINumber\fP
+.br
+Sets the maximum number of LVs allowed in a VG.
+.ad b
+
+.HP
+.ad l
+\fB-p\fP|\fB--maxphysicalvolumes\fP \fINumber\fP
+.br
+Sets the maximum number of PVs that can belong to the VG.
+The value 0 removes any limitation.
+For large numbers of PVs, also see options --pvmetadatacopies,
+and --vgmetadatacopies for improving performance.
+.ad b
+
+.HP
+.ad l
+\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP
+.br
+Specifies the type of on-disk metadata to use.
+\fBlvm2\fP (or just \fB2\fP) is the current, standard format.
+\fBlvm1\fP (or just \fB1\fP) is a historical format that
+can be used for accessing old data.
+.ad b
+
+.HP
+.ad l
+\fB-n\fP|\fB--name\fP \fIString\fP
+.br
+Move only PVs used by the named LV.
+.ad b
+
+.HP
+.ad l
+\fB--profile\fP \fIString\fP
+.br
+An alias for --commandprofile or --metadataprofile, depending
+on the command.
+.ad b
+
+.HP
+.ad l
+\fB-q\fP|\fB--quiet\fP ...
+.br
+Suppress output and log messages. Overrides --debug and --verbose.
+Repeat once to also suppress any prompts with answer no.
+.ad b
+
+.HP
+.ad l
+\fB-t\fP|\fB--test\fP
+.br
+Run in test mode. Commands will not update metadata.
+This is implemented by disabling all metadata writing but nevertheless
+returning success to the calling function. This may lead to unusual
+error messages in multi-stage operations if a tool relies on reading
+back metadata it believes has changed but hasn't.
+.ad b
+
+.HP
+.ad l
+\fB-v\fP|\fB--verbose\fP ...
+.br
+Set verbose level. Repeat from 1 to 4 times to increase the detail
+of messages sent to stdout and stderr.
+.ad b
+
+.HP
+.ad l
+\fB--version\fP
+.br
+Display version information.
+.ad b
+
+.HP
+.ad l
+\fB--[vg]metadatacopies\fP \fBall\fP|\fBunmanaged\fP|\fINumber\fP
+.br
+Number of copies of the VG metadata that are kept.
+VG metadata is kept in VG metadata areas on PVs in the VG,
+i.e. reserved space at the start and/or end of the PVs.
+Keeping a copy of the VG metadata on every PV can reduce performance
+in VGs containing a large number of PVs.
+When this number is set to a non-zero value, LVM will automatically
+choose PVs on which to store metadata, using the metadataignore flags
+on PVs to achieve the specified number.
+The number can also be replaced with special string values:
+\fBunmanaged\fP causes LVM to not automatically manage the PV
+metadataignore flags.
+\fBall\fP causes LVM to first clear the metadataignore flags on
+all PVs, and then to become unmanaged.
+.ad b
+
+.HP
+.ad l
+\fB-y\fP|\fB--yes\fP
+.br
+Do not prompt for confirmation interactively but always assume the
+answer yes. Use with extreme caution.
+(For automatic no, see -qq.)
+.ad b
+.SH VARIABLES
+.br
+
+.HP
+\fIVG\fP
+.br
+Volume Group name. See \fBlvm\fP(8) for valid names.
+
+.HP
+\fIPV\fP
+.br
+Physical Volume name, a device path under /dev.
+For commands managing physical extents, a PV positional arg
+generally accepts a suffix indicating a range (or multiple ranges)
+of physical extents (PEs). When the first PE is omitted, it defaults
+to the start of the device, and when the last PE is omitted it defaults to end.
+Start and end range (inclusive): \fIPV\fP[\fB:\fP\fIPE\fP\fB-\fP\fIPE\fP]...
+Start and length range (counting from 0): \fIPV\fP[\fB:\fP\fIPE\fP\fB+\fP\fIPE\fP]...
+
+.HP
+\fIString\fP
+.br
+See the option description for information about the string content.
+
+.HP
+\fISize\fP[UNIT]
+.br
+Size is an input number that accepts an optional unit.
+Input units are always treated as base two values, regardless of
+capitalization, e.g. 'k' and 'K' both refer to 1024.
+The default input unit is specified by letter, followed by |UNIT.
+UNIT represents other possible input units: \fBbBsSkKmMgGtTpPeE\fP.
+b|B is bytes, s|S is sectors of 512 bytes, k|K is kilobytes,
+m|M is megabytes, g|G is gigabytes, t|T is terabytes,
+p|P is petabytes, e|E is exabytes.
+(This should not be confused with the output control --units, where
+capital letters mean multiple of 1000.)
+.SH ENVIRONMENT VARIABLES
+.br
+See \fBlvm\fP(8) for information about environment variables used by lvm.
+For example, LVM_VG_NAME can generally be substituted for a required VG parameter.
+.SH SEE ALSO
+
+.BR lvm (8)
+.BR lvm.conf (5)
+.BR lvmconfig (8)
+
+.BR pvchange (8)
+.BR pvck (8)
+.BR pvcreate (8)
+.BR pvdisplay (8)
+.BR pvmove (8)
+.BR pvremove (8)
+.BR pvresize (8)
+.BR pvs (8)
+.BR pvscan (8)
+
+.BR vgcfgbackup (8)
+.BR vgcfgrestore (8)
+.BR vgchange (8)
+.BR vgck (8)
+.BR vgcreate (8)
+.BR vgconvert (8)
+.BR vgdisplay (8)
+.BR vgexport (8)
+.BR vgextend (8)
+.BR vgimport (8)
+.BR vgimportclone (8)
+.BR vgmerge (8)
+.BR vgmknodes (8)
+.BR vgreduce (8)
+.BR vgremove (8)
+.BR vgrename (8)
+.BR vgs (8)
+.BR vgscan (8)
+.BR vgsplit (8)
+
+.BR lvcreate (8)
+.BR lvchange (8)
+.BR lvconvert (8)
+.BR lvdisplay (8)
+.BR lvextend (8)
+.BR lvreduce (8)
+.BR lvremove (8)
+.BR lvrename (8)
+.BR lvresize (8)
+.BR lvs (8)
+.BR lvscan (8)
+
+.BR lvm2-activation-generator (8)
+.BR blkdeactivate (8)
+.BR lvmdump (8)
+
+.BR dmeventd (8)
+.BR lvmetad (8)
+.BR lvmpolld (8)
+.BR lvmlockd (8)
+.BR lvmlockctl (8)
+.BR clvmd (8)
+.BR cmirrord (8)
+.BR lvmdbusd (8)
+
+.BR lvmsystemid (7)
+.BR lvmreport (7)
+.BR lvmraid (7)
+.BR lvmthin (7)
+.BR lvmcache (7)
+