LVDISPLAY(8)

๐Ÿ’– lvdisplay(8) โ€” the glow-up your logical volumes deserve ๐Ÿ’–

okay so bestie. you're here because you want the tea on your LVs (logical volumes), and lvdisplay is literally the girl who spills it. this is a System Manager's Manual page, section 8, and it's giving "I know everything about your storage stack and I'm not gatekeeping." ๐Ÿซถ


โœจ NAME โœจ

lvdisplay โ€” Display information about a logical volume

like. the name says it all. display. information. about a logical volume. slay. ๐Ÿ‘‘


๐ŸŒธ SYNOPSIS ๐ŸŒธ

here's how you ask her things. she takes option_args, then optionally more option_args, then optionally position_args:

lvdisplay option_args
       [ option_args ]
       [ position_args ]

and here is the whole entire menu of option args, no crumbs left behind, every single one of them, exactly as written:

        --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
     -H|--history
        --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
     -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

no cap, that's all of them, and yes every ... and every String and every log|vg|lv|pv|pvseg|seg is exactly where it belongs. ๐Ÿ’…


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

okay so what does she actually do. lvdisplay shows the attributes of LVs, like size, read/write status, snapshot information, etc. that's it. that's the whole vibe. your LV walks in, she reads her for filth (affectionately), you learn her size and whether she's read/write and what her snapshots are up to. ๐ŸŒธ

but!! plot twist!! lvs(8) is a preferred alternative that shows the same information and more, using a more compact and configurable output format. so like, lvs is the newer sister with a better wardrobe. lvdisplay still ate though โ€” she's just the classic. iykyk. โœจ


๐ŸŽ€ USAGE ๐ŸŽ€

here's the receipts. four whole ways to call her, and we're doing all of them.

the classic: just lvdisplay

lvdisplay
       [ -m|--maps ]
       [ COMMON_OPTIONS ]
       [ VG|LV|Tag ... ]

โ€”

columns mode: display output in columns like lvs

lvdisplay -C|--columns
       [ -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|LV|Tag ... ]

โ€”

colon mode: generate colon separated output

lvdisplay -c|--colon
       [ COMMON_OPTIONS ]
       [ VG|LV|Tag ... ]

โ€”

common options for command

