通過服務器遷移中心SMC遷移Linux源服務器時,若Linux源服務器未安裝GRUB、系統(tǒng)版本較低(如CentOS
5和Debian 7)、自帶的系統(tǒng)引導程序GRUB( GRand Unified Bootloader)版本低于2.02,日志文件提示Do Grub
Failed時,您需要安裝GRUB的2.02及以上版本。
背景信息
本文以GRUB
2.02版本為例,介紹在Linux服務器上安裝系統(tǒng)引導程序GRUB的操作步驟。安裝其他版本的操作步驟與此相同,主要差異在于安裝過程中需下載相應版本的GRUB源碼包。
操作步驟
-
登錄Linux源服務器。
-
依次運行以下命令查看原grub、grub-install以及grub-mkconfig的路徑。
-
如果任一命令提示路徑不存在,說明源服務器中未安裝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遷移服務器后,恢復原名以使用原配置。
-
安裝GRUB依賴的bison、gcc以及make工具。
yum install -y bison gcc make
-
依次運行以下命令安裝flex。
-
判斷是否存在文件夾tools,如果不存在則創(chuàng)建。
test -d /root/tools || mkdir -p /root/tools
-
進入tools文件夾,并下載flex安裝包。
cd /root/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
-
進入安裝包并創(chuàng)建build文件夾。
cd flex-2.6.4 mkdir -p build
-
進入build文件夾,編譯安裝flex。
-
創(chuàng)建軟連接。
ln -s /usr/local/bin/flex /usr/bin/flex
-
依次運行以下命令安裝GRUB。
CentOS
5、Red Hat Enterprise Linux 5、Debian 7、Amazon Linux或Oracle
Linux等低版本操作系統(tǒng),更新GRUB至2.02及以上版本。
-
判斷是否存在文件夾tools,如果不存在則創(chuàng)建。
test -d /root/tools || mkdir -p /root/tools
-
進入tools文件夾,并下載GRUB 2.02安裝包。
cd /root/tools
wget https://alpha.gnu.org/gnu/grub/grub-2.02~rc1.tar.gz
-
解壓GRUB 2.02安裝包。
tar xzf grub-2.02~rc1.tar.gz
-
進入安裝包并創(chuàng)建build文件夾。
cd grub-2.02~rc1
mkdir -p build
-
進入build文件夾,編譯安裝GRUB。
sed -i -e "s/-Werror//" ./grub-core/Makefile
sed -i -e "s/-Werror//" ./Makefile make && make install
-
創(chuàng)建軟連接。
ln -s /usr/local/sbin/grub-install /sbin/grub-install ln -s /usr/local/sbin/grub-mkconfig /sbin/grub-mkconfig
說明 若編譯過程中出現(xiàn)了-Werror報錯,您可以定位到編譯對象的編譯文件makefile中,去掉-Werror選項重新編譯。
-
運行以下命令,檢查是否已成功安裝或更新至GRUB 2.02版本。
后續(xù)步驟
-
成功安裝新版本系統(tǒng)引導程序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
如果您有其他問題,可以聯(lián)系北京志遠天成阿里云代理商,為您提供一對一專業(yè)全面的技術服務,同時新老阿里云會員,均可享受我公司代理商價格,歡迎咨詢!
-