web-dev-qa-db-ja.com

Linux RAID 1:セカンダリHDブートを作成する方法?

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を実行しても安全ですか?これは起動可能にする正しい方法ですか?

5
Fernando

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をインストールする必要があります。

12
dawud

ソフトウェア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にのみ誘導できます。そうでない場合、ブートセクターをバイパスしてカーネルをロードします(コードによって異なります)。私の理解では同じディスク内のみ。

4
paulcube