server Migration Center (SMC) を使用してサーバーをAlibaba Cloudに移行するときに、GRand Unified Bootloader (GRUB) システムブートプログラムがLinuxサーバーにインストールされていない場合は、サーバーにGRUB v2.02以降をインストールする必要があります。 サーバーがCentOS 5やDebian 7などの初期のLinuxディストリビューションを実行している場合、GRUBバージョンが2.02より前であるか、ログファイルに「Do Grub Failed」というエラーメッセージが表示され、GRUBをv2.02以降にアップグレードします。
背景情報
このトピックでは、LinuxサーバーにGRUBをインストールする方法について説明します。 この例では、GRUB v2.02が使用されます。 異なるGRUBバージョンをインストールする手順は同じです。 ただし、ソースコードパッケージはGRUBのバージョンによって異なる場合があります。 詳細については、Index of /gnu/grubをご覧ください。
手順
Linuxサーバーにログオンします。
次のコマンドを順番に実行して、現在のgrubバージョンのgrub、grub-install、GRUB-mkconfigファイルのパスを確認します。
which grub which grub-install which grub-mkconfig
上記のコマンドの出力が、1つ以上のファイルパスが存在しないことを示す場合、GRUBがサーバーにインストールされていないか、対応するファイルが欠落しています。 GRUBをインストールするには、次の手順の操作を実行します。
すべてのファイルのパスが見つかった場合は、次のコマンドを実行して、ファイル名を変更して、grub、grub-install、およびgrub-mkconfigファイルをバックアップします。 新しいGRUBバージョンをインストールすると、新しいバージョンは現在のバージョンを上書きします。
mv /sbin/grub /sbin/grub-old mv /sbin/grub-install /sbin/grub-install-old mv /sbin/grub-mkconfig /sbin/grub-mkconfig-old
説明SMCを使用してサーバーを移行した後、ファイルの名前を元の名前に変更することでファイルを復元できます。
次のコマンドを実行して、bison、gcc、makeなどのGRUB依存関係をインストールします。
yum install -y bison gcc make
次の操作を実行してflexをインストールします。
toolsフォルダが存在するかどうかを確認します。 フォルダが存在しない場合は、フォルダを作成します。
test -d /home/testuser/tools | | mkdir -p /home/testuser/tools
toolsフォルダに移動し、flexインストールパッケージをダウンロードします。
cd /home/testuser/tools wget https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
flexインストールパッケージを解凍します。
tar xzf flex-2.6.4.tar.gz
flexインストールパッケージが解凍されているディレクトリに移動し、buildという名前のフォルダを作成します。
cd flex-2.6.4 mkdir -p build
buildフォルダーに移動し、flexをコンパイルしてインストールします。
cd build ../configure
する
シンボリックリンクの作成
ln -s /usr/local/bin/flex /usr/bin/flex
GRUBをインストールするには、次の操作を実行します。
CentOS 5、Red Hat Enterprise Linux 5、Debian 7、Amazon Linux、Oracle LinuxなどのLinuxオペレーティングシステムの以前のディストリビューションには、GRUB v2.02以降を使用します。
toolsフォルダが存在するかどうかを確認します。 フォルダが存在しない場合は、フォルダを作成します。
test -d /home/testuser/tools | | mkdir -p /home/testuser/tools
toolsフォルダーに移動し、GRUB v2.02インストールパッケージをダウンロードします。
cd /home/testuser/tools wget https://alpha.gnu.org/gnu/grub/grub-2.02~rc1.tar.gz
GRUB v2.02インストールパッケージを解凍します。
tar xzf grub-2.02 ~ rc1.tar.gz
GRUB v2.02インストールパッケージが解凍されているディレクトリに移動し、buildという名前のフォルダを作成します。
cd grub-2.02~rc1 mkdir -p build
ビルドフォルダーに移動し、GRUBをコンパイルしてインストールします。
cd build ../configure
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
説明コンパイルプロセス中に
-Werror
エラーが報告された場合は、makefileコンパイルファイルを見つけ、ファイルから-Werror
オプションを削除してから、GRUBを再コンパイルします。次のコマンドを実行して、GRUB v2.02がインストールされているか、GRUBがv2.02にアップグレードされているかを確認します。
grub-install -- version
次のステップ
GRUB v2.02がインストールされている場合、またはGRUBがv2.02にアップグレードされている場合は、Server Migration Center (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