pvchange

title: pvchange(8)

summary: Change attributes of physical volume(s)

text:
# pvchange(8)

## NAME
pvchange — Change attributes of physical volume(s)

## SYNOPSIS
pvchange option_args position_args

[ option_args ]

## DESCRIPTION
pvchange changes PV attributes in the VG.

For options listed in parentheses, any one is required, after which the others are optional.

## 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

Adds a tag to a PV, VG or LV. This option can be repeated to add multiple tags at once. See lvm(8) for information about tags.

-a|--all

Change all visible PVs.

-x|--allocatable y|n

Enable or disable allocation of physical extents on this PV.

-A|--autobackup y|n

Specifies if metadata should be backed up automatically after a change. Enabling this is strongly advised! See vgcfgbackup(8) for more information.

--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.

-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).

--deltag Tag

Deletes a tag from a PV, VG or LV. This option can be repeated to delete multiple tags at once. See lvm(8) for information about tags.

--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.

-f|--force ...

Override various checks, confirmations and protections. Use with extreme caution.

-h|--help

Display help text.

--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.

--longhelp

Display long help text.

--metadataignore y|n

Specifies the metadataignore property of a PV. If yes, metadata areas on the PV are ignored, and lvm will not store metadata in the metadata areas of the PV. If no, lvm will store metadata on the PV.

--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.

--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'.

--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 JSON standard. See lvmreport(7) for more information.

-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.

-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.

-u|--uuid

Generate new random UUID for specified PVs.

-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 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 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
See lvm(8) for information 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).

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), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)


pvck

title: pvck(8)

summary: Check metadata on physical volumes

text:
# pvck(8)

## NAME
pvck — Check metadata on physical volumes

## SYNOPSIS
pvck option_args position_args

[ option_args ]

--commandprofile String

--config String

-d|--debug ...

--devices PV

--devicesfile String

--driverloaded y|n

--dump headers|metadata|metadata_all|metadata_search

-f|--file String

-h|--help

--journal String

--labelsector Number

--lockopt String

--longhelp

--nohints

--nolocking

--profile String

--[pv]metadatacopies 0|1|2

-q|--quiet ...

--repair

--repairtype pv_header|metadata|label_header

--settings String

-t|--test

-v|--verbose ...

--version

-y|--yes

## DESCRIPTION
pvck checks and repairs LVM metadata on PVs.

### Dump options
headers

Print LVM on-disk headers and structures: label_header, pv_header, mda_header(s), and metadata text. Warnings are printed if any values are incorrect. The label_header and pv_header both exist in a 512 byte sector, usually the second sector of the device. An mda_header exists in a 512 byte sector at offset 4096 bytes. A second mda_header can optionally exist near the end of the device. The metadata text exists in an area (about 1MiB by default) immediately following the mda_header sector. The metadata text is checked but not printed (see other options).

metadata

Print the current LVM VG metadata text (or save to a file), using headers to locate the latest copy of metadata. If headers are damaged, metadata may not be found (see metadata_search). Use --settings "mda_num=2" to look in mda2 (the second mda at the end of the device, if used). The metadata text is printed to stdout or saved to a file with --file.

metadata_all

List all versions of VG metadata found in the metadata area, using headers to locate metadata. Full copies of all metadata are saved to a file with the --file option. If headers are damaged, metadata may not be found (see metadata_search). Use --settings "mda_num=2" as above. Use -v to include descriptions and dates when listing metadata versions.

metadata_search

List all versions of VG metadata found in the metadata area, searching common locations so metadata can be found if headers are damaged. Full copies of all metadata are saved to a file with the --file option. To save one specific version of metadata, use --settings "metadata_offset=<offset>", where the offset is taken from the list of versions found. Use -v to include descriptions and dates when listing metadata versions.

metadata_area

Save the entire text metadata area to a file without processing.

### Repair options
--repair

Repair headers and metadata on a PV. This uses a metadata input file that was extracted by --dump, or a backup file (from /etc/lvm/backup). When possible, use metadata saved by --dump from another PV in the same VG (or from a second metadata area on the PV).

There are cases where the PV UUID needs to be specified for the PV being repaired. It is specified using --settings "pv_uuid=<UUID>". In particular, if the device name for the PV being repaired does not match the previous device name of the PV, then LVM may not be able to determine the correct PV UUID. When headers are damaged on more than one PV in a VG, it is important for the user to determine the correct PV UUID and specify it in --settings. Otherwise, the wrong PV UUID could be used if device names have been swapped since the metadata was last written.

If a PV has no metadata areas and the pv_header is damaged, then the repair will not know to create no metadata areas during repair. It will by default repair metadata in mda1. To repair with no metadata areas, use --settings "mda_offset=0 mda_size=0".

