2010年3月5日金曜日

Linux Soft Raid 5 で構築したHDDの復旧

Linux Soft Raid5で運用していたHDD群のある鯖が、停電によって起動しなくなってしまったので、それの普及ログ。

【症状】
Kernel panic - not syncing: Attempted to killinit!
が表示され、起動しない。
上の部分ではraid5(/dev/md0)がスタートできないらしいメッセージがちょこっと垣間見える。

【目的】
/home ディレクトリの救出
/etc/{passwd,shadow,group} ファイルの救出

【復旧手順】
1.ドライブをつないだまま(危険だが)KnoppixのCDROMから起動。

2.ターミナルから以下を入力、HDDの情報確認。
# fdisk -l                                                                                   g
bhhuhiuhiuhiutyfytftyfffffffffffffffffffffffffffffffffffffffffffffffffffffffdd
  メモる情報は、パーティションの開始・終了ブロック、シリンダ、ヘッダ、セクタサイズ、種類、HDD型番

3.HDDを別PCにつないで、データをコピーする。
  # dd if=/dev/sda of=sda.img bs=512M
  # dd if=/dev/sdb of=sdb.img bs=512M
  # dd if=/dev/sdc of=sdc.img bs=512M

4.今回はvmwareの固定サイズHDDとして認識させたいので、.img 2 .vmdk にする。
  以下の内容をsda.vmdkとして作成する。
# Disk DescriptorFile
version=1
encoding="Shift_JIS"
CID=27cbf516
parentCID=ffffffff
isNativeSnapshot="no"
createType="monolithicFlat"

# Extent description
RW XXX FLAT "sda-flat.vmdk" 0

# The Disk Data Base 
#DDB

ddb.adapterType = "ide"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "255"
ddb.geometry.cylinders = "14593"
ddb.uuid = "60 00 C2 92 c5 2d 3a 82-1c 02 cf 54 6f 63 4b 2f"
ddb.longContentID = "518ac67ef7fe516d55287b9b27cbf516"
ddb.virtualHWVersion = "7"

  sda.img をsda-flat.vmdkにファイル名変更。
  XXXは ヘッダ*セクタ*シリンダ を計算した数値。
  ヘッダ、セクタ、シリンダの項目も書き換える。

5.vmwareで、既存のHDDとして追加。
6.仮想マシン起動し、soft raidデバイスを作成する。
  ## 状況確認
  # sudo mdadm --examine /dev/sda1
  # sudo mdadm --examine /dev/sda2
  # sudo mdadm --examine /dev/sda3
  # sudo mdadm --examine /dev/sdb1
  # sudo mdadm --examine /dev/sdc1

  ## raidデバイス作成
  # sudo mdadm --assemble /dev/md0 /dev/sda3 /dev/sdb1 /dev/sdc1

  ## dev/sdb1 が壊れているようで起動しない。Raid5なので、起動条件(n-1台は正常)を満たしているので強制起動。
  # sudo mdadm -R /dev/md0

  ## 起動しない。カーネルパラメータをいじる
  ## ubuntuだと、rootにならないとpermission deniedで変更できなかった
  # sudo su -
  # echo 1 > /sys/module/mc_mod/parameters/start_dirty_degraded

  ## 再び起動
  # sudo mdadm -R /dev/md0 # 起動できた  

  ## マウントしてHDDにアクセス
  # sudo mount /dev/md0 /mnt
  # cd /mnt

0 件のコメント:

コメントを投稿

フォロワー