mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-31 21:18:26 +03:00
130 lines
5.0 KiB
Plaintext
130 lines
5.0 KiB
Plaintext
pvck checks and repairs LVM metadata on PVs.
|
|
|
|
.SS Dump
|
|
|
|
.B headers
|
|
.br
|
|
Print header values and warn if any values are incorrect. Checks the
|
|
label_header, pv_header, mda_header(s), and metadata text.
|
|
|
|
.B metadata
|
|
.br
|
|
Print or save the current metadata text, using headers to locate the
|
|
metadata. If headers are damaged, the metadata may not be found. 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. With --file,
|
|
the metadata text is saved to a file.
|
|
|
|
.B metadata_all
|
|
.br
|
|
List or save all versions of metadata found in the metadata area, using
|
|
headers to locate the metadata. If headers are damaged, the metadata may
|
|
not be found. Use --settings "mda_num=2" as above. All metadata versions
|
|
are listed (add -v to include descriptions and dates in the listing.)
|
|
With -file, all versions are written to a file.
|
|
|
|
.B metadata_search
|
|
.br
|
|
Search for all versions of metadata in the common locations. This does
|
|
not use headers, so it can find metadata even when headers are damaged.
|
|
Use --settings "mda_num=2" as above. All metadata versions are listed
|
|
(add -v to include descriptions and dates in the listing.) With --file,
|
|
all versions are written to a file. To save one copy of metadata, use
|
|
--settings "metadata_offset=<offset>", where the offset is taken from the
|
|
dump listing.
|
|
|
|
.B metadata_area
|
|
.br
|
|
Save the entire text metadata area to a file without processing.
|
|
|
|
.SS Repair
|
|
|
|
.B --repair
|
|
.br
|
|
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 had 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.
|
|
|
|
Using --repair is equivalent to running --repairtype pv_header followed by
|
|
--repairtype metadata.
|
|
|
|
.B --repairtype pv_header
|
|
.br
|
|
Repairs the header sector, containing the pv_header and label_header.
|
|
|
|
.B --repairtype metadata
|
|
.br
|
|
Repairs the mda_header and metadata text. It requires the headers to be
|
|
correct (having been undamaged or already repaired).
|
|
|
|
.B --repairtype label_header
|
|
.br
|
|
Repairs label_header fields, leaving the pv_header (in the same sector)
|
|
unchanged. (repairtype pv_header should usually be used instead.)
|
|
|
|
.SS 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.
|
|
|
|
.B mda_num=1|2
|
|
.br
|
|
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.
|
|
|
|
\fBmetadata_offset=\fP\fIbytes\fP
|
|
.br
|
|
Select metadata text at this offset. Use with metadata_search to
|
|
print/save one instance of metadata text.
|
|
|
|
\fBmda_offset=\fP\fIbytes\fP \fBmda_size=\fP\fIbytes\fP
|
|
.br
|
|
Refers to a metadata area (mda) location and size. An mda includes an
|
|
mda_header and circular text buffer. Setting this forces metadata_search
|
|
look for metadata in the given area instead of the normal locations. When
|
|
set to zero with repair, it indicates no metadata areas should exist.
|
|
|
|
\fBmda2_offset=\fP\fIbytes\fP \fBmda2_size=\fP\fIbytes\fP
|
|
.br
|
|
When repairing a pv_header, this forces a specific offset and size for
|
|
mda2 that should be recorded in the pv_header.
|
|
|
|
\fBpv_uuid=\fP\fIuuid\fP
|
|
.br
|
|
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.
|
|
|
|
\fBdevice_size=\fP\fIbytes\fP
|
|
.br
|
|
\fBdata_offset=\fP\fIbytes\fP
|
|
.br
|
|
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.
|
|
|