VGSPLIT(8)
π VGSPLIT π
okay so bestie, this is vgsplit from section 8 of the System Manager's Manual, and it's literally the "moving out" of the LVM world β it takes physical volumes and moves them into a new or an existing volume group. let's get into it π¦
β¨ NAME β¨
vgsplit β Move physical volumes into a new or existing volume group
πΈ SYNOPSIS πΈ
vgsplit option_args position_args
[ option_args ]
π DESCRIPTION π
ok so here's the tea β β vgsplit takes one or more PVs and moves them from a source VG (that's the first VG arg) to a destination VG (that's the second VG arg). which PVs get moved? the ones you list after the source and destination VGs. OR β plot twist β you can name an LV, and in that case the PVs underlying that LV are the ones that get moved. main character energy, honestly.
if the destination VG doesn't exist yet? no worries, a whole new VG gets created β¨ (and you can use command options to specify the properties of that new VG, also see vgcreate(8)).
big important rule: LVs cannot be split between VGs. each LV must be entirely on the PVs in the source VG or entirely on the PVs in the destination VG. no halfsies. periodt.
and also β vgsplit can only move complete PVs. like, whole entire PVs, not bits of them. (if you need to move part of a PV, see pvmove(8), that's her job π
)
π USAGE π
Split a VG by specified PVs.
vgsplit VG VG PV ...
[ COMMON_OPTIONS ]
β
Split a VG by PVs in a specified LV.
vgsplit -n|--name LV VG VG
[ COMMON_OPTIONS ]
β
Common options for command:
[ -A|--autobackup y|n ]
[ -l|--maxlogicalvolumes Number ]
[ -p|--maxphysicalvolumes Number ]
[ -M|--metadatatype lvm2 ]
[ --alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit
]
[ --poolmetadataspare y|n ]
[ --[vg]metadatacopies all|unmanaged|Number ]
Common options for lvm:
[ -d|--debug ... ]
[ -h|--help ]
[ -q|--quiet ... ]
[ -t|--test ]
[ -v|--verbose ... ]
[ -y|--yes ]
[ --commandprofile String ]
[ --config String ]
[ --devices PV ]
[ --devicesfile String ]
[ --driverloaded y|n ]
[ --journal String ]
[ --lockopt String ]
[ --longhelp ]
[ --nohints ]
[ --nolocking ]
[ --profile String ]
[ --version ]
β¨ OPTIONS β¨
--alloc contiguous|cling|cling_by_tags|normal|anywhere|inheritβ this decides the allocation policy when a command needs to grab Physical Extents (PEs) out of the VG. every VG and every LV has an allocation policy, and you can change it withvgchange/lvchange, or just override it right here on the command line.normalis the sensible bestie β it applies common sense rules like not putting parallel stripes on the same PV.inheritpasses the VG policy down to an LV.contiguousrequires new PEs to sit right next to existing PEs (adjacent, cozy).clingputs new PEs on the same PV as existing PEs in the same stripe of the LV. and if there are enough PEs for an allocation butnormalwon't use them,anywherewill use them anyway β even if it tanks performance, like by putting two stripes on the same PV π. also, optional positional PV args on the command line can limit which PVs the command will use for allocation. seelvm(8)for more about allocation.-A|--autobackup y|nβ says whether metadata should get backed up automatically after a change. enabling this is strongly advised!! seevgcfgbackup(8)for more deets.--commandprofile Stringβ the command profile to use for command configuration. seelvm.conf(5)for more about profiles.--config Stringβ config settings for the command. these overridelvm.conf(5)settings. the String arg uses the same format aslvm.conf(5), or you can usesection/fieldsyntax. seelvm.conf(5)for more about config.-d|--debug ...β set debug level. repeat it from 1 to 6 times to crank up the detail of messages sent to the log file and/or syslog (if configured).--devices PVβ restricts which devices are visible and accessible to the command. devices not listed will look like they're missing. this option can be repeated, or it accepts a comma-separated list of devices. this overrides the devices file.--devicesfile Stringβ a file listing devices that LVM should use. the file must exist in/etc/lvm/devices/and is managed with thelvmdevices(8)command. this overrides thelvm.conf(5)devices/devicesfileanddevices/use_devicesfilesettings.--driverloaded y|nβ if set to no, the command will not even attempt to use device-mapper. for testing and debugging π§ͺ-h|--helpβ display help text.--journal Stringβ record information in the systemd journal. this is in addition to whatever thelvm.conflog/journalsetting already enables.command:records info about the command.output:records the default command output.debug:records full command debugging.--lockopt Stringβ used to pass options for special cases tolvmlockd. seelvmlockd(8)for more.--longhelpβ display long help text.-l|--maxlogicalvolumes Numberβ sets the max number of LVs allowed in a VG.-p|--maxphysicalvolumes Numberβ sets the max number of PVs that can belong to the VG. the value0removes any limitation. for big numbers of PVs, also peep the options--pvmetadatacopiesand--vgmetadatacopiesfor improving performance.-M|--metadatatype lvm2β specifies the type of on-disk metadata to use.lvm2(or just2) is the current, standard format β¨.lvm1(or just1) is no longer used.-n|--name Stringβ move only the PVs used by the named LV.--nohintsβ don't use the hints file to locate devices for PVs. a command may read more devices to find PVs when hints aren't used. it will still perform standard hint file invalidation where appropriate.--nolockingβ disable locking. use with caution β concurrent commands may produce incorrect results π--poolmetadataspare y|nβ 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.--profile Stringβ an alias for--commandprofileor--metadataprofile, depending on the command.-q|--quiet ...β suppress output and log messages. overrides--debugand--verbose. repeat once to also suppress any prompts with answer 'no'.-t|--testβ run in test mode. commands will not update metadata. this is implemented by disabling all metadata writing but still 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.-v|--verbose ...β set verbose level. repeat from 1 to 4 times to increase the detail of messages sent to stdout and stderr.--versionβ display version information.--[vg]metadatacopies all|unmanaged|Numberβ number of copies of the VG metadata that are kept. VG metadata lives 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 with 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 themetadataignoreflags on PVs to hit the number you asked for. the number can also be replaced with special string values:unmanagedmeans LVM won't automatically manage the PVmetadataignoreflags.allmeans LVM first clears themetadataignoreflags on all PVs, and then becomes unmanaged.-y|--yesβ don't prompt for confirmation interactively, just always assume the answer is yes. use with extreme caution. (for automatic no, see-qq.)
π¦ VARIABLES π¦
VGβ Volume Group name. seelvm(8)for valid names.PVβ 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 the end.
Start and end range (inclusive): PV[:PE-PE] ...
Start and length range (counting from 0): PV[:PE+PE] ...
Stringβ see the option description for info about the string content.Size[UNIT]β 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 mean 1024. the default input unit is specified by letter, followed by|UNIT. UNIT represents the other possible input units:b|Bis bytes,s|Sis sectors of 512 bytes,k|Kis KiB,m|Mis MiB,g|Gis GiB,t|Tis TiB,p|Pis PiB,e|Eis EiB. (don't confuse this with the output control--units, where capital letters mean multiple of 1000.)
π ENVIRONMENT VARIABLES π
see lvm(8) for info about environment variables used by lvm. for example, LVM_VG_NAME can generally be substituted for a required VG parameter. π
π SEE ALSO π
lvm(8), lvm.conf(5), lvmconfig(8), lvmdevices(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), vgimportdevices(8), vgmerge(8), vgmknodes(8), vgreduce(8), vgremove(8), vgrename(8), vgs(8), vgscan(8), vgsplit(8),
lvcreate(8), lvchange(8), lvconvert(8), lvdisplay(8), lvextend(8), lvreduce(8), lvremove(8), lvrename(8), lvresize(8), lvs(8), lvscan(8),
lvm-fullreport(8), lvm-lvpoll(8), blkdeactivate(8), lvmdump(8),
dmeventd(8), lvmpolld(8), lvmlockd(8), lvmlockctl(8), lvmdbusd(8), fsadm(8),
lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)
and that's the whole page bestie, you ate that π«Ά
cute little sign-off: this one's brought to you by Red Hat, Inc., it's LVM TOOLS 2.03.44(2) from 2026-10-27, and it lives at page VGSPLIT(8). go forth and split responsibly πβ¨
π¦ where this page comes from
- arch rolling: lvm2 2.03.44-1 Β· GPL-2.0-only AND LGPL-2.1-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms