Amazon.co.jp ウィジェット Linux LVMボリュームが壊れたときの対処法 on 仮想環境 - PC破壊日記的ブログ

Home > PC破壊日記 > | サーバ(玄箱)日記 > Linux LVMボリュームが壊れたときの対処法 on 仮想環境

Linux LVMボリュームが壊れたときの対処法 on 仮想環境

このエントリーをはてなブックマークに追加

本日、仮想環境(Oracle VM VirtualBOX)上のCentOS 5.6がシャットダウンすら受け付けない完全フリーズ状態に。それを強制終了したら、今度はパーティションがない!と、kernel panic!を吐いて終了していました。

これでは起動すらできません。つまり、データを吸い出すことができないのです。
困ったので、以下の手段をとりました。

1.仮想HDDのバックアップ
実HDDでは簡単にコピーはできません(ddコマンドとかで完全コピーとかの手段が必要)が、仮想環境用の仮想HDDなので、とりあえず仮想HDDファイルをコピーしました。
これで、万一復元に失敗しても、バックアップファイルを使えば再度挑戦できます。

2.新しく仮想環境を作り、そこに壊れたHDDを追加でマウント

3.testdiskを用いて、HDDのパーティション復元を試みる
使い方はここ(@IT)とかここを参照のこと。
これで、パーティションの解析を行った結果、QuickSearch出元のパーティション構成は復元できました。

しかし、このHDDは、実はLVM構成。
HDDの拡張が自由にできる半面、壊れたときの復帰は難しいのだとか。
そして今回、復元用の仮想環境までもLVM構成で作ったため、困ったことに。

以降は「続きを読む」から・・・。

4.pvdisplay、vgdisplayで状況を確認。
ここで、二つのHDDのLVMのvg nameが全く同じ事が発覚。
この状態では、OS上からは名前が同一のため、どちらか区別が付かないとのこと。
しかし、ここでまた仮想環境の作り直しとかはごめん被りたいので、
ここはここを参考にして、
vg名を強制変更することに。
vgdisplayでUUIDを出力したものの、どちらが壊れた方なのか判別付かなかったので、
とりあえずえいやっ!と
vgrename UUID名 VolGroup9999
と変更。
今回はこれで壊れた方が変更されたようで一安心。まあ間違ってても蹴られるか
もしくは再度リネームし直せば良いだけ・・・と思います。

5.再起動
6.この状態でマウントしようと試みた
mkdir /mnt1
mount /dev/VolGroup9999/LogVol00 /mnt1
のですが、ファイルシステムそのものが壊れているらしく、
magic numberがおかしいやらなんやら、
wrong fs type, bad option, bad superblock on
なんやらで、マウントもfsckも効きません。
testdiskも今回ばかりは役に立たず。

そこで、ここ(@IT)を参考に、Superblockの割り出し
mkfs.ext3 -n デバイス名
と、Superblockの復元、修復を行いました。
途中ものすごい数の問合せが出たので、-yオプションでとにかく全部直してもらいました。

そして終わったところで
7.再起動
8.マウント
ここで、マウントに成功。
lost+foundも無く、全部復元されていました。
運がよかったのでしょう。

LVMは便利だけど、こういうときには大問題になりそうです。。。
まだ単一ボリュームだったからよかったんでしょうが・・・。


Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
https://pc-diary.com/movt_direc_post/mt-tb.cgi/1584
Listed below are links to weblogs that reference
Linux LVMボリュームが壊れたときの対処法 on 仮想環境 from PC破壊日記的ブログ
  • タグ: fsck, HDD, Linux, LVM, VirtualBOX, 仮想環境, 壊れた
  • Home > PC破壊日記 > | サーバ(玄箱)日記 > Linux LVMボリュームが壊れたときの対処法 on 仮想環境

    2進数時計
    ※クリックで読みやすくなります。
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません
    Search
    Feeds
    Google Adsense
    Tag Cloud

    このページの最初に戻る