VGDISPLAY(8)
π NAME π
okay bestie, pull up a chair π«Ά this page is vgdisplay β and it lives in section 8 of the System Manager's Manual, aka the admin girlies' section. and what does it do? it displays volume group information. that's the whole job. let's go π
β¨ SYNOPSIS β¨
here's the whole shape of it, every single option, no skips, no edits:
vgdisplay option_args
[ option_args ]
[ position_args ]
-A|--activevolumegroups
--aligned
-a|--all
--binary
-c|--colon
-C|--columns
--commandprofile String
--config String
--configreport log|vg|lv|pv|pvseg|seg
-d|--debug ...
--devices PV
--devicesfile String
--driverloaded y|n
--foreign
--headings none|abbrev|full|0|1|2
-h|--help
--ignorelockingfailure
--journal String
--lockopt String
--logonly
--longhelp
--nameprefixes
--noheadings
--nohints
--nolocking
--nosuffix
-o|--options String
--profile String
-q|--quiet ...
--readonly
--reportformat basic|json|json_std
--rows
-S|--select String
--separator String
--shared
-s|--short
-O|--sort String
-t|--test
--unbuffered
--units [Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E
--unquoted
-v|--verbose ...
--version
-y|--yes
that's the menu, girl. we'll go through all of it. π
π¦ DESCRIPTION π¦
so like, vgdisplay shows you the attributes of VGs β that's volume groups, keep up π β plus the PVs and LVs that are associated with them. physical volumes, logical volumes, the whole little family. it's giving family portrait, honestly.
but here's the tea, and i need you to hear me on this one: vgs(8) is a preferred alternative that shows the same information and more, using a more compact and configurable output format. so likeβ¦ it does more, in less space, and you can shape it. the way that vgs ate and left no crumbs π
so yeah β vgdisplay works, it's valid, it's iconic in its own nostalgic way, but vgs(8) is the main character here. iykyk.
πΈ USAGE πΈ
the plain-jane invocation π«
vgdisplay
[ -A|--activevolumegroups ]
[ -s|--short ]
[ COMMON_OPTIONS ]
[ VG|Tag ... ]
β¨ columns mode β¨
Display output in columns like vgs.
vgdisplay -C|--columns
[ -a|--all ]
[ -o|--options String ]
[ -O|--sort String ]
[ -S|--select String ]
[ --aligned ]
[ --binary ]
[ --configreport log|vg|lv|pv|pvseg|seg ]
[ --headings none|abbrev|full|0|1|2 ]
[ --logonly ]
[ --nameprefixes ]
[ --noheadings ]
[ --nosuffix ]
[ --rows ]
[ --separator String ]
[ --unbuffered ]
[ --unquoted ]
[ COMMON_OPTIONS ]
[ VG|Tag ... ]
like, yes ma'am, give us the formatting. we love a configurable queen π
π colon mode π
Generate colon separated output.
vgdisplay -c|--colon
[ -A|--activevolumegroups ]
[ COMMON_OPTIONS ]
[ VG|Tag ... ]
colons. very parseable. very "i'm piping this into a script and i need it to behave." π
π«Ά common options for command π«Ά
these are the ones that hang out with the command-level behaviours β every single one is optional (that's what the brackets in the original are telling you):
--foreign--ignorelockingfailure--readonly--reportformat basic|json|json_std--shared--units [Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E
π common options for lvm π
and these ones are the LVM-wide squad β the ones basically every LVM tool rolls with. also all optional, also all exactly as written:
-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
okay so that's the scenic route through the top of the page β and there is so much more, because this manpage is long and we are not skipping a single flag, not one, no cap π
β¨ OPTIONS β¨
okay bestie, this is the part where vgdisplay shows you everything it's got. strap in π
-A,--activevolumegroupsβ only picks the active VGs. a VG counts as active if at least one of its LVs is active. that's the whole vibe check πΈ--alignedβ use it together with--separatorso the output columns line up all pretty β¨-a,--allβ list every VG. literally the same as not naming any VGs at all. no filter, no cap π₯--binaryβ for columns that only have two real values to report, spit out"0"or"1"instead of the descriptive word versions. (heads up: this does not count the"unknown"value β that one just means the value couldn't be figured out at all π)-c,--colonβ generates colon-separated output so scripts and programs can parse it without crying π. also go look atvgs(8), it gives you way more control over the output. the values come out in this exact order:- Volume group name
- Volume group access
- Volume group status
- Internal volume group number
- Maximum number of logical volumes
- Current number of logical volumes
- Open count of all logical volumes in this volume group
- Maximum logical volume size
- Maximum number of physical volumes
- Current number of physical volumes
- Actual number of physical volumes
- Size of volume group in kilobytes
- Physical extent size
- Total number of physical extents for this volume group
- Allocated number of physical extents for this volume group
- Free number of physical extents for this volume group
- Uuid of volume group
-C,--columnsβ shows the output in columns. it's the equivalent ofvgs(8), and the options you can throw at it are the same onesvgs(8)takes. iconic behavior π--commandprofileString β the command profile to use for command configuration. want the full lore? checklvm.conf(5)for everything about profiles.--configString β config settings just for this command. these override whateverlvm.conf(5)says. the String arg uses the same format aslvm.conf(5), or you can use thesection/fieldsyntax. again,lvm.conf(5)has the details π--configreportlog|vg|lv|pv|pvseg|segβ go readlvmreport(7)for this one π¦-d,--debug... β sets the debug level. repeat it 1 to 6 times to get more and more detailed messages going to the log file and/or syslog (if syslog is configured). the more times you say it the more it tells you π--devicesPV β restricts which devices the command can see and touch. anything not listed basically looks like it's missing π». you can repeat this option, or hand it a comma-separated list of devices. this one overrides the devices file.--devicesfileString β a file that lists the devices LVM should use. it has to already exist in/etc/lvm/devices/, and you manage it with thelvmdevices(8)command. this overrides thelvm.conf(5)settingsdevices/devicesfileanddevices/use_devicesfile.--driverloadedy|nβ set it to no and the command won't even try to use device-mapper. this is for testing and debugging, bestie π§ͺ--foreignβ reports/displays foreign VGs that would otherwise get skipped.lvmsystemid(7)has the whole story on foreign VGs π--headingsnone|abbrev|full|0|1|2β picks the type of headings used in report output.noneor0: no headings at allabbrevor1: column name abbreviationsfullor2: full column names
-h,--helpβ shows you the help text π«Ά--ignorelockingfailureβ lets a command keep going with read-only metadata operations even after locking failures happen. lowkey a lifesaver sometimes.--journalString β records info into the systemd journal. this is in addition to whatever thelvm.conflog/journalsetting already turns on.command: record information about the commandoutput: record the default command outputdebug: record full command debugging
--lockoptString β used to pass options for special cases over tolvmlockd. seelvmlockd(8)for more π«--logonlyβ suppresses the command report and shows you only the log report. just log, nothing else β¨--longhelpβ shows you the long help text π--nameprefixesβ adds an"LVM2_"prefix plus the field name onto the output. super useful with--noheadingsif you want a list offield=valuepairs you can use to set environment variables (like in udev rules, for example) π--noheadingsβ kills the headings line that's normally the first line of output. perfect if you're grepping the output π--nohintsβ don't use the hints file to locate devices for PVs. without hints a command might read more devices to find PVs. it'll still do standard hint file invalidation where it's appropriate, don't worry π--nolockingβ disables locking. β οΈ use with caution, because concurrent commands can produce incorrect results.--nosuffixβ suppresses the suffix on output sizes. use it with--units(excepthandH) if you're processing the output.-o,--optionsString β a comma-separated, ordered list of fields to display in columns. the String arg syntax is:[+|-|#]Field1[,Field2 ...]- the
+prefix appends the fields you name onto the default fields -removes them from the default fields#compacts the fields you name (removing them when they're empty for all rows)- use
-o helpto see the list of all the available fields π - want to add, remove or compact? just repeat the
-ooption with separate lists:-o+field1,field2 -o-field3,field4 -o#field5. these lists get evaluated left to right. - field name
lv_allshows all LV fields,vg_allall VG fields,pv_allall PV fields,seg_allall LV segment fields, andpvseg_allall PV segment fields. - the
lvm.conf(5)report section has more config options, andlvmreport(7)has more about reporting π
- the
--profileString β an alias for--commandprofileor--metadataprofile, depending on the command π¦-q,--quiet... β suppresses output and log messages. overrides--debugand--verbose. repeat it once and it also suppresses any prompts with the answer 'no' π€«--readonlyβ stops the command from making changes, including activation and metadata updates. (for read only LVs, see--permission r.)--reportformatbasic|json|json_stdβ overrides the current output format for reports, which is normally set globally by thereport/output_formatsetting inlvm.conf(5).basicis the original format with columns and rows. if there's more than one report per command, each report gets prefixed with the report name so you can tell them apart.jsongives you report output in JSON format.json_stdgives you report output in JSON format that's more compliant with the JSON standard.lvmreport(7)has more info, bestie β¨
--rowsβ outputs columns as rows. flip it π-S,--selectString β selects objects for processing and reporting based on the criteria you give it. the criteria syntax is described by--select helpand inlvmreport(7). for reporting commands, you get one row displayed for each object that matches the criteria.--options helpshows you the selectable object fields. rows can also be shown with an extra"selected"field (-o selected) showing1if the row matches the selection and0otherwise. for non-reporting commands that process LVM entities, the selection is what chooses the items to process π--separatorString β the string used to separate each column. useful if you're grepping the output π--sharedβ reports/displays shared VGs that would otherwise get skipped whenlvmlockdisn't being used on the host.lvmlockd(8)has more about shared VGs π-s,--shortβ gives you a short listing that just shows the existence of VGs. no frills, just facts β¨-O,--sortString β a comma-separated ordered list of columns to sort by. it replaces the default selection. put a-in front of any column to reverse-sort on that column π-t,--testβ run in test mode. commands won't update metadata. here's how it actually works: it disables all metadata writing but still returns success to the calling function. π that can lead to unusual error messages in multi-stage operations if a tool relies on reading back metadata it believes has changed β but hasn't. so like, be aware.--unbufferedβ produces output immediately, without sorting or aligning the columns properly. chaos mode, but sometimes you need it π--units[Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|Eβ all sizes get output in these units:(r)eadable with a'<'rounding indicator β human-(h)uman-readable(b)ytes(s)ectors(k)ilobytes(m)egabytes(g)igabytes(t)erabytes(p)etabytes(e)xabytes- capitalize the letter to use multiples of 1000 (S.I.) instead of 1024
- you can even specify custom units, like
--units 3Mπ
--unquotedβ when you use it with--nameprefixes, the values in thefield=valuepairs are not quoted π-v,--verbose... β sets the verbose level. repeat it 1 to 4 times to get more detailed messages sent to stdout and stderr π’--versionβ displays version information β-y,--yesβ doesn't prompt you for confirmation interactively, just always assumes the answer is yes. β οΈ use with extreme caution. (and for an automatic no, see-qq.)
πΈ VARIABLES πΈ
these are the lil' pieces of input the command expects, bestie π«Ά
- VG β Volume Group name.
lvm(8)has the rules for valid names. - Tag β Tag name. see
lvm(8)for info about tag names, and about using tags in place of a VG, LV or PV π·οΈ - String β check the option description for whatever the string content should be β¨
- Size[UNIT] β Size is an input number that accepts an optional unit. input units are always treated as base two values, no matter how you capitalize them β so
'k'and'K'both mean 1024, periodt. the default input unit is specified by letter, followed by|UNIT.UNITrepresents the other possible input units:b|Bis bytess|Sis sectors of 512 bytesk|Kis KiBm|Mis MiBg|Gis GiBt|Tis TiBp|Pis PiBe|Eis EiB
don't get this twisted with the output control --units, where capital letters mean multiples of 1000. different thing entirely, girlie π§
π ENVIRONMENT VARIABLES π
go check lvm(8) for the info about environment variables used by lvm. for example, LVM_VG_NAME can generally be substituted in for a required VG parameter π
π SEE ALSO π
okay so you made it to the end, bestie, and now it's time for the β¨extended universeβ¨ β because vgdisplay is literally one lil icon in a whole friend group of LVM tools and you deserve to know all of them π go read these, they're giving main character energy, no cap.
- the foundational lore, the config, the devices β start here if you want the whole vibe explained:
lvm(8),lvm.conf(5),lvmconfig(8),lvmdevices(8)
- PV girlies π«Ά (physical volumes, the raw storage besties) β
pvchange(8),pvck(8),pvcreate(8),pvdisplay(8),pvmove(8),pvremove(8),pvresize(8),pvs(8),pvscan(8) - VG icons π (volume groups, and yes that includes this page) β
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) - LV baddies π
(logical volumes, where the actual data lives) β
lvcreate(8),lvchange(8),lvconvert(8),lvdisplay(8),lvextend(8),lvreduce(8),lvremove(8),lvrename(8),lvresize(8),lvs(8),lvscan(8) - the reporting / plumbing / utility squad π§ β
lvm-fullreport(8),lvm-lvpoll(8),blkdeactivate(8),lvmdump(8) - the daemons, the locks, the bridge, the fs adjuster π₯ β
dmeventd(8),lvmpolld(8),lvmlockd(8),lvmlockctl(8),lvmdbusd(8),fsadm(8) - the deep-lore section 7 reads π (systemid, reporting, cache, raid, thin, vdo, autoactivation) β
lvmsystemid(7),lvmreport(7),lvmcache(7),lvmraid(7),lvmthin(7),lvmvdo(7),lvmautoactivation(7)
not me telling you to read ~60 man pages like it's a reading list π but fr fr, each one is short and they all slap. iykyk π
and that's the whole page, bestie!! you ate π this absolute banger of a page was brought to you by Red Hat, Inc. β it's LVM TOOLS 2.03.44(2), dated 2026-10-27, and if you ever forget where you are, you're in the VGDISPLAY(8) section, section 8, exactly where you belong β¨π¦ periodt.
π¦ 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