There are cases where repair should be run on all PVs in the VG (using the same metadata file): if all PVs in the VG are damaged, if using an old metadata version, or if a backup file is used instead of raw metadata (taken from pvck dump.)

Using --repair is equivalent to running --repairtype pv_header followed by --repairtype metadata.

--repairtype pv_header

Repairs the header sector, containing the pv_header and label_header.

--repairtype metadata

Repairs the mda_header and metadata text. It requires the headers to be correct (having been undamaged or already repaired).

--repairtype label_header

Repairs label_header fields, leaving the pv_header (in the same sector) unchanged. (repairtype pv_header should usually be used instead.)

### Settings
The --settings option controls or overrides certain dump or repair behaviors. All offset and size values in settings are in bytes (units are not recognized.) These settings are subject to change.

mda_num=1|2

Select which metadata area should be used. By default the first metadata area (1) is used. mda1 is always located at offset 4096. mda2, at the end of the device, often does not exist (it's not created by default.) If mda1 is erased, mda2, if it exists, will often still have metadata.

metadata_offset=bytes

Select metadata text at this offset. Use with metadata_search to print/save one instance of metadata text.

mda_offset=bytes mda_size=bytes

Refers to a metadata area (mda) location and size. An mda includes an mda_header and circular metadata text buffer. Setting this forces metadata_search look for metadata in the given area instead of the standard locations. When set to zero with repair, it indicates no metadata areas should exist.

mda2_offset=bytes mda2_size=bytes

When repairing a pv_header, this forces a specific offset and size for mda2 that should be recorded in the pv_header.

pv_uuid=uuid

Specify the PV UUID of the device being repaired. When not specified, repair will attempt to determine the correct PV UUID by matching a device name in the metadata.

device_size=bytes

data_offset=bytes

When repairing a pv_header, the device_size, data_offset, and pvid can all be specified directly, in which case these values are not taken from a metadata file (where they usually come from), and the metadata file can be omitted. data_offset is the starting location of the first physical extent (data), which follows the first metadata area.

## USAGE
Check for metadata on a device

pvck PV ...

[ COMMON_OPTIONS ]

—

Check and print LVM headers and metadata on a device

pvck --dump headers|metadata|metadata_all|metadata_search PV

[ -f|--file String ]

[ --[pv]metadatacopies 0|1|2 ]

[ --settings String ]

[ COMMON_OPTIONS ]

—

Repair LVM headers or metadata on a device

pvck --repairtype pv_header|metadata|label_header PV

[ -f|--file String ]

[ --settings String ]

[ COMMON_OPTIONS ]

—

Repair LVM headers and metadata on a device

pvck --repair -f|--file String PV

[ --settings String ]

[ COMMON_OPTIONS ]

—

Common options for command:

[ --labelsector Number ]

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
--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.

-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.

--dump headers|metadata|metadata_all|metadata_search

Dump headers and metadata from a PV for debugging and repair. Option values include: headers to print and check LVM headers, metadata to print or save the current text metadata, metadata_all to list or save all versions of metadata, metadata_search to list or save all versions of metadata, searching standard locations in case of damaged headers, metadata_area to save an entire text metadata area to a file.

-f|--file String

Metadata file to read or write.

-h|--help

Display help text.

--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.

--labelsector Number

By default the PV is labelled with an LVM2 identifier in its second sector (sector 1). This lets you use a different sector near the start of the disk (between 0 and 3 inclusive - see LABEL_SCAN_SECTORS in the source). Use with care.

--lockopt String

Used to pass options for special cases to lvmlockd. See lvmlockd(8) for more information.

--longhelp

Display long help text.

--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.

--profile String

An alias for --commandprofile or --metadataprofile, depending on the command.

--[pv]metadatacopies 0|1|2

The number of metadata areas to set aside on a PV for storing VG metadata. When 2, one copy of the VG metadata is stored at the front of the PV and a second copy is stored at the end. When 1, one copy of the VG metadata is stored at the front of the PV. When 0, no copies of the VG metadata are stored on the given PV. This may be useful in VGs containing many PVs (this places limitations on the ability to use vgsplit later.)

-q|--quiet ...

Suppress output and log messages. Overrides --debug and --verbose. Repeat once to also suppress any prompts with answer 'no'.

--repair

Repair headers and metadata on a PV.

--repairtype pv_header|metadata|label_header

Repair headers and metadata on a PV. See command description.

--settings String

Specifies command specific settings in "Key = Value" form. Combine multiple settings in quotes, or repeat the settings option for each.

-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.

-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 end.

Start and end range (inclusive): PV[:PE-PE] ...

Start and length range (counting from 0): PV[:PE+PE] ...

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
See lvm(8) for information about environment variables used by lvm. For example, LVM_VG_NAME can generally be substituted for a required VG parameter.

## EXAMPLES
If the partition table is corrupted or lost on /dev/sda, and you suspect there was an LVM partition at approximately 100 MiB, then this area of the disk can be scanned using the --labelsector parameter with a value of 204800 (100 * 1024 * 1024 / 512 = 204800).

pvck --labelsector 204800 /dev/sda

## 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), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)

branch: sisyphus


pvcreate

title: pvcreate(8)

text:
# pvcreate(8)

## NAME
pvcreate — Initialize physical volume(s) for use by LVM

## SYNOPSIS
pvcreate position_args

[ option_args ]

## DESCRIPTION
pvcreate initializes a Physical Volume (PV) on a device so the device is recognized as belonging to LVM. This allows the PV to be used in a Volume Group (VG). An LVM disk label is written to the device, and LVM metadata areas are initialized. A PV can be placed on a whole device or partition.

Use vgcreate(8) to create a new VG on the PV, or vgextend(8) to add the PV to an existing VG. Use pvremove(8) to remove the LVM disk label from the device.

The force option will create a PV without confirmation. Repeating the force option (-ff) will forcibly create a PV, overriding checks that normally prevent it, e.g. if the PV is already in a VG.

Metadata location, size, and alignment

The LVM disk label begins 512 bytes from the start of the device, and is 512 bytes in size.

The LVM metadata area begins at an offset (from the start of the device) equal to the page size of the machine creating the PV (often 4 KiB.) The metadata area contains a 512 byte header and a multi-KiB circular buffer that holds text copies of the VG metadata.

With default settings, the first physical extent (PE), which contains LV data, is 1 MiB from the start of the device. This location is controlled by default_data_alignment in lvm.conf, which is set to 1 (MiB) by default. The pe_start will be a multiple of this many MiB. This location can be checked with:

pvs -o pe_start PV

The size of the LVM metadata area is the space between the start of the metadata area and the first PE. When metadata begins at 4 KiB and the first PE is at 1024 KiB, the metadata area size is 1020 KiB. This can be checked with:

pvs -o mda_size PV

The mda_size cannot be increased after pvcreate, so if larger metadata is needed, it must be set during pvcreate. Two copies of the VG metadata must always fit within the metadata area, so the maximum VG metadata size is around half the mda_size. This can be checked with:

vgs -o mda_free VG

A larger metadata area can be set with --metadatasize. The resulting mda_size may be larger than specified due to default_data_alignment placing pe_start on a MiB boundary, and the fact that the metadata area extends to the first PE. With metadata starting at 4 KiB and default_data_alignment 1 (MiB), setting --metadatasize 2048k results in pe_start of 3 MiB and mda_size of 3068 KiB. Alternatively, --metadatasize 2044k results in pe_start at 2 MiB and mda_size of 2044 KiB.

The alignment of pe_start described above may be automatically overridden based on md device properties or device i/o properties reported in sysfs. These automatic adjustments can be enabled/disabled using lvm.conf settings md_chunk_alignment and data_alignment_offset_detection.

To use a different pe_start alignment, use the --dataalignment option. The --metadatasize option would also typically be used in this case because the metadata area size also determines the location of pe_start. When using these two options together, pe_start is calculated as: metadata area start (page size), plus the specified --metadatasize, rounded up to the next multiple of --dataalignment. With metadata starting at 4 KiB, --metadatasize 2048k, and --dataalignment 128k, pe_start is 2176 KiB and mda_size is 2172 KiB. The pe_start of 2176 KiB is the nearest even multiple of 128 KiB that provides at least 2048 KiB of metadata space. Always check the resulting alignment and metadata size when using these options.

To shift an aligned pe_start value, use the --dataalignmentoffset option. The pe_start alignment is calculated as described above, and then the value specified with --dataalignmentoffset is added to produce the final pe_start value.

## USAGE
pvcreate PV ...

[ -f|--force ... ]

[ -M|--metadatatype lvm2 ]

[ -u|--uuid String ]

[ -Z|--zero y|n ]

[ --bootloaderareasize Size[m|UNIT] ]

[ --dataalignment Size[k|UNIT] ]

[ --dataalignmentoffset Size[k|UNIT] ]

[ --labelsector Number ]

[ --metadataignore y|n ]

[ --metadatasize Size[m|UNIT] ]

[ --norestorefile ]

[ --[pv]metadatacopies 0|1|2 ]

[ --reportformat basic|json|json_std ]

[ --restorefile String ]

[ --setphysicalvolumesize Size[m|UNIT] ]

[ COMMON_OPTIONS ]

—

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
--bootloaderareasize Size[m|UNIT]

Reserve space for the bootloader between the LVM metadata area and the first PE. The bootloader area is reserved for bootloaders to embed their own data or metadata; LVM will not use it. The bootloader area begins where the first PE would otherwise be located. The first PE is moved out by the size of the bootloader area, and then moved out further if necessary to match the data alignment. The start of the bootloader area is always aligned, see also --dataalignment and --dataalignmentoffset. The bootloader area may be larger than requested due to the alignment, but it's never less than the requested size. To see the bootloader area start and size of an existing PV use pvs -o +pv_ba_start,pv_ba_size.

--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.

--dataalignment Size[k|UNIT]

Align the start of a PV data area with a multiple of this number. To see the location of the first Physical Extent (PE) of an existing PV, use pvs -o +pe_start. In addition, it may be shifted by an alignment offset, see --dataalignmentoffset. Also specify an appropriate PE size when creating a VG.

--dataalignmentoffset Size[k|UNIT]

Shift the start of the PV data area by this additional offset.

-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.

-f|--force ...

Override various checks, confirmations and protections. Use with extreme caution.

-h|--help

Display help text.

--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.

--labelsector Number

By default the PV is labelled with an LVM2 identifier in its second sector (sector 1). This lets you use a different sector near the start of the disk (between 0 and 3 inclusive - see LABEL_SCAN_SECTORS in the source). Use with care.

--lockopt String

Used to pass options for special cases to lvmlockd. See lvmlockd(8) for more information.

--longhelp

Display long help text.

--metadataignore y|n

Specifies the metadataignore property of a PV. If yes, metadata areas on the PV are ignored, and lvm will not store metadata in the metadata areas of the PV. If no, lvm will store metadata on the PV.

--metadatasize Size[m|UNIT]

The approximate amount of space used for each VG metadata area. The size may be rounded.

-M|--metadatatype lvm2

Specifies the type of on-disk metadata to use. lvm2 (or just 2) is the current, standard format. lvm1 (or just 1) is no longer used.

--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.

--norestorefile

In conjunction with --uuid, this allows a uuid to be specified without also requiring that a backup of the metadata be provided.

--profile String

An alias for --commandprofile or --metadataprofile, depending on the command.

--[pv]metadatacopies 0|1|2

The number of metadata areas to set aside on a PV for storing VG metadata. When 2, one copy of the VG metadata is stored at the front of the PV and a second copy is stored at the end. When 1, one copy of the VG metadata is stored at the front of the PV. When 0, no copies of the VG metadata are stored on the given PV. This may be useful in VGs containing many PVs (this places limitations on the ability to use vgsplit later.)

-q|--quiet ...

Suppress output and log messages. Overrides --debug and --verbose. Repeat once to also suppress any prompts with answer 'no'.

--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 JSON standard. See lvmreport(7) for more information.

--restorefile String

In conjunction with --uuid, this reads the file (produced by vgcfgbackup), extracts the location and size of the data on the PV, and ensures that the metadata produced by the program is consistent with the contents of the file, i.e. the physical extents will be in the same place and not be overwritten by new metadata. This provides a mechanism to upgrade the metadata format or to add/remove metadata areas. Use with care.

--setphysicalvolumesize Size[m|UNIT]

Overrides the automatically detected size of the PV. Use with care, or prior to reducing the physical size of the device.

-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.

-u|--uuid String

Specify a UUID for the device. Without this option, a random UUID is generated. This option is needed before restoring a backup of LVM metadata onto a replacement device; see vgcfgrestore(8). As such, use of --restorefile is compulsory unless the --norestorefile is used. All PVs must have unique UUIDs, and LVM will prevent certain operations if multiple devices are seen with the same UUID. See vgimportclone(8) for more information.

-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.)

