7.4. 物理ボリュームメタデータの復元
物理ボリュームのボリュームグループメタデータが誤って上書きされたり、破棄されたりした場合は、メタデータエリアが正しくないこと、またはシステムが特定の UUID を持つ物理ボリュームを見つけることができないことを示すエラーメッセージが出ます。物理ボリュームのデータを復元するには、紛失したメタデータと同じ UUID を指定して、物理ボリューム上に新規のメタデータエリアを書き込みます。
警告
機能している LVM 論理ボリュームについては、この手順を試みないでください。間違った UUID を指定するとデータ損失の原因となります。
以下の例では、メタデータエリアが欠如していたり、破損している場合に表示される出力の種類を示しています。
上書きされている物理ボリュームの UUID は、
/etc/lvm/archive ディレクトリを 開けば見つけることができます。そのボリュームの最後の有効なアーカイブ化した LVM メタデータの VolumeGroupName_xxxx.vg ファイルを確認します。
別の方法としては、そのボリュームを停止して、
partial (-P) 引数をセットすると欠如/破損した物理ボリュームの UUID を見つけることができます。
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
# 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
# vgcfgrestore VG
Restored volume group VG
これで論理ボリュームが表示できるようになります。
lvs -a -o +devices
# 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)
以下のコマンドはボリュームをアクティブ化してそのアクティブになったボリュームを表示します。
オンディスク LVM メタデータが、それを書き換えるデータと同じ容量である場合、このコマンドは物理ボリュームを復元できます。メタデータの書き換えがメタデータエリアを越えた場合、ボリューム上のデータは影響を受ける可能性があります。そのデータを復元するには、
fsck コマンドを使用すると良いでしょう。