CentOS4のソフトウェアRAID1を修復
外部設置サーバがHDDのエラーを訴えて来たので、HDDを交換する事にしました。
まずサーバの電源を切って/dev/hdb=UATAのIDE1スレーブ側HDDを取外し、新品に交換します。
今回はここで「呪われたディスプレイ」に接続したため、再起動しなくなって往生しました。サムスンの中古21インチCRTなんだけど、何故かこのディスプレイをサーバに接続すると、GRUBがカーネルを読み込んだ後展開せず、固まってしまう。
ディスプレイさえ呪われてなければそのままOSが立ち上がるので、/dev/hdaの構成を調べて同様に/dev/hdbにパーティションを切ります。
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/hda1 * 1 64 514048+ fd Linux raid 自動検出
/dev/hda2 65 5163 40957717+ fd Linux raid 自動検出
/dev/hda3 5164 5294 1052257+ fd Linux raid 自動検出
/dev/hda4 5295 9729 35624137+ fd Linux raid 自動検出
ということで、起動フラグも含めて同様に。
Disk /dev/hdb: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/hdb1 * 1 64 514048+ fd Linux raid 自動検出
/dev/hdb2 65 5163 40957717+ fd Linux raid 自動検出
/dev/hdb3 5164 5294 1052257+ fd Linux raid 自動検出
/dev/hdb4 5295 9729 35624137+ fd Linux raid 自動検出
RAIDの状態を確認すると
Personalities : [raid1]
md2 : active raid1 hda2[0]
40957632 blocks [2/1] [U_]
md1 : active raid1 hda3[0]
1052160 blocks [2/1] [U_]
md3 : active raid1 hda4[0]
35624064 blocks [2/1] [U_]
md0 : active raid1 hda1[0]
513984 blocks [2/1] [U_]
unused devices: <none>
となり「片肺飛行」である旨が表示されるので、構成に併せてhdbのパーティションをRAIDに参加させます。
mdadm: hot added /dev/hdb1
# mdadm --add /dev/md1 /dev/hdb3
mdadm: hot added /dev/hdb3
# mdadm --add /dev/md2 /dev/hdb2
mdadm: hot added /dev/hdb2
# mdadm --add /dev/md3 /dev/hdb4
mdadm: hot added /dev/hdb4
すると、こんな感じの再構築過程を経て片肺[U_]が通常[UU]に戻って来ます。
Personalities : [raid1]
md2 : active raid1 hdb2[2] hda2[0]
40957632 blocks [2/1] [U_]
[>....................] recovery = 4.7% (1960256/40957632) finish=22.4min speed=28971K/sec
md1 : active raid1 hdb3[1] hda3[0]
1052160 blocks [2/2] [UU]
md3 : active raid1 hdb4[2] hda4[0]
35624064 blocks [2/1] [U_]
resync=DELAYED
md0 : active raid1 hdb1[1] hda1[0]
513984 blocks [2/2] [UU]
ディスプレイが呪われていなければ非常に簡単(^_^)