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