-Z|--zero y|n

Controls if the first 4 sectors (2048 bytes) of the device are wiped. The default is to wipe these sectors unless either or both of --restorefile or --uuid are specified.

## 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 end.

Start and end range (inclusive): PV[:PE-PE] ...

Start and length range (counting from 0): PV[:PE+PE] ...

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
See lvm(8) for information about environment variables used by lvm. For example, LVM_VG_NAME can generally be substituted for a required VG parameter.

## EXAMPLES
Initialize a partition and a full device.

pvcreate /dev/sdc4 /dev/sde

If a device is a 4 KiB sector drive that compensates for windows partitioning (sector 7 is the lowest aligned logical block, the 4 KiB sectors start at LBA -1, and consequently sector 63 is aligned on a 4 KiB boundary) manually account for this when initializing for use by LVM.

pvcreate --dataalignmentoffset 7s /dev/sdb

## 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), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)


pvdisplay

title: pvdisplay(8)

text:
# pvdisplay(8)

## NAME
pvdisplay — Display various attributes of physical volume(s)

## SYNOPSIS
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

## DESCRIPTION
pvdisplay shows the attributes of PVs, like size, physical extent size, space used for the VG descriptor area, etc.

pvs(8) is a preferred alternative that shows the same information and more, using a more compact and configurable output format.

