すべてのプロダクト
Search
ドキュメントセンター

:Linux サーバーへの GRUB のインストール

最終更新日:May 08, 2025

GRand Unified Bootloader(GRUB)は、Linux オペレーティングシステムのデフォルトのブートローダーです。システムブートファイルが破損した場合、またはブートメニューを修復する必要がある場合は、GRUB をインストールまたは修復して、システムのブート機能を復元する必要があります。

背景情報

サーバー移行センター(SMC)を使用して Linux サーバーを Alibaba Cloud に移行する場合、以下の状況では、サーバーに GRUB v2.02 以降をインストールまたはアップグレードする必要があります。

  • サーバーに GRUB がインストールされていない。

  • サーバーで CentOS 5 や Debian 7 などの初期の Linux ディストリビューションが実行されている。

  • GRUB のバージョンが v2.02 より前である。

  • ログファイルに「Do Grub Failed」というエラーメッセージが表示される。

このトピックでは、Linux サーバーに GRUB をインストールする方法について説明します。この例では、GRUB v2.02 を使用します。異なる GRUB バージョンのインストール手順は同じです。ただし、ソースコードパッケージは GRUB のバージョンによって異なる場合があります。詳細については、/gnu/grub のインデックスをご覧ください。

手順

ステップ 1:GRUB バージョンを確認する

  1. ルートユーザーとして Linux サーバーにログオンします。

  2. 次のコマンドを実行して、現在の GRUB バージョンと関連ツールのファイルパスを確認します。

    which grub
    which grub-install
    which grub-mkconfig
    • 上記のコマンドの出力が、1 つ以上のファイルパスが存在しないことを示している場合、サーバーに GRUB がインストールされていないか、対応するファイルが見つかりません。この場合は、次の手順を実行して GRUB をインストールします。

    • すべてのファイルのパスが見つかった場合は、次のコマンドを実行して、ファイルの名前を変更することでファイルをバックアップします。次に、新しい GRUB バージョンをインストールして、現在のバージョンを上書きします。

      mv /sbin/grub /sbin/grub-old
      mv /sbin/grub-install /sbin/grub-install-old
      mv /sbin/grub-mkconfig /sbin/grub-mkconfig-old
      説明

      SMC を使用してサーバーを移行した後、ファイルの名前を元の名前変更することで、ファイルを復元できます。

ステップ 2:依存関係をインストールする

オペレーティングシステムに基づいて、次のいずれかのコマンドを実行して、bison、gcc、make などの GRUB の依存関係をインストールします。

CentOS または Red Hat Enterprise Linux

yum install -y bison gcc make flex

Debian または Ubuntu

apt-get update && apt-get install -y bison gcc make flex

ステップ 3:flex をインストールする

  1. tools フォルダーが存在しない場合は作成します。

    test -d /home/testuser/tools || mkdir -p /home/testuser/tools
  2. tools フォルダーに移動し、flex インストールパッケージをダウンロードします。

    cd /home/testuser/tools
    wget https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
    tar xzf flex-2.6.4.tar.gz
  3. flex をコンパイルしてインストールし、シンボリックリンクを作成します。

    cd flex-2.6.4
    mkdir -p build
    cd build
    ../configure
    make && make install
    ln -s /usr/local/bin/flex /usr/bin/flex

ステップ 4:GRUB をインストールする

  1. GRUB v2.02 インストールパッケージをダウンロードして解凍します。

    cd /home/testuser/tools
    wget https://alpha.gnu.org/gnu/grub/grub-2.02~rc1.tar.gz
    tar xzf grub-2.02~rc1.tar.gz
  2. GRUB をコンパイルしてインストールし、シンボリックリンクを作成します。

    cd grub-2.02~rc1
    mkdir -p build
    cd build
    ../configure
    # -Werror エラーが報告された場合は、Makefile ファイルを修正し、ファイルから -Werror オプションを削除します。
    sed -i -e "s/-Werror//" ./grub-core/Makefile
    sed -i -e "s/-Werror//" ./Makefile
    make && make install
    ln -s /usr/local/sbin/grub-install /sbin/grub-install
    ln -s /usr/local/sbin/grub-mkconfig /sbin/grub-mkconfig

ステップ 5:インストールを確認する

次のコマンドを実行して、GRUB v2.02 がインストールされているか、GRUB が v2.02 にアップグレードされているかを確認します。

grub-install --version

次のステップ

  • GRUB v2.02 がインストールされているか、GRUB が v2.02 にアップグレードされている場合は、SMC を使用してサーバーを Alibaba Cloud に移行します。詳細については、「移行ガイド」をご参照ください。

  • (オプション) サーバーの移行後にサーバーで以前のバージョンの GRUB を使用する場合、次のコマンドを実行して GRUB を以前のバージョンに復元します。

    rm /sbin/grub-install
    rm /sbin/grub-mkconfig
    rm /boot/grub/grub.cfg
    mv /sbin/grub-old /sbin/grub
    mv /sbin/grub-install-old /sbin/grub-install