PVCHANGE(8)

πŸ’– NAME πŸ’–

pvchange β€” bestie, this one changes attributes of physical volume(s) ✨ (and yeah, that's the whole vibe of pvchange(8), section 8 of your System Manager's Manual, lowercase-girl-coded tool, uppercase energy πŸ‘‘)


πŸŽ€ SYNOPSIS πŸŽ€

pvchange option_args position_args
       [ option_args ]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so pvchange changes PV attributes in the VG. that's it, that's the mission πŸ’…

And listen β€” for options listed in parentheses, any one is required, and after you pick that one, the others are optional. one of them is the main character, the rest are supporting cast 🫢


✨ USAGE ✨

Change properties of all PVs.

pvchange -a|--all
       ( -u|--uuid
         -x|--allocatable y|n
         --addtag Tag
         --deltag Tag
         --metadataignore y|n )
       [ COMMON_OPTIONS ]

β€”

Change properties of specified PVs.

pvchange
       ( -u|--uuid
         -x|--allocatable y|n
         --addtag Tag
         --deltag Tag
         --metadataignore y|n )
       PV|Select ...
       [ -S|--select String ]
       [ COMMON_OPTIONS ]

β€”

Common options for command:

[ -A|--autobackup y|n ]
[ -f|--force ... ]
[ --reportformat basic|json|json_std ]

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 ]

🌈 OPTIONS 🌈

  • --addtag Tag β€” drops a tag onto a PV, VG or LV 🏷️ you can repeat this one to add multiple tags at once. wanna know the tag lore? lvm(8) has you, bestie.
  • -a, --all β€” change all visible PVs. every single one. no skipping πŸ”₯
  • -x, --allocatable y|n β€” turns allocation of physical extents on this PV on or off. y = yes babe, n = not today.
  • -A, --autobackup y|n β€” says whether metadata should be auto-backed-up after a change. Enabling this is strongly advised! genuinely, turn it on. see vgcfgbackup(8) for the details 🫢
  • --commandprofile String β€” the command profile used for command configuration. check lvm.conf(5) for the profile tea β˜•
  • --config String β€” config settings for the command, and these override the lvm.conf(5) settings. the String arg uses the exact same format as lvm.conf(5), or you can use section/field syntax. more info in lvm.conf(5) πŸ’œ
  • -d, --debug ... β€” sets the debug level. repeat it from 1 to 6 times to crank up the detail of messages going to the log file and/or syslog (if configured). more chaos, more intel πŸ”
  • --deltag Tag β€” yeets a tag from a PV, VG or LV πŸ—‘οΈ repeat it to delete multiple tags at once. tag lore lives in lvm(8).
  • --devices PV β€” restricts which devices are visible and accessible to the command. anything not listed will appear to be missing πŸ‘» repeat it, or pass a comma-separated list of devices. this one overrides the devices file, no cap.
  • --devicesfile String β€” a file listing the devices LVM should use. it must 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 β€” if you set it to no, the command won't even attempt to use device-mapper. it's for testing and debugging, so lowkey a lab-only moment πŸ§ͺ
  • -f, --force ... β€” overrides various checks, confirmations and protections. Use with extreme caution. bestie this is the "are you SURE" button and you're holding it down 😭
  • -h, --help β€” displays help text. ask and you shall receive πŸ’«
  • --journal String β€” records info in the systemd journal. this is in addition to whatever the lvm.conf log/journal setting already enables. options: command: records info about the command. output: records the default command output. debug: records full command debugging πŸ““
  • --lockopt String β€” passes options for special cases over to lvmlockd. see lvmlockd(8) for more πŸ’…
  • --longhelp β€” displays the long help text. the deluxe edition πŸ‘‘
  • --metadataignore y|n β€” sets the metadataignore property of a PV. if yes, metadata areas on the PV are ignored and lvm will not store metadata in the PV's metadata areas. if no, lvm will store metadata on the PV. choose wisely 🧠
  • --nohints β€” do not use the hints file to locate devices for PVs. without hints a command may read more devices to find PVs. it'll still do standard hint file invalidation where appropriate, so no vibes are lost πŸ¦‹
  • --nolocking β€” disables locking. Use with caution, concurrent commands may produce incorrect results. this is the chaotic option fr fr πŸ’€
  • --profile String β€” an alias for --commandprofile or --metadataprofile, depends on the command 🀷
  • -q, --quiet ... β€” suppresses output and log messages. it overrides --debug and --verbose. repeat it once and it'll also suppress any prompts with answer 'no' 🀫
  • --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. check lvmreport(7) for the full story ✨
  • -S, --select String β€” selects 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 β€” and see --options help for selectable object fields. rows can 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 🎯
  • -t, --test β€” runs in test mode. commands will not update metadata. this is implemented by disabling all metadata writing but still returning success to the calling function. heads up: 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 πŸ™ˆ
  • -u, --uuid β€” generate a brand new random UUID for the specified PVs 🎲 new identity, who dis
  • -v, --verbose ... β€” sets the verbose level. repeat from 1 to 4 times to increase the detail of messages sent to stdout and stderr πŸ—£οΈ
  • --version β€” displays version information.
  • -y, --yes β€” do not prompt for confirmation interactively, just always assume the answer is 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; 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] ...

  • Select β€” Select indicates that a required positional parameter can be omitted if the --select option is used. no arg appears in this position πŸ«₯
  • String β€” see the option description for info 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 β€” so '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. (do NOT confuse this with the output control --units, where capital letters mean multiple of 1000 β€” it's giving lowercase supremacy, iykyk πŸŽ€)

🧚 ENVIRONMENT VARIABLES 🧚

see lvm(8) for info about environment variables used by lvm. for example, LVM_VG_NAME can generally be substituted for a required VG parameter ✨


⭐ EXAMPLES ⭐

Disallow the allocation of physical extents on a PV (e.g. because of disk errors, or because it will be removed after freeing it). iconic use case honestly:

pvchange -x n /dev/sdk1

πŸ’œ SEE ALSO πŸ’œ

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)


that's the whole page bestie, go change some PV attributes responsibly πŸ’…βœ¨

Red Hat, Inc. made this β€” LVM TOOLS 2.03.44(2), dated 2026-10-27 β€” and that's the cute lil' credit roll at the bottom, mwah 😘

πŸ“¦ where this page comes from