インストールでブートディスクをソフトウェア RAID 1 (ミラーリング) (例えば以下の構成) に設定すると、「ブートローダをインストールする場所」が「/dev/md0 RAID デバイス」と表示されます。
しかし、実際には GRUB のインストールは1本目のディスクには行われますが、2本目のディスクには行われません。つまり、sda の MBR には GRUB がインストールされますが、sdb の MBR にはインストールされません。
そのため、1本目のディスク (sda) が故障した場合、2本目のディスク(sdb) から起動しようとしても GRUB が無いので、システムが起動しません。
-
df コマンドを使用して /boot ディレクトリのファイルシステムを特定します。
[root@localhost root]# df /boot
Filesystem 1K-ブロック 使用 使用可 使用% マウント位
/dev/md0 101018 68103 27699 72% /boot
[root@localhost root]#
この結果から /boot は / とは独立しており /dev/md0 であることが分かりました。
もしも次のような出力だった場合、/boot は / に含まれています。
[root@localhost root]# df /boot
Filesystem 1K-ブロック 使用 使用可 使用% マウント位
/dev/md0 101018 68103 27699 72% /
[root@localhost root]#
-
次にこのファイルシステム /dev/md? がどの物理ディスクで構成されているかを特定します。
grep コマンドを使って先ほどの結果 md0 をキーワードに検索します。
[root@localhost root]# grep md0 /proc/mdstat
md0 : active raid1 sdb1[1] sda1[0]
[root@localhost root]#
この結果から、/dev/md0 は /dev/sdb1 と /dev/sda1 から構成されていることが分かりました。
/dev/sda が1本目のディスク、/dev/sdb が2本目のディスクであるため、
これから /dev/sdb の MBR に GRUB をインストールする必要があります。
-
GRUB のコマンドによるインストール手順を説明します。
既に GRUB コマンドを理解している場合は 4 に進んで構いません。
はじめに GRUB を起動します。
# grub
grub>
次に、/boot ディレクトリを含むディスクパーティションを
root デバイスに指定します。もし
/dev/sdb1 に /boot ディレクトリの中身が含まれいる場合、これを
GRUB で指定するコマンドは
grub> device (hd0) /dev/sdb <--- /dev/sdb を hd0 とするコマンド
grub> root (hd0,0) <--- hd0 の一つ目のパーティションを
現在の root デバイスとするコマンド
となります。もしも、/dev/sdc2 を指定する場合は
grub> device (hd0) /dev/sdc
grub> root (hd0,1)
となります。「hd0,」 の次の数字が、「/dev/sdb」の次の数字に対応します。
hd0,0 - /dev/sdb1
hd0,1 - /dev/sdb2
hd0,2 - /dev/sdb3
...
最後に root デバイスに GRUB をインストールします。
/boot と / のファイルシステムが分かれている場合は
grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
です。/boot と / が同一のファイルシステムにある場合は
grub> install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/grub.conf
です。
インストール後は、quit で grub を終了して下さい。
以上で GRUB のインストールは終了です。
-
2本目のディスクに GRUB をインストールするコマンドをあらためて紹介します。
(a) /dev/sda1 と /dev/sdb1 が /dev/md0 を構成し /boot パーティションとしてマ
ウントされている場合
# grub
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
grub> quit
(b) /dev/sda1 と /dev/sdb1 が /dev/md0 を構成し / パーティションとしてマウン
トされており、この中に /boot ディレクトリが含まれている場合
# grub
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/grub.conf
grub> quit
MIRACLE LINUX V3.0において、Intel ICH5 または 6300ESB のシリアル ATA HDD を 2個使用してソフトウェア RAID 1 を構成する場合は、以上で紹介した GRUB のインストールに加えて、バージョン 2.4.21-9.37AX 以降へのカーネルアップデートを実施して下さい。 2.4.21-9.34AX 以前のカーネルでは、2本目の HDD だけが接続されている状態ではシステムが起動しません。