PVDISPLAY(8)

๐ŸŒธ PVDISPLAY(8) ๐ŸŒธ

section 8 of the System Manager's Manual, bestie. yes we're in the big-girl section. ๐Ÿ’…


๐Ÿ’– NAME ๐Ÿ’–

pvdisplay โ€” Display various attributes of physical volume(s) โœจ

(it says "(s)" because it's shy about plurals. it means all of them. every single one. nosy queen behavior and we love her for it ๐Ÿซถ)

๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

okay so this is the shape of it, and then a whole wall of every flag she takes. do not panic at the volume of dashes, we get to each one, one at a time, together ๐Ÿ’…

pvdisplay option_args
       [ option_args ]
       [ position_args ]

        --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
     -m|--maps
        --nameprefixes
        --noheadings
        --nohints
        --nolocking
        --nosuffix
     -o|--options String
        --profile String
     -q|--quiet ...
        --readonly
        --reportformat basic|json|json_std
        --rows
        --segments
     -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

like. that's a LOT of options. and every single one of them gets explained, no cap, we're not skipping a single one ๐Ÿ™ˆ


๐ŸŒŸ DESCRIPTION ๐ŸŒŸ

Okay so pvdisplay shows you the attributes of PVs โ€” that's physical volumes for anyone new here โ€” like the size, the physical extent size, the space used for the VG descriptor area, etc. it's giving full background check on your volume, it's giving investigative journalist ๐Ÿ”โœจ

but bestie, hear me out: pvs(8) is the preferred alternative. and the reason is so valid โ€” it shows the same information and more, using a more compact and configurable output format. so like, same facts, cuter packaging, way more slots to customize. she ate and left no crumbs ๐Ÿ‘‘

โœจ USAGE โœจ

here's every actual way you can run this thing. each one hits different, pick your fighter ๐ŸŽ€

pvdisplay (the classic, the origin, the moment)

pvdisplay
       [ -m|--maps ]
       [ -s|--short ]
       [ COMMON_OPTIONS ]
       [ PV|Tag ... ]

pvdisplay -C|--columns

Display output in columns like pvs.
pvdisplay -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 ]
       [ PV|Tag ... ]

pvdisplay -c|--colon

Generate colon separated output.
pvdisplay -c|--colon
       [ COMMON_OPTIONS ]
       [ PV|Tag ... ]

๐Ÿซถ Common options for command

these ones apply to the command itself, and yes they're the same crew every time:

