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 バージョンを確認する
ルートユーザーとして Linux サーバーにログオンします。
次のコマンドを実行して、現在の 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 flexDebian または Ubuntu
apt-get update && apt-get install -y bison gcc make flexステップ 3:flex をインストールする
tools フォルダーが存在しない場合は作成します。
test -d /home/testuser/tools || mkdir -p /home/testuser/toolstools フォルダーに移動し、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.gzflex をコンパイルしてインストールし、シンボリックリンクを作成します。
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 をインストールする
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.gzGRUB をコンパイルしてインストールし、シンボリックリンクを作成します。
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