## USAGE
pvdisplay

[ -m|--maps ]

[ -s|--short ]

[ COMMON_OPTIONS ]

[ PV|Tag ... ]

—

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

—

Generate colon separated output.

pvdisplay -c|--colon

[ COMMON_OPTIONS ]

[ PV|Tag ... ]

—

Common options for command:

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

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

Use 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 JSON standard. See lvmreport(7) for more information.

--rows

Output columns as rows.

--segments

-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 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
See lvm(8) for information about environment variables used by lvm. For example, LVM_VG_NAME can generally be substituted for a required VG parameter.

## 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), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)


pvmove

title: pvmove(8)

text:
# pvmove(8)

## NAME
pvmove — Move extents from one physical volume to another

## SYNOPSIS
pvmove position_args

[ option_args ]

[ position_args ]

## DESCRIPTION
pvmove moves the allocated physical extents (PEs) on a source PV to one or more destination PVs. You can optionally specify a source LV in which case only extents used by that LV will be moved to free (or specified) extents on the destination PV. If no destination PV is specified, the normal allocation rules for the VG are used.

If pvmove is interrupted for any reason (e.g. the machine crashes) then run pvmove again without any PV arguments to restart any operations that were in progress from the last checkpoint. Alternatively, use the abort option at any time to abort the operation. The resulting location of LVs after an abort depends on whether the atomic option was used.

