web-dev-qa-db-ja.com

LinuxソフトウェアRAID1:/ dev / sdaを(物理的に)削除した後に起動する方法は? (LVM、mdadm、Grub2)

Debian 6.0/squeezeでセットアップされたサーバー。スクイーズのインストール中に、2つの500GB SATAディスク(/ dev/sdaと/ dev/sdb)をRAID1(mdadmで管理)として構成しました。 RAIDは、500 GBのLVMボリュームグループ(vg0)を保持します。ボリュームグループには、単一の論理ボリューム(lv0)があります。 vg0-lv0はextfs3でフォーマットされ、ルートパーティションとしてマウントされます(専用の/ bootパーティションはありません)。システムはGRUB2を使用して起動します。

通常の使用では、システムは正常に起動します。

また、シャットダウン後に2番目のSATAドライブ(/ dev/sdb)を削除しようとすると、システムは問題なく起動し、ドライブを再接続した後、RAIDに/ dev/sdb1を--re-addすることができました。アレイ。

しかし:最初のSATAドライブ(/ dev/sda)を取り外した後、システムはそれ以上起動しません! GRUBウェルカムメッセージが1秒間表示された後、システムが再起動します。

/ dev/sdb( "grub-install/dev/sdb")にGRUB2を手動でインストールしようとしましたが、それは役に立ちません。

どうやらsqueezeは、最初のディスクが取り外されたときに2番目のディスクから起動するようにGRUB2を設定できません。これは、この種のソフトウェアRAID1を実行するときに非常に重要な機能のようです。

現時点では、これがGRUB2、LVM、またはRAIDセットアップの問題であるかどうかがわかりません。ヒントはありますか?

6
flight

両方のドライブのMBRにGRUBをインストールする必要があり、GRUBが各ディスクを最初のディスクと見なす方法でインストールする必要があります。システム。

GRUBは、ディスクに独自の列挙を使用します。これは、Linuxカーネルが提示するものから抽象化されています。次のように、grubシェルの「デバイス」行を使用して、最初のディスク(hd0)と見なされるデバイスを変更できます。

device (hd0) /dev/sdb

これは、後続のすべてのコマンドについて、/ dev/sdbをディスクhd0として扱うことをgrubに通知します。ここから、手動でインストールを完了することができます。

device (hd0) /dev/sdb
root (hd0,0)
setup (hd0)

これにより、hd0と見なされるディスクの最初のパーティションにGRUBが設定されます。これは、/ dev/sdbとして設定したばかりです。

念のため、/ dev/sdaと/ dev/sdbの両方に対して同じことを行います。

編集して追加:メモリにコミットするのに十分な頻度でこれを行うまで、私は常に Gentoo Wiki が便利だと感じました。

4
Daniel Lawson

ブートドライブとして機能する3番目のドライブをインストールすることを検討しましたか? RAID 1 lvmセットアップ(CentOS上)が2番目のドライブを起動できないという問題も見ました。完全にはわかりませんが、問題はgrubがネイティブlvmパーティションを処理できないことに起因していると思います。

とにかく、それが私の答えです。システムを起動するためだけに、3番目の小さなドライブをインストールします。ええと、私はあなたが賢くなり、ある種の小さなフラッシュまたはssdデバイスでそれを行うことができるに違いありません。

2
Phil Hollenback

Grubは、MDデバイスにインストールするように指示されたときに、RAID1セットアップを認識し、すべてのスレーブディスクにインストールできる必要があります。

1
Simon Richter

確かにそれは動作するはずです。これは、_grub-install_がGRUB 1.99および2.02でどのように機能するかを示しています。

Sda + sdb RAID1がブートパーティションを保持する方法が何であれ、コアはUUIDによって参照される可能性があります。私の リンクされた質問 をチェックして、そうであるかどうかを確認してください。言い換えると、_grub-install --debug_が--prefix=(md0)/boot/grub/のようなものを示している場合、別のRAIDアレイが最初に見つかった場合に問題が発生する可能性があります。これにより、ここで観察されたクラッシュではなく、おそらく_grub rescue>_プロンプトが表示されます。 。 _--prefix=(mduuid/_を使用している場合は、それを見つける必要があります。

したがって、_grub-install /dev/sda; grub-install /dev/sdb_の場合、これらのドライブの1つを削除してもかまいません。BIOSがドライブの1つからMBRをロードできる限り、検索によってRAIDUUIDとLVが検出されます。ただし、MBRはミラーリングされていません。したがって、インストーラーをすべてのコンポーネントに順番に向けます。

それはすべて理論上です...


この古代の質問に興味があるのは、_Welcome to GRUB!_バナーが表示された後、サーバーが再起動したことです。これは、BIOSが4K /セクタードライブを読み取れないことが原因である可能性があります 同様の症状 。質問者が解決策を見つけたかどうかはわかりません。

ここでのロジックは、ウェルカムメッセージがkernel.imgにあるため、コアの少なくとも一部がロードされている必要があるということです。ただし、 (おそらく古い)マニュアル によると、2番目のセクター読み取りでは、ブロックリストを使用して残りのすべての画像がメモリにロードされます。ブロックリストが破損している場合(またはセクターサイズやその他の理由でLBAオフセットが誤って計算されている場合)、クラッシュ、再起動、またはハングが発生する可能性があります。

0
Cedric Knight