SATA1のディスクをフォーマットしてブート(障害テスト)

今回やったことは、下記の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