More than one pvmove can run concurrently if they are moving data from different source PVs, but additional pvmoves will ignore any LVs already in the process of being changed, so some data might not get moved.

## USAGE
Move PV extents.

pvmove PV

[ -A|--autobackup y|n ]

[ -n|--name String ]

[ --alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit ]

[ --atomic ]

[ --noudevsync ]

[ --reportformat basic|json|json_std ]

[ COMMON_OPTIONS ]

[ PV ... ]

—

Continue or abort existing pvmove operations.

pvmove

[ COMMON_OPTIONS ]

—

Common options for command:

[ -b|--background ]

[ -i|--interval Number ]

[ --abort ]

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
--abort

Abort any pvmove operations in progress. If a pvmove was started with the --atomic option, then all LVs will remain on the source PV. Otherwise, segments that have been moved will remain on the destination PV, while unmoved segments will remain on the source PV.

--alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit

Determines the allocation policy when a command needs to allocate Physical Extents (PEs) from the VG. Each VG and LV has an allocation policy which can be changed with vgchange/lvchange, or overridden on the command line. normal applies common sense rules such as not placing parallel stripes on the same PV. inherit applies the VG policy to an LV. contiguous requires new PEs to be placed adjacent to existing PEs. cling places new PEs on the same PV as existing PEs in the same stripe of the LV. If there are sufficient PEs for an allocation, but normal does not use them, anywhere will use them even if it reduces performance, e.g. by placing two stripes on the same PV. Optional positional PV args on the command line can also be used to limit which PVs the command will use for allocation. See lvm(8) for more information about allocation.

--atomic

Makes a pvmove operation atomic, ensuring that all affected LVs are moved to the destination PV, or none are if the operation is aborted.

-A|--autobackup y|n

Specifies if metadata should be backed up automatically after a change. Enabling this is strongly advised! See vgcfgbackup(8) for more information.

-b|--background

If the operation requires polling, this option causes the command to return before the operation is complete, and polling is done in the background.

--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.

-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.

-h|--help

Display help text.

-i|--interval Number

Report progress at regular intervals.

--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.

--longhelp

Display long help text.

-n|--name String

Move only the extents belonging to the named LV.

--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.

--noudevsync

Disables udev synchronization. The process will not wait for notification from udev. It will continue irrespective of any possible udev processing in the background. Only use this if udev is not running or has rules that ignore the devices LVM creates.

--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'.

--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 JSON standard. See lvmreport(7) for more information.

-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.

-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 end.

Start and end range (inclusive): PV[:PE-PE] ...

Start and length range (counting from 0): PV[:PE+PE] ...

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
See lvm(8) for information about environment variables used by lvm. For example, LVM_VG_NAME can generally be substituted for a required VG parameter.

## NOTES
pvmove works as follows:

1. A temporary 'pvmove' LV is created to store details of all the data movements required.

2. Every LV in the VG is searched for contiguous data that need moving according to the command line arguments. For each piece of data found, a new segment is added to the end of the pvmove LV. This segment takes the form of a temporary mirror to copy the data from the original location to a newly allocated location. The original LV is updated to use the new temporary mirror segment in the pvmove LV instead of accessing the data directly.

