Tweet |
本日、仮想環境(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
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破壊日記的ブログ