6.3. 物理ボリュームメタデータの復元
物理ボリュームのボリュームグループのメタデータ領域が誤って上書きされたり、破棄されたりする場合は、メタデータ領域が正しくないことを示すエラーメッセージか、システムで特定 UUID の物理ボリュームが見つからなかったことを示すエラーメッセージが表示されます。物理ボリュームからのデータの復元は、失われたメタデータと同じ UUID を指定して、物理ボリューム上に新規のメタデータ領域を書き込むことによって実行できる場合があります。
警告
作業用の LVM 論理ボリュームを使用してこの手順を試行しないでください。誤った UUID を指定すると、データが失われることになります。
以下の例は、メタデータ領域が見つからなかったり、破損している場合に表示される出力の種類を示しています。
# lvs -a -o +devices
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
...
/etc/lvm/archive
ディレクトリーを検索すると、上書きされた物理ボリュームの UUID を見つけることができます。そのボリュームグループに対する最後に既知の有効なアーカイブ LVM メタデータについては、ファイル VolumeGroupName_xxxx.vg
を探します。
または、ボリュームを非アクティブ化し、
partial
(-P
) 引数を設定すると、見つからない破損した物理ボリュームの UUID を見つけられる可能性があります。
# vgchange -an --partial
Partial mode. Incomplete volume groups will be activated read-only.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
...
pvcreate コマンドの
--uuid
および --restorefile
引数を使用して、物理ボリュームを復元します。以下の例では、/dev/sdh1
デバイスを上記の UUID ( FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk
)を持つ物理ボリュームとしてラベル付けします。このコマンドは、ボリュームグループ用の最新のアーカイブメタデータである VG_00050.vg
に含まれるメタデータ情報を使用して、物理ボリュームラベルを復元します。restorefile
引数は、ボリュームグループ上の古い物理ボリュームと互換性のある新しい物理ボリュームを pvcreate コマンドに指示します。これにより、古い物理ボリュームにデータが含まれていた場合(たとえば、元の pvcreate コマンドがメタデータの配置を制御するコマンドライン引数を使用した場合や、物理ボリュームが異なるデフォルトを使用する別のバージョンのソフトウェアを使用して作成された場合など)が新しいメタデータに配置されないようにします。pvcreate コマンドは、LVM メタデータ領域のみを上書きし、既存のデータ領域には影響を与えません。
# pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1
Physical volume "/dev/sdh1" successfully created
その後、vgcfgrestore コマンドを使用して、ボリュームグループのメタデータを復元します。
# vgcfgrestore VG
Restored volume group VG
これで論理ボリュームが表示できるようになります。
# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
stripe VG -wi--- 300.00G /dev/sdh1 (0),/dev/sda1(0)
stripe VG -wi--- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
以下のコマンドはボリュームをアクティブにし、アクティブになったボリュームを表示します。
#lvchange -ay /dev/VG/stripe
#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe VG -wi-a- 300.00G /dev/sdh1 (0),/dev/sda1(0) stripe VG -wi-a- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
オンディスク LVM メタデータが、それを書き換えるデータと同じ容量である場合は、このコマンドで物理ボリュームを復元できます。メタデータを上書きしたものがメタデータ領域を超えると、ボリューム上のデータが影響を受ける可能性があります。そのデータを復元するには、fsck コマンドを使用することができます。