redhat/whitebox/fedora 系でsoftware raidを復旧する手順は以下の通り.
下準備
- 状況を把握する
$ cat /proc/mdstat
たとえば以下のような出力が得られた場合,md1を構成しているsda5の領域が壊れている.
Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 sda1[1] sdb1[0] [2/2] [UU] md1 : active raid1 sda5[1] sdb5[0] [2/1] [_U]
つまり,正常なユニットは "U",異常のあるユニットは "_" で表現されている.
- パーティション情報の収集
$ fdisk -l /dev/sdb
ソフトウェアRAIDではパーティション情報の復元まではしてくれない.作業を始めるまえにパーティション情報を確認しておく.
- 念のためブートフロッピーを作成しておく
ブートローダを入れたHDDを交換するはめになったばあいの事も考慮して,mkbootdiskコマンドでブートフロッピーを作成しておく.使い方は簡単.FDDにFDをさして
$ sudo /sbin/mkbootdisk /dev/fd0
で終り.
- 電源を落とす
旧HDDに合わせてパーティションを分割する
-
- ソフトウェアRAID用のパーティションは,IDを 0xfd にする
- サイズは,オリジナルと同じか大きければ良い
- パーティション番号は変えることもできるが,合わせておいた方が管理が楽
- raidを再構築
パーティション分割がおわったら,あとはraidをrebuildするだけ
# raidhotadd /dev/md0 /dev/sda5
このコマンドを実行すると raid の再構築が始まる.進行状況は
$ cat /proc/mdstat
で確認可能