mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
138 lines
5.5 KiB
Plaintext
138 lines
5.5 KiB
Plaintext
pvck checks and repairs LVM metadata on PVs.
|
|
|
|
.SS Dump options
|
|
|
|
.B headers
|
|
.br
|
|
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).
|
|
|
|
.B metadata
|
|
.br
|
|
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.
|
|
|
|
.B metadata_all
|
|
.br
|
|
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.
|
|
|
|
.B metadata_search
|
|
.br
|
|
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.
|
|
|
|
.B metadata_area
|
|
.br
|
|
Save the entire text metadata area to a file without processing.
|
|
|
|
.SS Repair options
|
|
|
|
.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 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.
|
|
|
|
.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 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.
|
|
|
|
\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.
|
|
|