VGCK(8)

πŸ’– VGCK πŸ’– (NAME)

okay bestie, welcome to VGCK(8) β€” that's section 8 of the System Manager's Manual, so you KNOW it's a real one πŸ‘‘

vgck β€” Check the consistency of volume group(s) ✨


🫢 SYNOPSIS 🫢

vgck option_args position_args
       [ option_args ]
       [ position_args ]

🌸 DESCRIPTION 🌸

vgck checks LVM metadata for consistency. that's it, that's the whole job β€” it's the vibe check for your metadata, no cap πŸ’…


πŸŽ€ USAGE πŸŽ€

Read and display information about a VG.

like, just look at the VG. respectfully. πŸ‘€

vgck
       [ --reportformat basic|json|json_std ]
       [ COMMON_OPTIONS ]
       [ VG|Tag ... ]

Rewrite VG metadata to correct problems.

glow-up time for ur metadata ✨

vgck --updatemetadata VG
       [ COMMON_OPTIONS ]

Common options for lvm:

these are the options the whole lvm family shares, so they'll feel familiar 🫢

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

  • --commandprofile String β€” the command profile you want to use for configuring this command. see lvm.conf(5) for the whole tea about profiles β˜•
  • --config String β€” config settings just for this command. these override whatever lvm.conf(5) says. the String arg takes the same format as lvm.conf(5), or you can use section/field syntax. again, lvm.conf(5) has the deets πŸ’–
  • -d, --debug ... β€” sets the debug level. repeat it 1 to 6 times to crank up how much detail gets sent to the log file and/or syslog (if you have that configured). more repeats = more yapping πŸ”₯
  • --devices PV β€” restricts which devices are visible and accessible to the command. anything you don't list? it just looks missing πŸ’€ you can repeat this option, or hand it a comma-separated list of devices. heads up: this overrides the devices file.
  • --devicesfile String β€” a file that lists the devices LVM should use. it must live in /etc/lvm/devices/ and it's managed with the lvmdevices(8) command. this one overrides the lvm.conf(5) devices/devicesfile and devices/use_devicesfile settings, so like, it wins πŸ†
  • --driverloaded y|n β€” set it to no and the command won't even try to use device-mapper. for testing and debugging, iykyk πŸ§ͺ
  • -h, --help β€” shows you the help text. classic 🫢
  • --journal String β€” records info into the systemd journal. this is on top of whatever the lvm.conf log/journal setting already enables. command: records info about the command. output: records the default command output. debug: records the full command debugging. pick ur fighter πŸ““
  • --lockopt String β€” passes options for special cases over to lvmlockd. lvmlockd(8) has more, go read it πŸ”
  • --longhelp β€” shows the long help text. the extended cut 🎬
  • --nohints β€” don't use the hints file to locate devices for PVs. without hints, a command may end up reading more devices to find those PVs. it'll still do standard hint file invalidation where that makes sense tho ✨
  • --nolocking β€” disables locking. use with caution β€” concurrent commands can produce incorrect results 😭
  • --profile String β€” an alias for --commandprofile or --metadataprofile, depending on which command you're running. two-faced but make it useful πŸ’…
  • -q, --quiet ... β€” suppresses output and log messages. it overrides --debug and --verbose, sorry to those guys. repeat it once more and it'll also suppress any prompts with the answer 'no' 🀫
  • --reportformat basic|json|json_std β€” overrides the current output format for reports, which is otherwise set globally by the report/output_format setting in lvm.conf(5). basic is the og 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 gives you report output in JSON format. json_std also gives you JSON format, but it's more compliant with the JSON standard. lvmreport(7) has more, bestie πŸ“Š
  • -t, --test β€” runs in test mode. commands will not update metadata. how does that work? it disables all metadata writing but still returns success to the calling function πŸ™ˆ which means multi-stage operations can throw weird error messages if a tool assumes it can read back metadata it thinks it changed... but it hasn't. messy, honestly.
  • --updatemetadata β€” updates VG metadata to correct problems. okay so here's the situations, bestie:
    • if VG metadata got updated while a PV was missing, and then that PV comes back with an old version of the metadata, this option (or literally any other command that writes metadata) will update the metadata on that previously missing PV.
    • if a PV was removed from a VG while it was missing, and it reappears, this option will clear the outdated metadata off that previously missing PV.
    • if the metadata text is damaged on one PV, this option will replace the damaged metadata text.
    • for more severe damage, like with headers? go see pvck(8). different department πŸ’€
  • -v, --verbose ... β€” sets the verbose level. repeat it 1 to 4 times to increase the detail of messages sent to stdout and stderr. chatty mode πŸ—£οΈ
  • --version β€” displays version information. who am i, where am i from πŸͺž
  • -y, --yes β€” doesn't prompt you for confirmation, it just always assumes the answer is yes. use with extreme caution fr fr. (for automatic no, see -qq.) 🚨

πŸ¦‹ VARIABLES πŸ¦‹

  • VG β€” Volume Group name. lvm(8) has the valid names.
  • Tag β€” Tag name. lvm(8) explains tag names and how to use tags in place of a VG, LV or PV.
  • String β€” see that option's description for what the string is supposed to contain.
  • Size[UNIT] β€” Size is an input number that takes 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 a 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. (and don't get this confused with the output control --units, where capital letters mean a multiple of 1000. two totally different moods 🌈)

🌟 ENVIRONMENT VARIABLES 🌟

lvm(8) explains all the environment variables lvm uses. for example, LVM_VG_NAME can generally be substituted in for a required VG parameter. handy πŸ’œ


πŸ‘‘ 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)


and that's the whole page, bestie 🫢 this one came from Red Hat, Inc., it's LVM TOOLS 2.03.44(2), dated 2026-10-27 β€” go keep ur metadata consistent, you absolute icon πŸ‘‘πŸ’–

πŸ“¦ where this page comes from