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 --separator so 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 at vgs(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 of vgs(8), and the options you can throw at it are the same ones vgs(8) takes. iconic behavior πŸ‘‘
  • --commandprofile String β€” the command profile to use for command configuration. want the full lore? check lvm.conf(5) for everything about profiles.
  • --config String β€” config settings just for this command. these override whatever lvm.conf(5) says. the String arg uses the same format as lvm.conf(5), or you can use the section/field syntax. again, lvm.conf(5) has the details πŸ’œ
  • --configreport log|vg|lv|pv|pvseg|seg β€” go read lvmreport(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 πŸ”
  • --devices PV β€” 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.
  • --devicesfile String β€” a file that lists the devices LVM should use. it has to already exist in /etc/lvm/devices/, and you manage it with the lvmdevices(8) command. this overrides the lvm.conf(5) settings devices/devicesfile and devices/use_devicesfile.
  • --driverloaded y|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 🌈
  • --headings none|abbrev|full|0|1|2 β€” picks the type of headings used in report output.
    • none or 0: no headings at all
    • abbrev or 1: column name abbreviations
    • full or 2: 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.
  • --journal String β€” records info into the systemd journal. this is in addition to whatever the lvm.conf log/journal setting already turns on.
    • command: record information about the command
    • output: record the default command output
    • debug: record full command debugging
  • --lockopt String β€” used to pass options for special cases over to lvmlockd. see lvmlockd(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 --noheadings if you want a list of field=value pairs 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 (except h and H) if you're processing the output.
  • -o, --options String β€” 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 help to see the list of all the available fields πŸ‘€
    • want to add, remove or compact? just repeat the -o option with separate lists: -o+field1,field2 -o-field3,field4 -o#field5. these lists get evaluated left to right.
    • field name lv_all shows all LV fields, vg_all all VG fields, pv_all all PV fields, seg_all all LV segment fields, and pvseg_all all PV segment fields.
    • the lvm.conf(5) report section has more config options, and lvmreport(7) has more about reporting πŸ’œ
  • --profile String β€” an alias for --commandprofile or --metadataprofile, depending on the command πŸ¦‹
  • -q, --quiet ... β€” suppresses output and log messages. overrides --debug and --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.)
  • --reportformat basic|json|json_std β€” overrides the current output format for reports, which is normally set globally by the report/output_format setting in lvm.conf(5).
    • basic is 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.
    • json gives you report output in JSON format.
    • json_std gives 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, --select String β€” selects objects for processing and reporting based on the criteria you give it. the criteria syntax is described by --select help and in lvmreport(7). for reporting commands, you get one row displayed for each object that matches the criteria. --options help shows you the selectable object fields. rows can also be shown with an extra "selected" field (-o selected) showing 1 if the row matches the selection and 0 otherwise. for non-reporting commands that process LVM entities, the selection is what chooses the items to process πŸ’…
  • --separator String β€” the string used to separate each column. useful if you're grepping the output πŸ”Ž
  • --shared β€” reports/displays shared VGs that would otherwise get skipped when lvmlockd isn'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, --sort String β€” 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 the field=value pairs 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. UNIT represents the other possible input units:
    • b|B is bytes
    • s|S is sectors of 512 bytes
    • k|K is KiB
    • m|M is MiB
    • g|G is GiB
    • t|T is TiB
    • p|P is PiB
    • e|E is 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.



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