3. The VG metadata is updated on disk.

4. The first segment of the pvmove LV is activated and starts to mirror the first part of the data. Only one segment is mirrored at once as this is usually more efficient.

5. A daemon repeatedly checks progress at the specified time interval. When it detects that the first temporary mirror is in sync, it breaks that mirror so that only the new location for that data gets used and writes a checkpoint into the VG metadata on disk. Then it activates the mirror for the next segment of the pvmove LV.

6. When there are no more segments left to be mirrored, the temporary LV is removed and the VG metadata is updated so that the LVs reflect the new data locations.

Note that this new process cannot support the original LVM1 type of on-disk metadata. Metadata can be converted using vgconvert(8).

By default, pvmove will mirror an entire LV segment at once. If the process is interrupted (e.g. by a system crash or power failure) before the segment is fully mirrored, the entire segment must be mirrored again when pvmove is restarted. For very large segments, this can result in significant rework. The allocation/pvmove_max_segment_size_mb setting in lvm.conf(5) can be used to limit the maximum size of data mirrored in a single operation. When set to a non-zero value, pvmove will split large segments into smaller chunks of the specified size (in MiB), mirror each chunk, and update metadata between chunks. This ensures that at most one chunk needs to be re-mirrored after an interruption. For example, setting this to 10240 will limit each mirroring operation to 10 GiB. The default value of 0 means no limit - entire segments are mirrored at once.

If the --atomic option is used, a slightly different approach is used for the move. Again, a temporary 'pvmove' LV is created to store the details of all the data movements required. This temporary LV contains all the segments of the various LVs that need to be moved. However, in this case, an identical LV is allocated that contains the same number of segments and a mirror is created to copy the contents from the first temporary LV to the second. After a complete copy is made, the temporary LVs are removed, leaving behind the segments on the destination PV. If an abort is issued during the move, all LVs being moved will remain on the source PV.

## EXAMPLES
Move all physical extents that are used by simple LVs on the specified PV to free physical extents elsewhere in the VG.

pvmove /dev/sdb1

Use a specific destination PV when moving physical extents.

pvmove /dev/sdb1 /dev/sdc1

Move extents belonging to a single LV.

pvmove -n lvol1 /dev/sdb1 /dev/sdc1

Rather than moving the contents of an entire device, it is possible to move a range of physical extents, for example numbers 1000 to 1999 inclusive on the specified PV.

pvmove /dev/sdb1:1000-1999

A range of physical extents to move can be specified as start+length. For example, starting from PE 1000. (Counting starts from 0, so this refers to the 1001st to the 2000th PE inclusive.)

pvmove /dev/sdb1:1000+1000

Move a range of physical extents to a specific PV (which must have sufficient free extents).

pvmove /dev/sdb1:1000-1999 /dev/sdc1

Move a range of physical extents to specific new extents on a new PV.

pvmove /dev/sdb1:1000-1999 /dev/sdc1:0-999

If the source and destination are on the same disk, the anywhere allocation policy is needed.

pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999

The part of a specific LV present within in a range of physical extents can also be picked out and moved.

pvmove -n lvol1 /dev/sdb1:1000-1999 /dev/sdc1

## 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), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)


pvremove

title: pvremove(8)

text:
# pvremove(8)

## NAME
pvremove — Remove LVM label(s) from physical volume(s)

## SYNOPSIS
pvremove position_args

[ option_args ]

## DESCRIPTION
pvremove wipes the label on a device so that LVM will no longer recognise it as a PV.

A PV cannot be removed from a VG while it is used by an active LV.

Repeat the force option (-ff) to forcibly remove a PV belonging to an existing VG. Normally, vgreduce(8) should be used instead.

## USAGE
pvremove PV ...

[ -f|--force ... ]

[ --reportformat basic|json|json_std ]

[ COMMON_OPTIONS ]

—

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
--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.

-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.

-f|--force ...

Override various checks, confirmations and protections. Use with extreme caution.

-h|--help

Display help text.

--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.

--longhelp

Display long help text.

--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.

--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'.

--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 JSON standard. See lvmreport(7) for more information.

-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.

-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 end.

Start and end range (inclusive): PV[:PE-PE] ...

Start and length range (counting from 0): PV[:PE+PE] ...

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
See lvm(8) for information about environment variables used by lvm. For example, LVM_VG_NAME can generally be substituted for a required VG parameter.

## 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), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)


pvresize

title: pvresize(8)

summary: Resize physical volume(s)

text:
# pvresize(8)

## NAME
pvresize — Resize physical volume(s)

## SYNOPSIS
pvresize position_args

[ option_args ]

