全部產品
Search
文件中心

:如何為Linux伺服器安裝GRUB?

更新時間:May 01, 2025

GRUB(GRand Unified Bootloader)是Linux系統的預設引導程式。當系統引導檔案損壞或需要修複啟動菜單時,需要手動安裝或修複GRUB以恢複系統引導功能。

背景資訊

在通過阿里雲Server Migration Center遷移Linux原始伺服器時,若Linux原始伺服器未安裝GRUB、系統版本較低(如CentOS 5和Debian 7),或內建的GRUB版本低於2.02,記錄檔提示“Do Grub Failed”時,您需要安裝GRUB的2.02及以上版本。

本文以GRUB 2.02版本為例,介紹在Linux伺服器上安裝系統引導程式GRUB的操作步驟。安裝其他版本的操作步驟與此相同,主要差異在於安裝過程中需下載相應版本的GRUB源碼包。詳情請參見下載相應版本的GRUB源碼包

操作步驟

步驟一:查看GRUB版本

  1. 使用root賬戶登入Linux原始伺服器。

  2. 運行以下命令,查看原GRUB及其相關工具的路徑。

    which grub
    which grub-install
    which grub-mkconfig
    • 如果任一命令提示路徑不存在,說明原始伺服器中未安裝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遷移伺服器後,恢複原名以使用原配置。

步驟二:安裝依賴工具

運行以下命令,安裝GRUB依賴的bison、gcc以及make工具。

CentOS/RHEL

yum install -y bison gcc make flex

Debian/Ubuntu

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

步驟三:安裝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

步驟四:安裝GRUB

  1. 下載並解壓GRUB 2.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

步驟五:‌驗證安裝

運行以下命令,檢查是否已成功安裝或更新至GRUB 2.02版本。

grub-install --version

後續步驟

  • 成功安裝新版本系統引導程式GRUB後,您可以使用SMC遷移伺服器至阿里雲。具體操作,請參見遷移指引

  • (可選)遷雲成功後,如果您需要使用舊版本的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