まれに、GRUB ローダーが破損する場合があります。この投稿では、CentOS/RHEL 5 または 6 に GRUB ローダーを再インストールする方法を説明しています。
GRUB が破損したことをどうやって知るのですか
以下は、GRUB ローダーが破損した場合に見られる症状の一部です。
1.サーバーの起動時に GRUB メニューが表示されない
2.インストール DVD を使用してサーバーをレスキュー モードで起動し、起動ディスクのヘッダーを確認します。GRUB ローダーが破損している場合:
# file -s /dev/sda /dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 64998927 sectors; partition 2: ID=0x82, starthead 254, startsector 64998990, 2104515 sectors
良いものは次のように見えますが:
# file -s /dev/sda /dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 64998927 sectors; partition 2: ID=0x82, starthead 254, startsector 64998990, 2104515 sectors, code offset 0x48
出力はリリースごとに異なる場合がありますが、重要な点は、最初の出力に「コード オフセット 0x48」がないことです。 これは、GRUB ステージ 1 コードの指標です。
GRUB ローダーの再インストール
起動ディスクが sda であると仮定しましょう 、/ パーティションは sda2 です 、および /boot パーティションは sda1 です .
1. サーバーをレスキュー モードで起動し、ファイル システムを自動的にマウントします。サーバーをレスキューモードで起動する方法については、以下の投稿を参照してください。
CentOS / RHEL 6 :レスキュー モードで起動する方法2. / パーティションは /mnt/sysimage の下にマウントされます 自動的。そうでない場合は、手動でマウントしてください:
# mount /dev/sda2 /mnt/sysimage
3. /boot パーティションと /dev を手動でマウントして、chroot 環境を準備します。
# mount /dev/sda1 /mnt/sysimage/boot # mount -o bind /dev /mnt/sysimage/dev # chroot /mnt/sysimage
4. GRUB ローダーを再インストールします
# grub-install /dev/sda
サーバーを再起動すると、GRUB メニューが表示されるはずです。
# rebootCentOS / RHEL 7 :レスキュー モードから GRUB2 を再インストールする方法
マルチパス デバイスに grub を再インストールする
マルチパス デバイスを使用してストレージ エリア ネットワーク (SAN) から起動するように構成されたサーバーで grub の再インストールが必要な場合は、次の手順に従います。ブート デバイスのマスター ブート レコード (MBR) が破損したり、他のブート ローダーによって上書きされたりすると、Grub を再インストールする必要があります。また、サーバーのインストール後に SAN 構成からのブートが有効になった場合や、シングルパスの SAN ブート デバイスがマルチパスになるように再構成された場合など、インストール後にブート デバイスが変更される場合にも必要です。
1. 「linux レスキュー mpath」を使用して、マルチパスを有効にしてサーバーをレスキュー モードで起動します。 」 起動オプション。現在のマルチパス構成を表示するには、レスキュー環境から次のコマンドを実行できます:
# multipath -ll
2. /etc/fstab を編集して、プレーン名 (/dev/sdY) の代わりにマルチパス デバイス名 (/dev/mapper/mpathX) を使用して /boot をマウントします。デバイス識別の信頼性を高めるために、/boot の UUID を使用することをお勧めします。
3. /boot を含むマルチパス デバイスを grub に追加し、以下を使用してブート ローダーをインストールします。
# grub grub> device (hd0) /dev/mapper/mpatha grub> root (hd0,0) grub> setup (hd0) grub> quit
注意 :grub-install コマンドは、マルチパス デバイスでは機能しません。
4. 以下の投稿を参照して初期 RAM ディスクを再生成します。
CentOS / RHEL 6 :初期 RAM ディスク イメージの再構築方法CentOS / RHEL 5 :初期 RAM ディスク イメージの再構築方法