[ --foreign ]
[ --ignorelockingfailure ]
[ --readonly ]
[ --reportformat basic|json|json_std ]
[ --segments ]
[ --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 are the lvm-wide besties that show up basically everywhere in the family reunion:

[ -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 shape of the command and all the ways to call her ๐Ÿ’– the actual per-flag breakdown is coming next, so hold that thought bestie, we're not done being obsessed with her yet ๐ŸŒˆ

๐Ÿ’– OPTIONS ๐Ÿ’–

  • --aligned โ€” use this with --separator to align the output columns. โœจ
  • -a, --all โ€” show information about devices that have not been initialized by LVM, i.e. they are not PVs. ๐Ÿ‘€
  • --binary โ€” 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). ๐Ÿ’…
  • -c, --colon โ€” generate colon separated output for easier parsing in scripts or programs. Also see pvs(8) which provides considerably more control over the output. The values are:
    • Physical volume device name
    • Volume group name
    • Physical volume size in sectors
    • Internal physical volume number (obsolete)
    • Physical volume status
    • Physical volume (not) allocatable
    • Current number of logical volumes on this physical volume
    • Physical extent size in kilobytes
    • Total number of physical extents
    • Free number of physical extents
    • Allocated number of physical extents
  • -C, --columns โ€” display output in columns. The equivalent of pvs(8). Options listed are the same as options given in pvs(8). ๐ŸŒˆ
  • --commandprofile String โ€” the command profile to use for command configuration. See lvm.conf(5) for more information about profiles. ๐ŸŽ€
  • --config String โ€” config settings for the command. These override lvm.conf(5) settings. The String arg uses the same format as lvm.conf(5), or may use section/field syntax. See lvm.conf(5) for more information about config. ๐Ÿฆ‹
  • --configreport log|vg|lv|pv|pvseg|seg โ€” see lvmreport(7). ๐Ÿ’œ
  • -d, --debug ... โ€” 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). ๐Ÿ”ฅ
  • --devices PV โ€” restricts the devices that are visible and accessible to the command. Devices not listed will appear to be missing. This option can be repeated, or 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 the lvmdevices(8) command. This overrides the lvm.conf(5) devices/devicesfile and devices/use_devicesfile settings. ๐Ÿ“
  • --driverloaded y|n โ€” if set to no, the command will not attempt to use device-mapper. For testing and debugging. ๐Ÿงช
  • --foreign โ€” report/display foreign VGs that would otherwise be skipped. See lvmsystemid(7) for more information about foreign VGs. ๐ŸŒ
  • --headings none|abbrev|full|0|1|2 โ€” type of headings to use in report output. none or 0: no headings. abbrev or 1: column name abbreviations. full or 2: full column names. โœจ
  • -h, --help โ€” display help text. ๐Ÿ†˜
  • --ignorelockingfailure โ€” allows a command to continue with read-only metadata operations after locking failures. ๐Ÿ”“
  • --journal String โ€” record information in the systemd journal. This information is in addition to information enabled by the lvm.conf log/journal setting. 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 to lvmlockd. See lvmlockd(8) for more information. ๐Ÿ”
  • --logonly โ€” suppress command report and display only log report. ๐Ÿ“
  • --longhelp โ€” display long help text. ๐Ÿ“š
  • -m, --maps โ€” display the mapping of physical extents to LVs and logical extents. ๐Ÿ—บ๏ธ
  • --nameprefixes โ€” 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). ๐Ÿท๏ธ
  • --noheadings โ€” suppress the headings line that is normally the first line of output. Useful if grepping the output. ๐Ÿ™ˆ
  • --nohints โ€” do not use the hints file to locate devices for PVs. A command may read more devices to find PVs when hints are not used. The command will still perform standard hint file invalidation where appropriate. ๐Ÿ’ก
  • --nolocking โ€” disable locking. Use with caution, concurrent commands may produce incorrect results. โš ๏ธ
  • --nosuffix โ€” suppress the suffix on output sizes. Use with --units (except h and H) if processing the output. ๐Ÿ”ข
  • -o, --options String โ€” comma-separated, ordered list of fields to display in columns. String arg syntax is: [+|-|#]Field1[,Field2 ...] The prefix + will append the specified fields to the default fields, - will remove the specified fields from the default fields, and # will compact specified fields (removing them when empty for all rows.) Use -o help to view the list of all available fields. Use separate lists of fields to add, remove or compact by repeating the -o option: -o+field1,field2 -o-field3,field4 -o#field5. These lists are evaluated from left to right. Use field name lv_all to view 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. See the lvm.conf(5) report section for more config options. See lvmreport(7) for more information about reporting. ๐Ÿงฎ
  • --profile String โ€” an alias for --commandprofile or --metadataprofile, depending on the command. ๐Ÿ’ซ
  • -q, --quiet ... โ€” suppress output and log messages. Overrides --debug and --verbose. Repeat once to also suppress any prompts with answer 'no'. ๐Ÿคซ
  • --readonly โ€” prevent the command from making changes, including activation and metadata updates. (See --permission r for read only LVs.) ๐Ÿ”’
  • --reportformat basic|json|json_std โ€” overrides current output format for reports which is defined globally by the report/output_format setting in lvm.conf(5). basic 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. json produces report output in JSON format. json_std produces report output in JSON format which is more compliant with the JSON standard. See lvmreport(7) for more information. ๐Ÿ“Š
  • --rows โ€” output columns as rows. โ†”๏ธ
  • --segments โ€” ngl bestie, the original man page gives absolutely no description here, it just says --segments and moves on. The silence is loud. ๐Ÿ’€
  • -S, --select String โ€” select objects for processing and reporting based on specified criteria. The criteria syntax is described by --select help and lvmreport(7). For reporting commands, one row is displayed for each object matching the criteria. See --options help 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. ๐ŸŽฏ
  • --separator String โ€” string to use to separate each column. Useful if grepping the output. ๐Ÿช„
  • --shared โ€” 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. ๐Ÿค
  • -s, --short โ€” only display the size of the given PVs. ๐Ÿ“
  • -O, --sort String โ€” comma-separated ordered list of columns to sort by. Replaces the default selection. Precede any column with - for a reverse sort on that column. ๐Ÿ”„
  • -t, --test โ€” 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. ๐Ÿงช
  • --unbuffered โ€” produce output immediately without sorting or aligning the columns properly. ๐Ÿš€
  • --units [Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E โ€” 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. ๐Ÿ“
  • --unquoted โ€” when used with --nameprefixes, output values in the field=value pairs are not quoted. โœ‚๏ธ
  • -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. ๐Ÿท๏ธ
  • -y, --yes โ€” do not prompt for confirmation interactively but always assume the answer yes. Use with extreme caution. (For automatic no, see -qq.) โš ๏ธ

๐Ÿซถ VARIABLES ๐Ÿซถ

  • 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] ...
  • Tag โ€” Tag name. See lvm(8) for information about tag names and using tags in place of a VG, LV or PV. ๐Ÿท๏ธ
  • String โ€” See the option description for information 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 refer to 1024. The default input unit is specified by letter, followed by |UNIT. UNIT represents 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. (This should not be confused with the output control --units, where capital letters mean multiple of 1000.) ๐Ÿ“

๐ŸŒธ ENVIRONMENT VARIABLES ๐ŸŒธ

okay so bestie, quick tea on the environment variables ๐Ÿ’– โ€” everything lvm actually reads from your environment is documented over in lvm(8), so that's where you go to get the full lore. No secrets here.

But here's the cute part: pretty much anywhere a command is being dramatic and demanding a required VG parameter, you can usually just hand it LVM_VG_NAME instead. Like, substitute it in. That's it. That's the trick. ๐Ÿ’…


๐Ÿ’œ SEE ALSO ๐Ÿ’œ

the whole extended lvm friend group, in actual reading order:

the LVM mothership & config crew

the physical volume girlies (you are here, literally)

the volume group squad

the logical volume icons โœจ

the utilities that do the most

the daemons & sidekicks

section 7 supremacy โ€” the deep lore


bestie that's the WHOLE page, we ate and left zero crumbs ๐Ÿ“ every single reference is still there, untouched, character for character โ€” I would never do the manual dirty like that.

and that's a wrap! ๐Ÿ‘‘ this little masterpiece is brought to you by Red Hat, Inc., stamped LVM TOOLS 2.03.44(2), dated 2026-10-27, and filed under PVDISPLAY(8). go forth and read your physical volumes, my gorgeous little sysadmin ๐Ÿฆ‹๐Ÿ’– periodt.

๐Ÿ“ฆ where this page comes from