阿里雲團隊努力不懈,讓最新技術內容能以更快方式以您最熟悉的語言呈現給您。本文內容由機器自動翻譯簡體中文,過程無人工干預。轉碼所造成任何內容錯誤及相關損失,阿里雲概不負責。敬請見諒。若任何內容問題涉及信息準確性,請以英文版為準。
全部產品
Search
文件中心

如何為 Linux 伺服器安裝 GRUB

更新時間: Aug 23, 2018

當您無法通過 遷雲工具 遷移核心版本較低,自帶系統引導程式 GRand Unified Bootloader(GRUB)版本為 1.99 以下的 Linux 伺服器,例如,CentOS 5 和 Debian 7。而且記錄檔提示 Do Grub Failed 時,可能是因為沒有安裝 1.99 以上版本的系統引導程式 GRUB。

本文主要介紹如何為您的原始伺服器安裝系統引導程式 GRUB 1.99 版本。安裝 GRUB 1.99 及以上版本如 1.99 和 2.02 的過程一致,主要差異在於安裝過程中下載的GRUB版本源碼包不同,您可訪問 https://alpha.gnu.org/gnu/grub/ 獲取新版本的下載地址。

安裝 GRUB 1.99 版本

  1. 登入原始伺服器。

  2. 運行以下命令查看原 grub、grub-install 以及 grub-mkconfig 的路徑:

    1. which grub
    2. which grub-install
    3. which grub-mkconfig
  3. 使用 mv 命令為舊版本 grub、grub-install 以及 grub-mkconfig 改名以備份檔案。您可以在使用遷雲工具遷移伺服器後,恢複原名以使用原配置。

    1. mv /sbin/grub /sbin/grub-old
    2. mv /sbin/grub-install /sbin/grub-install-old
    3. mv /sbin/grub-mkconfig /sbin/grub-mkconfig-old
  4. 運行 yum install -y bison gcc make 安裝 GRUB 依賴的 bison、gcc 以及 make 工具。

  5. 運行以下命令安裝 flex。

    1. test -d /root/tools || mkdir -p /root/tools
    2. cd /root/tools
    3. wget https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
    4. tar xzf flex-2.6.4.tar.gz
    5. cd flex-2.6.4
    6. mkdir -p build
    7. cd build
    8. ../configure
    9. make && make install
    10. ln -s /usr/local/bin/flex /usr/bin/flex
  6. 運行以下命令安裝 GRUB 1.99 依賴。

    1. test -d /root/tools || mkdir -p /root/tools
    2. cd /root/tools
    3. wget https://alpha.gnu.org/gnu/grub/grub-1.99~rc1.tar.gz
    4. tar xzf grub-1.99~rc1.tar.gz
    5. cd grub-1.99~rc1
    6. mkdir -p build
    7. cd build
    8. ../configure
    9. sed -i -e "s/-Werror//" ./grub-core/Makefile
    10. make && make install
    11. ln -s /usr/local/sbin/grub-install /sbin/grub-install
    12. ln -s /usr/local/sbin/grub-mkconfig /sbin/grub-mkconfig

    說明:若編譯過程中出現了 -Werror 報錯,您可以定位到編譯對象的編譯檔案 makefile 中,去掉 -Werror 選項重新編譯。

  7. 運行 grub-install --version 檢查 GRUB 版本是否更新為 1.99。

下一步

  1. 成功更新系統引導程式 GRUB 1.99 版本後,您可以使用 遷雲工具 遷移伺服器至阿里雲。

  2. (可選)遷雲成功後,運行以下命令恢複使用舊版本 GRUB:

    1. rm /sbin/grub-install
    2. rm /sbin/grub-mkconfig
    3. rm /boot/grub/grub.cfg
    4. mv /sbin/grub-old /sbin/grub
    5. mv /sbin/grub-install-old /sbin/grub-install