web-dev-qa-db-ja.com

ソフトRAID 1にGRUB=を正しくインストールする方法は?

私のセットアップでは、2つのディスクがあり、それぞれ次のようにフォーマットされています。

(GPT)
1)  1MB   BIOS_BOOT
2)  300MB LINUX_RAID   
3)  *     LINUX_RAID   

ブートパーティションは/ dev/md0にマップされ、rootfsは/ dev/md1にマップされます。 md0はext2、md1はXFSでフォーマットされています。 (フォーマットはsdではなくmdデバイスで行う必要があることを理解しています-これが間違っている場合は教えてください)。

GRUB=正しくセットアップして、一方のドライブが故障してももう一方が起動するようにするにはどうすればよいですか?さらに、交換用ドライブにもGRUBが自動的に含まれるようにしますか?これが可能な場合は、コース。

21
vic

2つのディスクが/dev/sda/dev/sdbの場合、grub-install /dev/sdagrub-install /dev/sdbの両方を実行します。その後、両方のドライブが単独で起動できるようになります。

Grubの設定が(hd0)のようなディスクをハードコーディングしないことを確認してください。代わりに、ブートおよびルートファイルシステムのUUIDを検索します。

grub-installが自動的に両方に書き込むように、2つのディスクをRAID-1アレイにあると宣言するGrubのサポートについては知りません。つまり、1つのディスクを交換する場合は、再度grub-installを実行する必要があります。 RAIDアレイに新しいメンバーを追加することに加えて、もう1つ行うことです。

私はこれまでにかなりの数のサーバーでこれを実行し、問題を発見することがあります。通常、次のように実行します

Sudo grub-install /dev/sdb
Sudo update-grub /dev/sdb

私が遭遇した問題は通常、次のようなエラーメッセージで表示されます

update-grub … update-grub failed with no such disk …

これを解決するには、私は実行しました

Sudo mv /boot/grub/device.map /boot/grub/device.map.old 
Sudo update-grub 

これで問題が解決したようです-いくつかのケースでのテストとして、私は削除しました/sdv/sdaおよび使用済み/dev/sdbから起動しますが、これは理想的ではなく、ほとんどの本番環境では不可能です。

3
Tony Doyle

CentOS 5とCentOS 6をインストールしたときの経験は、インストールフェーズでRAID-1を構成したということです。インストールでは、これを選択することができます。発生した内容は次のとおりです。1./dev/sda1をRAIDパーティションとして1 GBとして定義2. RAIDパーティションとして/ dev/sdb1を1 GBとして定義3./dev/sda1で構成されるRAIDデバイス/ dev/md0を作成および/ dev/sdb1 4./dev/md0を使用して/ bootパーティションを作成します。5.手順1〜3を使用して追加のパーティションを作成します。6.手順に従って、手順5で作成したパーティションにLVMを実装しました。

最初のシステムブート後、grub.confでエントリ/ dev/sda1を/ dev/md0に変更しました。次に、スプ​​ラッシュイメージ行のエントリ(hd0,0)をコピーし、先頭に#を追加して、(hd0,0)を(hd1,0)に変更しました。/dev/sdbにgrubをインストールする方法を示す上記の回答を見てください。ブートマウントポイントが/ dev/md0を使用するようにfstabを変更します(これにより、yum更新を実行すると、/ bootパーティションで何かが更新され、/ dev/sda1と/ dev/sdb1の両方に書き込まれます)。/dev/sdaハードドライブに障害が発生した場合は、レスキューを使用して起動し、(hd0,0)行をコメント化し、(hd1,0)行のコメントを外す必要があります。システムは起動可能である必要があります

0
Gene Poole