Centos 6.5サーバーに次のRAID 1があります。
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[3]
974713720 blocks super 1.0 [2/1] [_U]
bitmap: 7/8 pages [28KB], 65536KB chunk
md1 : active raid1 sdb2[3] sda2[2]
2045944 blocks super 1.1 [2/2] [UU]
unused devices: <none>
# df -h
Sist. Arq. Size Used Avail Use% Montado em
/dev/md0 915G 450G 420G 52% /
tmpfs 7,8G 0 7,8G 0% /dev/shm
/ dev/sdaが失敗しようとしています。読み取りエラーを引き起こしていたので、私はそれを欠陥があるとマークしました。
今日、/ dev/sdaを置き換える新しいHDを入手しました。
問題は、現在の/ dev/sdaを取り外したときに、/ dev/sdbだけでブートすることができないことです。 PCのBIOSが/ dev/sdbで起動可能なものを見つけられないようです。
1)grubが/ dev/sdbのMBRにインストールされているかどうかをどのように検出できますか?
2)/ dev/sdbでgrub-installを実行しても安全ですか?これは起動可能にする正しい方法ですか?
1)grubが/ dev/sdbのMBRにインストールされているかどうかをどのように検出できますか?
以下を発行できます。
# dd if=/dev/sda bs=512 count=1 | xxd | grep -i grub
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00103986 s, 492 kB/s
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
2)/ dev/sdbでgrub-installを実行しても安全ですか?これは起動可能にする正しい方法ですか?
はい、アレイの両方のディスクにgrub
をインストールする必要があります。
ソフトウェアRAIDにタグを付けたので、GRUBの学習が役立ちます: RAID障害の後に起動する方法(ソフトウェアRAID)?
GRUB Legacyは/boot/grub/device.mapファイルでHDDデバイスを識別し、それらをLinuxデバイスにマップします。 GRUBレガシー(ブートマネージャー)ファイルは、Linuxと同じようにディスクを識別しません。/dev/sdaの代わりに、最初のディスクは(hd0)として識別されます。
Grubコマンドのチュートリアルは、オンラインの他の場所にあります。
基本的に、リンクの作成者は、各LinuxデバイスがGRUB Legacy(device.mapファイルに従ってそれを表示するため)など)の同じドライブとして扱われるgrubコマンドを実行します(例:(hd0) (hd1)などではなく3つのディスクすべてに対して。これにより、冗長性のために(hd0)と/ dev/sdaなどの間の正しいマッピングが保証されます。
ただし、リンクの作成者が指摘したソリューションでは、MBRは変更されません。ディスク障害の前に、代替のソフトウェアRAID固有のソリューションを実行する必要があります。それ以外の場合は、ブートディスク/デバイスが必要です。 LVMを使用する場合でも、各ディスクのMBRは、RAID 1アレイの各ディスクで同じである必要があります。 MBRブートローダーは、システムを別のディスクに誘導することはできません。同じブートフラグの付いたパーティションのGRUB Legacyにのみ誘導できます。そうでない場合、ブートセクターをバイパスしてカーネルをロードします(コードによって異なります)。私の理解では同じディスク内のみ。