these are the ones that ride or die with basically every command, periodt:

       [ -a|--all ]
       [ -H|--history ]
       [ --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 girlies, the ones who show up to every party no matter what:

       [ -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 ]

bestie heads up: this page keeps going. we've got the whole big options breakdown and the SEE ALSO coming up next, so don't log off on me. ๐Ÿซถ

โœจ OPTIONS โœจ

Okay bestie, this is the big one โ€” the option buffet ๐Ÿ“. Every single flag this page takes, no skips, no cap. Grab a snack.

  • --aligned โ€” pair it with --separator and your output columns get all lined up neat and pretty. โœจ
  • -a, --all โ€” shows you the internal LVs too ๐Ÿ’…. These are the pieces that make up normal LVs (think mirrors) โ€” they're not independently accessible, so like, you can't mount them. They're backstage, not main character.
  • --binary โ€” instead of the cute descriptive words, columns that have exactly two valid values to report spit out "0" or "1". (The "unknown" value doesn't count here โ€” that one just means the value couldn't be determined, periodt.)
  • -c, --colon โ€” colon-separated output, so your scripts and programs can parse it without drama ๐Ÿ˜Œ. Also peep lvs(8) if you want considerably more control over the output. The values go like this, in order:
    1. Logical volume name
    2. Volume group name
    3. Logical volume access
    4. Logical volume status
    5. Internal logical volume number
    6. Open count of logical volume
    7. Logical volume size in sectors
    8. Current logical extents associated to logical volume
    9. Allocated logical extents of logical volume
    10. Allocation policy of logical volume
    11. Read ahead sectors of logical volume
    12. Major device number of logical volume
    13. Minor device number of logical volume
  • -C, --columns โ€” display the output in columns. It's literally the equivalent of lvs(8), and the options you can list here are the same options as in lvs(8).
  • --commandprofile String โ€” the command profile to use for command configuration. Wanna know more? lvm.conf(5) has the tea on profiles.
  • --config String โ€” config settings for the command, and these override whatever lvm.conf(5) set. The String arg uses the same format as lvm.conf(5), or it can use section/field syntax. Again: lvm.conf(5) for the details on config. ๐Ÿซถ
  • --configreport log|vg|lv|pv|pvseg|seg โ€” see lvmreport(7).
  • -d, --debug ... โ€” set the debug level. Repeat it 1 to 6 times to crank up the detail of messages sent to the log file and/or syslog (if syslog is configured).
  • --devices PV โ€” restricts which devices are visible and accessible to the command. Devices you don't list will look like they're missing ๐Ÿ‘ป. You can repeat this option, or just hand it a comma-separated list of devices. It overrides the devices file.
  • --devicesfile String โ€” a file listing the devices LVM should use. The file has to exist in /etc/lvm/devices/ and it's managed with the lvmdevices(8) command. This overrides the lvm.conf(5) devices/devicesfile and devices/use_devicesfile settings.
  • --driverloaded y|n โ€” set it to no and the command won't even try to use device-mapper. It's for testing and debugging, bestie ๐Ÿ”ง.
  • --foreign โ€” report/display foreign VGs that would otherwise get skipped. Peep lvmsystemid(7) for more about 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 โ€” display help text ๐ŸŽ€.
  • -H, --history โ€” include historical LVs in the output. (Heads up: this does literally nothing unless LVs were removed while lvm.conf(5) metadata/record_lvs_history was enabled.)
  • --ignorelockingfailure โ€” lets a command keep going with read-only metadata operations after locking failures.
  • --journal String โ€” record info in the systemd journal ๐Ÿ““. This is in addition to whatever the lvm.conf log/journal setting already enables. command: record info about the command. output: record the default command output. debug: record the full command debugging.
  • --lockopt String โ€” passes options for special cases over to lvmlockd. See lvmlockd(8) for more.
  • --logonly โ€” suppress the command report and display only the log report.
  • --longhelp โ€” display long help text.
  • -m, --maps โ€” display the mapping of logical extents to PVs and physical extents ๐Ÿ—บ๏ธ. And if you wanna go the other way (physical extents โ†’ logical extents), run:
pvs --segments -o+lv_name,seg_start_pe,segtype
  • --nameprefixes โ€” slaps an "LVM2_" prefix plus the field name onto the output. Super useful with --noheadings to produce a list of field=value pairs you can use to set environment variables (like, say, in udev rules).
  • --noheadings โ€” suppresses the headings line that's normally the first line of output. Chef's kiss 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 appropriate, don't worry.
  • --nolocking โ€” disables locking.
โš ๏ธ Use with caution! Concurrent commands may produce incorrect results. ๐Ÿ’€
  • --nosuffix โ€” suppresses the suffix on output sizes. If you're processing the output, use it with --units โ€” except for h and H.
  • -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 specified fields to the default fields, - removes the specified fields from the default fields, and # compacts the specified fields (removing them when they're empty for all rows). Use -o help to view the list of all available fields. Wanna add, remove or compact? Repeat the -o option with separate lists, like -o+field1,field2 -o-field3,field4 -o#field5. These lists get evaluated left to right. Use field name lv_all to see all LV fields, vg_all for all VG fields, pv_all for all PV fields, seg_all for all LV segment fields, and pvseg_all for all PV segment fields. See the lvm.conf(5) report section for more config options, and lvmreport(7) for more about reporting. So many fields, so little time ๐Ÿ˜ญ
  • --profile String โ€” an alias for --commandprofile or --metadataprofile, depending on the command.
  • -q, --quiet ... โ€” suppress output and log messages. It overrides --debug and --verbose. Repeat it once and it also suppresses any prompts with 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 defined globally by the report/output_format setting in lvm.conf(5). basic is the original format with columns and rows โ€” and if there's more than one report per command, each report gets prefixed with the report name so you can tell them apart. json produces report output in JSON format. json_std produces report output in JSON format that's more compliant with the JSON standard. lvmreport(7) has more ๐ŸŒˆ
  • --rows โ€” output columns as rows.
  • --segments โ€” use default columns that emphasize segment information.
  • -S, --select String โ€” select objects for processing and reporting based on criteria you specify. That criteria syntax is described by --select help and lvmreport(7). For reporting commands, one row shows up for each object matching the criteria. See --options help for selectable object fields. Rows can be displayed 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 picks which items to process.
  • --separator String โ€” the string used to separate each column. Useful if you're grepping the output.
  • --shared โ€” report/display shared VGs that would otherwise get skipped when lvmlockd isn't being used on the host. See lvmlockd(8) for more about shared VGs.
  • -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 for a reverse sort on that column.
  • -t, --test โ€” run in test mode. Commands won't update metadata ๐Ÿงช. It works by disabling all metadata writing but still returning success to the calling function. Fair warning: this 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.
  • --unbuffered โ€” produce output immediately, without sorting or properly aligning the columns. Chaos mode, kind of.
  • --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 a '<' 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. And yes, you can do custom units โ€” like --units 3M. ๐Ÿ‘‘
  • --unquoted โ€” when used with --nameprefixes, the values in the field=value pairs aren't quoted.
  • -v, --verbose ... โ€” set the verbose level. Repeat it 1 to 4 times to crank up the detail of messages sent to stdout and stderr.
  • --version โ€” display version information.
  • -y, --yes โ€” don't prompt for confirmation interactively, just always assume the answer is yes.
๐Ÿ’€ Use with extreme caution, bestie. (For automatic no, see -qq.)

๐ŸŒธ VARIABLES ๐ŸŒธ

The lil building blocks this page works with. All of them, right here:

  • VG โ€” Volume Group name. See lvm(8) for valid names.
  • LV โ€” Logical Volume name. See lvm(8) for valid names. An LV positional arg generally includes the VG name and the LV name, like VG/LV.
  • Tag โ€” Tag name. See lvm(8) for info about tag names and using tags in place of a VG, LV or PV.
  • String โ€” see the option description for info about what the string contains.
  • Size[UNIT] โ€” Size is an input number that accepts an optional unit. Input units are always treated as base two values, no matter the capitalization โ€” so '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|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 mix this up with the output control --units, where capital letters mean a multiple of 1000! Different vibe, different rules.)

๐ŸŒฟ ENVIRONMENT VARIABLES ๐ŸŒฟ

okay bestie, plot twist: lvdisplay doesn't really have its own lil stash of env vars, so we're gonna go look at the big sibling page instead ๐Ÿ’–

peep lvm(8) for the whole rundown on environment variables that lvm uses overall. and the example that we literally always bring up: LVM_VG_NAME can generally be swapped in for a required VG parameter ๐ŸŽ€ so instead of typing the VG name every single time, the env var can just... carry it. iconic behaviour honestly.

ngl, that "generally" is doing some heavy lifting in that sentence, so don't treat it as an absolute law of the universe โ€” it's the vibe, not a guarantee ๐Ÿ’…

๐Ÿ”ฎ SEE ALSO ๐Ÿ”ฎ

the friend group!!! ๐Ÿซถ this is the extended universe of lvm pages, so if lvdisplay wasn't the one who could answer your question, one of these cuties almost definitely can:

fr fr, if you're stuck on anything lv-related, one of these pages is holding the answer and you will find it ๐ŸŒˆ


and that's the whole page bestie!! ๐Ÿ’œ you made it to the end, main character energy for real ๐ŸŒธ

this gorgeous thing was brought to you by Red Hat, Inc., from LVM TOOLS 2.03.44(2), with the date stamp 2026-10-27 โ€” periodt ๐Ÿ’…โœจ go forth and inspect your logical volumes, lvdisplay is rooting for you ๐ŸŽ€๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from