今回やったことは、下記の2つ。
①ブートパーティションをフォーマットしても無事に残りのディスクsdbからブートするか
②SATA1(/dev/sda)のMBRをクリアしても、SATA2(/dev/sdb)のMBRから起動するか
まずは①の確認。
故障のラベルを貼る
mdadm /dev/md2 -f /dev/sda1
そうすると、[UU]が[_U]となって片方のパーティションが異常となった状態となる。
この状態でリブートしても、正常にsdb1のブートパーティションから立ち上がる。
sda1をフォーマット
mke2fs -j /dev/hda1
マウントしてデータが消えたか確認。
mount /dev/sda1 /mnt ls /mnt umount /mnt
リブートしたらブートせず。予想通り、SATA1のMBRがSATA1の/bootを呼び出そうとして、ダメだったみたい。つまり、/bootの領域が壊れた場合は、ディスクを抜くか、MBRをクリアするかしとかないと危ない。
とりあえず、SATA1のケーブルを抜いて、SATA2でブート。
その後、シャットダウンして、SATA1のケーブルを再度接続。するとSATA2のHDDから正常にブートする。
どうやら、SATAは、最後にブートしたHDDのMBRを見に行くみたい(もしかしたらHPサーバだけかもしれないけど)
bootして、SATA1 sdaのmbrをクリアしてリブート。
dd if=/dev/zero of=/dev/sda bs=512 count=1 1+0 records in 1+0 records out
今度は、SATA2のMBRのみで正常に起動することを確認。
cat /proc/mdstatで、sdbのみ動作していることを確認。
Personalities : [raid1] md2 : active raid1 sdb1[1] 513984 blocks [2/1] [_U] md1 : active raid1 sdb3[1] 239585280 blocks [2/1] [_U] unused devices:
最後に、sdaディスクの同期を復旧させて、MBRも戻して完了しようとしたら、/dev/sdaのパーティションが崩れたので、fdiskでパーティションの作成。
詳しくは、http://www.ysd.bne.jp/linux/raid.htmlを参照。
パーティション作成後、ディスクの同期復旧 mdadm /dev/md2 -a /dev/sda1 mdadm /dev/md1 -a /dev/sda3 同期の完了後、MBRを戻す # grub grub> device (hd0) /dev/sda grub> root (hd0,0) Filesystem type is ext2fs, partition type 0xfd grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf grub> quit
これで、SATA1が壊れて新しいディスクになっても、復活できる。
SATA2が壊れても同様にする。たとえば下記・
# grub grub> device (hd1) /dev/sdb grub> root (hd1,0) Filesystem type is ext2fs, partition type 0xfd grub> install /grub/stage1 (hd1) /grub/stage2 p /grub/grub.conf grub> quit
RAIDにした際の、sdbのgrubの設定は下記に詳しく説明されている
http://www.miraclelinux.com/technet/faq/data/00080.html