## DESCRIPTION
pvresize resizes a PV. The PV may already be in a VG and may have active LVs allocated on it.

## USAGE
pvresize PV ...

[ -A|--autobackup y|n ]

[ --reportformat basic|json|json_std ]

[ --setphysicalvolumesize Size[m|UNIT] ]

[ COMMON_OPTIONS ]

—

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
-A|--autobackup y|n

Specifies if metadata should be backed up automatically after a change. Enabling this is strongly advised! See vgcfgbackup(8) for more information.

--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.

-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.

-h|--help

Display help text.

--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.

--longhelp

Display long help text.

--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.

--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'.

--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 JSON standard. See lvmreport(7) for more information.

--setphysicalvolumesize Size[m|UNIT]

Overrides the automatically detected size of the PV. Use with care, or prior to reducing the physical size of the device.

-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.

-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 end.

Start and end range (inclusive): PV[:PE-PE] ...

Start and length range (counting from 0): PV[:PE+PE] ...

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
See lvm(8) for information about environment variables used by lvm. For example, LVM_VG_NAME can generally be substituted for a required VG parameter.

## NOTES
pvresize will refuse to shrink a PV if it has allocated extents beyond the new end.

## EXAMPLES
Expand a PV after enlarging the partition.

pvresize /dev/sda1

Shrink a PV prior to shrinking the partition (ensure that the PV size is appropriate for the intended new partition size).

pvresize --setphysicalvolumesize 40G /dev/sda1

## 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), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)


pvs

title: pvs(8)

text:
# pvs(8)

## NAME
pvs — Display information about physical volumes

## SYNOPSIS
pvs

[ option_args ]

[ position_args ]

## DESCRIPTION
pvs produces formatted output about PVs.

## USAGE
pvs

[ -a|--all ]

[ -A|--allpvs ]

[ -o|--options String ]

[ -O|--sort String ]

[ -S|--select String ]

[ --aligned ]

[ --binary ]

[ --configreport log|vg|lv|pv|pvseg|seg ]

[ --foreign ]

[ --headings none|abbrev|full|0|1|2 ]

[ --ignorelockingfailure ]

[ --logonly ]

[ --nameprefixes ]

[ --noheadings ]

[ --nosuffix ]

[ --readonly ]

[ --reportformat basic|json|json_std ]

[ --rows ]

[ --segments ]

[ --separator String ]

[ --shared ]

[ --unbuffered ]

[ --units [Number]r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E ]

[ --unquoted ]

[ COMMON_OPTIONS ]

[ PV|Tag ... ]

—

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
--aligned

Use 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.

-A|--allpvs

Show information about PVs outside the devices file. Combine with -a|--all to include devices that 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).

--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.

--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 JSON standard. See lvmreport(7) for more information.

--rows

Output columns as rows.

--segments

Produces one line of output for each contiguous allocation of space on each PV, showing the start (pvseg_start) and length (pvseg_size) in units of physical extents.

-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.

-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 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
See lvm(8) for information about environment variables used by lvm. For example, LVM_VG_NAME can generally be substituted for a required VG parameter.

## NOTES
The pv_attr bits are:

1

(d)uplicate, (a)llocatable, (u)sed

2

e(x)ported

3

(m)issing

## 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), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)


pvscan

title: pvscan(8)

summary: List all physical volumes

text:
# pvscan(8)

## NAME
pvscan — List all physical volumes

## SYNOPSIS
pvscan option_args position_args

[ option_args ]

[ position_args ]

-a|--activate y|n|ay

-A|--allpvs

--autoactivation String

--cache

--checkcomplete

--commandprofile String

--config String

-d|--debug ...

--devices PV

--devicesfile String

--driverloaded y|n

-e|--exported

-h|--help

--ignorelockingfailure

--journal String

--listlvs

--listvg

--lockopt String

--longhelp

-j|--major Number

--minor Number

--nohints

--nolocking

--noudevsync

-n|--novolumegroup

--profile String

-q|--quiet ...

--reportformat basic|json|json_std

-s|--short

-t|--test

--udevoutput

-u|--uuid

-v|--verbose ...

--version

--vgonline

-y|--yes

## DESCRIPTION
When called without the --cache option, pvscan lists PVs on the system, like pvs(8) or pvdisplay(8).

When --cache is used, pvscan updates runtime lvm state on the system, or with -aay performs autoactivation.

pvscan --cache device

If device is present, lvm records that the PV on device is online. If device is not present, lvm removes the online record for the PV. pvscan only reads the named device.

pvscan --cache

Updates the runtime state for all lvm devices.

pvscan --cache -aay device

Performs the --cache steps for the device, then checks if the VG using the device is complete. If so, LVs in the VG are autoactivated, the same as vgchange -aay vgname would do. (A device name may be replaced with major and minor numbers.)

