LVMCONFIG(8)
LVMCONFIG(8) β the manual page, bestie edition π
okay so you wanna know about lvmconfig? say less. this is part 1, we're doing NAME, SYNOPSIS, DESCRIPTION, and USAGE. no cap.
β¨ NAME β¨
lvmconfig β Display and manipulate configuration information π
wait that's literally it? yes bestie, that's the whole name section. iconic.
πΈ SYNOPSIS πΈ
okay so here's the vibe of how you call it:
lvmconfig option_args
[ option_args ]
[ position_args ]
--atversion String
--commandprofile String
--config String
-d|--debug ...
--devices PV
--devicesfile String
--driverloaded y|n
--edit String
-f|--file String
-h|--help
--ignoreadvanced
--ignorelocal
--ignoreunsupported
--input String
--journal String
-l|--list
--lockopt String
--longhelp
--mergedconfig
--metadataprofile String
--nohints
--nolocking
--output String
--profile String
-q|--quiet ...
--showdeprecated
--showunsupported
--sinceversion String
-t|--test
--typeconfig current|default|diff|full|list|missing|new|
profilable|profilable-command|profilable-metadata
--unconfigured
--validate
--valuesonly
-v|--verbose ...
--version
--withcomments
--withgeneralpreamble
--withlocalpreamble
--withspaces
--withsummary
--withversions
-y|--yes
no cap, that's the whole option list for the synopsis. every single flag is there. π―
π¦ DESCRIPTION π¦
okay so listen up: lvmconfig, lvm config, and lvm dumpconfig (that last one is literally only there for compatibility reasons, and it's being phased out π) β all of these produce formatted output from the LVM configuration tree.
where does that config data even come from? bestie, it's from lvm.conf(5) and command line settings from --config. periodt.
the way that config tree just gives you formatted output? yeah. main character energy.
π οΈ USAGE π οΈ
here's how you actually use it. multiple forms, multiple vibes.
π
the classic lvmconfig run
lvmconfig
[ -f|--file String ]
[ -l|--list ]
[ --atversion String ]
[ --ignoreadvanced ]
[ --ignorelocal ]
[ --ignoreunsupported ]
[ --mergedconfig ]
[ --metadataprofile String ]
[ --showdeprecated ]
[ --showunsupported ]
[ --sinceversion String ]
[ --typeconfig current|default|diff|full|list|missing|new|
profilable|profilable-command|profilable-metadata ]
[ --unconfigured ]
[ --validate ]
[ --valuesonly ]
[ --withgeneralpreamble ]
[ --withlocalpreamble ]
[ --withsummary ]
[ --withversions ]
[ COMMON_OPTIONS ]
[ String ... ]
lowkey this is the main form. you got your file flag, your list flag, all the --ignore* and --show* flags, --typeconfig with all those options, and then COMMON_OPTIONS plus String ... at the end. πββοΈ
π edit settings in lvm config file
lvmconfig --edit String
[ -f|--file String ]
[ --edit String ]
[ COMMON_OPTIONS ]
this one edits settings directly in the lvm config file. you pass a String to --edit and you're in. β¨
π read a config file and write to output file or stdout
lvmconfig --input String
[ --edit String ]
[ --output String ]
[ COMMON_OPTIONS ]
this one reads a config file and writes somewhere β either to an output file or just to stdout. --input takes a String, and you can also throw in --edit and --output. read and write, slay. π₯
π common options for command
Common options for command:
[ --withcomments ]
[ --withspaces ]
these two are your command-level common options. --withcomments and --withspaces. cute.
π common options for lvm
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 ]
and these are the common options for lvm itself. debug, help, quiet, test, verbose, yes, commandprofile, config, devices, devicesfile, driverloaded, journal, lockopt, longhelp, nohints, nolocking, profile, version. no cap, every single one is here. π
okay bestie, that's part 1. don't go anywhere, there's more coming ππ
β¨ OPTIONS β¨
Okay bestie, this is the big one β every single flag this icon supports. Buckle up π
--atversion Stringβ drop an LVM version inx.y.zformat, wherexis major,yis minor andzis patchlevel (like2.2.106). When the config gets displayed, only the settings that this LVM version actually recognizes get considered. Lowkey the whole point: you can peek at a config that a certain LVM version understands, one with no newer settings in it β so LVM won't hit you with warning messages while checking the config. π¦--commandprofile Stringβ the command profile to use for command configuration. Seelvm.conf(5)for the whole tea on profiles.--config Stringβ config settings for the command, and yep, these override thelvm.conf(5)settings. TheStringarg takes the same format aslvm.conf(5), or it can usesection/fieldsyntax. Again,lvm.conf(5)has the details about config. π-d,--debug ...β set the debug level. Repeat it 1 to 6 times to crank up the detail of messages going to the log file and/or syslog (if syslog is configured). More repeats = more yapping β¨--devices PVβ restricts which devices the command can see and touch. Anything not listed just looks missing. Repeat the option, or hand it a comma-separated list of devices. Heads up: this overrides the devices file. π--devicesfile Stringβ a file listing the devices LVM should use. It has to exist in/etc/lvm/devices/and it's managed with thelvmdevices(8)command. This one overrides thelvm.conf(5)devices/devicesfileanddevices/use_devicesfilesettings.--driverloaded y|nβ if you set it to no, the command won't even try to use device-mapper. For testing and debugging, bestie π§--edit Stringβ edit or remove a setting in an LVM config file. You specify the setting asSection/Field=Value. Wanna nuke a setting instead? UseSection/Field=-. Repeat the option to edit multiple settings at once. Slay π-f,--file Stringβ write the output to the named file.-h,--helpβ display help text. The classic.--ignoreadvancedβ excludes advanced configuration settings from the output.--ignorelocalβ ignore the local section. That local section is supposed to live in thelvmlocal.conffile, and it should hold config settings specific to the local host β stuff you do not want getting copied over to other hosts. No cap. π--ignoreunsupportedβ exclude unsupported configuration settings from the output. These are settings that are either only for debugging and development, or whose support isn't finished yet and aren't meant for production. Fr fr: thecurrentanddifftypes already include unsupported settings in their output by default, and all the other types ignore unsupported settings.--input Stringβ read the configuration from the specified input file.--journal Stringβ record info in the systemd journal. This is on top of whatever thelvm.conflog/journalsetting already enables. The options are:command:record info about the command.output:record the default command output.debug:record full command debugging. π₯
-l,--listβ print a list of config settings instead of the structured config settings tree. Used with no other options, it's the exact same as--typeconfig list --withsummary.--lockopt Stringβ used to pass options for special cases over tolvmlockd. Seelvmlockd(8)for more info.--longhelpβ display long help text. (The long one, bestie, we love a thorough queen π)--mergedconfigβ when the command runs with--configand/or--commandprofile(or with theLVM_COMMAND_PROFILEenvironment variable),--profile, or--metadataprofile, this merges all the contents of the "config cascade" before displaying it. Without merging, you only see the configuration sitting at the front of the cascade.lvm.conf(5)is where the config details live. π--metadataprofile Stringβ the metadata profile to use for command configuration. Yep,lvm.conf(5)has the profile lore.--nohintsβ don't use the hints file to locate devices for PVs. Without hints, a command may need to read more devices to find PVs. Don't worry though: the command will still do standard hint file invalidation where it's appropriate. π«Ά--nolockingβ disable locking. Use with caution, because concurrent commands may produce incorrect results. β οΈ Not a vibe to do casually.--output Stringβ write lvm configuration to the specified output file. Used together with--inputto read configuration from one file, optionally apply edits, and write the configuration out to another file. Chef's kiss workflow π--profile Stringβ an alias for--commandprofileor--metadataprofile, depending on which command you're running.-q,--quiet ...β suppress output and log messages. This overrides--debugand--verbose. Repeat it once to also suppress any prompts with the answerno. π--showdeprecatedβ include deprecated configuration settings in the output. These settings get deprecated after a certain version. If you specified a concrete version with--atversion, deprecated settings are automatically included whenever the version you gave is lower than the version in which the settings were deprecated. And for real: thecurrentanddifftypes include deprecated settings in their output by default, while all the other types ignore deprecated settings.--showunsupportedβ include unsupported configuration settings in the output. These settings are either only for debugging or development, or their support isn't complete yet and they're not meant for production. Same deal as before: thecurrentanddifftypes include unsupported settings in their output by default, and all the other types ignore unsupported settings. π--sinceversion Stringβ specify an LVM version inx.y.zformat, wherexis the major version,yis the minor version andzis the patchlevel (like2.2.106). As of right now this option only applies with--typeconfig new, to display every configuration setting introduced since the version you gave. β¨-t,--testβ run in test mode. Commands won't update metadata. How's it implemented? By disabling all metadata writing but still returning success to the calling function anyway. Heads up: this can lead to weird error messages in multi-stage operations if a tool relies on reading back metadata it thinks has changed β but hasn't. π--typeconfig current|default|diff|full|list|missing|new|profilable|profilable-command|profilable-metadataβ okay this one is a whole buffet, let's go one by one:currentprints the config settings that would be applied to an LVM command (assuming the command doesn't override them on the command line). It includes: settings that were modified in lvm config files, settings that get their default values from config files, and default settings that have been uncommented in config files.defaultprints all settings with their default values. Changes made in lvm config files are not reflected in the output. Some settings get their defaults internally, and those are printed as comments. Other settings get their defaults from config files, and those are not printed as comments.diffprints only the config settings that have been modified from their default values in config files β aka the difference betweencurrentanddefault.fullprints every setting uncommented and set to the current value, i.e. exactly how an LVM command would use it. That covers settings modified in config files, settings that usually get defaults internally, and settings that get defaults from config files.listprints all config names, no values.missingprints settings that are missing from the lvm config files. A missing setting that usually gets its default from config files is printed uncommented and set to the internal default. Settings that get their default internally and aren't set in config files are printed commented, with the internal default.newprints config settings that were added since the lvm version specified by--sinceversion. They're printed with their default values.profilableprints settings with their default values that can be set from a profile.profilable-commandprints settings with their default values that can be set from a command profile.profilable-metadataprints settings with their default values that can be set from a metadata profile.- Also, go read
lvm.conf(5). π
--unconfiguredβ internal option used for generating config file during build. (Behind the scenes behavior, don't worry about it π«£)--validateβ validate the current configuration that's being used, and exit with the appropriate return code. The validation is done only for the configuration at the front of the "config cascade". To validate the whole merged configuration tree, throw--mergedconfigin there too. And yes, the validation happens even iflvm.conf(5)config/checksis disabled. π--valuesonlyβ when printing config settings, print only the values, without the keys.-v,--verbose ...β set verbose level. Repeat it 1 to 4 times to increase the detail of messages sent to stdout and stderr. π£οΈ--versionβ display version information.--withcommentsβ display a full comment for each configuration node. For deprecated settings, it also displays comments about the deprecation. π¬--withgeneralpreambleβ include the general config file preamble.--withlocalpreambleβ include the local config file preamble.--withspacesβ where appropriate, add more spaces in the output for better readability. Aesthetic and functional π β¨--withsummaryβ display a one line comment for each configuration node.--withversionsβ also display a comment containing the version of introduction for each configuration node. If the setting is deprecated, it also displays the version since which it's deprecated. π¦-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 π
bestie, these are the lil building blocks that show up all over the option descriptions π
- String β the option description itself tells you what that string is supposed to contain. Go read it, it ate π
Size[UNIT]β okay so this one's an input number, and it can come with an optional unit tagged on. Plot twist: input units are ALWAYS base two, no matter how you capitalize them π sokandKare literally the same thing, both mean1024. no cap.
The default input unit gets spelled out as a letter, followed by |UNIT. And here's the full roster of possible input UNITs, memorized and slay:
b|Bβ bytes πs|Sβ sectors of512bytesk|Kβ KiB β¨m|Mβ MiBg|Gβ GiBt|Tβ TiBp|Pβ PiBe|Eβ EiB π
β οΈ do NOT get this confused with the output control--units, bestie. Over there, capital letters mean a multiple of1000. Different vibe entirely, okay? π
πΏ ENVIRONMENT VARIABLES πΏ
for the whole tea on environment variables that lvm uses, go peek at lvm(8) π«Ά
and like, a lil example that's lowkey iconic: LVM_VG_NAME can generally be swapped in for a required VG parameter π
π SEE ALSO π
the whole friend group, fr fr β go say hi πΈ
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 made it to the end, main character energy fr. π
this little masterpiece is brought to you by Red Hat, Inc. β it's LVM TOOLS 2.03.44(2), dated 2026-10-27, and the page itself is LVMCONFIG(8). β¨ go forth and configure, you gorgeous nerd π¦π
π¦ 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