pvscan --cache -aay

Performs the --cache steps for all devices, then autoactivates any complete VGs.

pvscan --cache --listvg|--listlvs device

Performs the --cache steps for the device, then prints the name of the VG using the device, or the names of LVs using the device. --checkcomplete is usually included to check if all PVs for the VG or LVs are online. When this command is called by a udev rule, the output must conform to udev rule specifications (see --udevoutput.) The udev rule will use the results to perform autoactivation.

Autoactivation of VGs or LVs can be enabled/disabled using vgchange or lvchange with --setautoactivation y|n, or by adding names to lvm.conf(5) activation/auto_activation_volume_list

See lvmautoactivation(7) for more information about how pvscan is used for autoactivation.

## USAGE
Display PV information.

pvscan

[ -A|--allpvs ]

[ -e|--exported ]

[ -n|--novolumegroup ]

[ -s|--short ]

[ -u|--uuid ]

[ --ignorelockingfailure ]

[ --reportformat basic|json|json_std ]

[ COMMON_OPTIONS ]

—

Record that a PV is online or offline.

pvscan --cache

[ -j|--major Number ]

[ --ignorelockingfailure ]

[ --minor Number ]

[ --noudevsync ]

[ --reportformat basic|json|json_std ]

[ COMMON_OPTIONS ]

[ String|PV ... ]

—

Record that a PV is online and autoactivate the VG if complete.

pvscan --cache -a|--activate y|n|ay

[ -j|--major Number ]

[ --autoactivation String ]

[ --ignorelockingfailure ]

[ --minor Number ]

[ --noudevsync ]

[ --reportformat basic|json|json_std ]

[ COMMON_OPTIONS ]

[ String|PV ... ]

—

Record that a PV is online and list the VG using the PV.

pvscan --cache --listvg PV

[ --autoactivation String ]

[ --checkcomplete ]

[ --ignorelockingfailure ]

[ --udevoutput ]

[ --vgonline ]

[ COMMON_OPTIONS ]

—

Record that a PV is online and list LVs using the PV.

pvscan --cache --listlvs PV

[ --checkcomplete ]

[ --ignorelockingfailure ]

[ --vgonline ]

[ COMMON_OPTIONS ]

—

List LVs using the PV.

pvscan --listlvs PV

[ COMMON_OPTIONS ]

—

List the VG using the PV.

pvscan --listvg PV

[ COMMON_OPTIONS ]

—

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
-a|--activate y|n|ay

Auto-activate LVs in a VG when the PVs scanned have completed the VG. (Only ay is applicable.)

-A|--allpvs

Show information about PVs outside the devices file. Displays the device ID for PVs included in the devices file.

--autoactivation String

Specify if autoactivation is being used from an event. This allows the command to apply settings that are specific to event activation, such as device scanning optimizations using pvs_online files created by event-based pvscans.

--cache

Scan one or more devices and record that they are online.

--checkcomplete

Check if all the devices used by a VG or LV are present, and print "complete" or "incomplete" for each listed VG or LV. This option is used as a part of event-based autoactivation, so pvscan will do nothing if this option is set and event_activation=0 in the config settings.

--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.

-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.

-e|--exported

Only show PVs belonging to exported VGs.

-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.

--listlvs

Print a list of LVs that use the device.

--listvg

Print the VG that uses the device.

--lockopt String

Used to pass options for special cases to lvmlockd. See lvmlockd(8) for more information.

--longhelp

Display long help text.

-j|--major Number

The major number of a device.

--minor Number

The minor number of a device.

--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.

--noudevsync

Disables udev synchronization. The process will not wait for notification from udev. It will continue irrespective of any possible udev processing in the background. Only use this if udev is not running or has rules that ignore the devices LVM creates.

-n|--novolumegroup

Only show PVs not belonging to any VG.

--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'.

--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 JSON standard. See lvmreport(7) for more information.

-s|--short

Short listing format.

-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.

--udevoutput

Command output is modified to be imported from a udev rule.

-u|--uuid

Show UUIDs in addition to device names.

-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.

--vgonline

The first command to see a complete VG will report it uniquely. Other commands to see the complete VG will report it differently.

-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 end.

Start and end range (inclusive): PV[:PE-PE] ...

Start and length range (counting from 0): PV[:PE+PE] ...

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
See lvm(8) for information about environment variables used by lvm. For example, LVM_VG_NAME can generally be substituted for a required VG parameter.

## 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), cmirrord(8), lvmdbusd(8), fsadm(8),

lvmsystemid(7), lvmreport(7), lvmcache(7), lvmraid(7), lvmthin(7), lvmvdo(7), lvmautoactivation(7)