通過(guò)服務(wù)器遷移中心SMC遷移Linux源服務(wù)器時(shí),若Linux源服務(wù)器未安裝GRUB、系統(tǒng)版本較低(如CentOS
5和Debian 7)、自帶的系統(tǒng)引導(dǎo)程序GRUB( GRand Unified Bootloader)版本低于2.02,日志文件提示Do Grub
Failed時(shí),您需要安裝GRUB的2.02及以上版本。
背景信息
本文以GRUB
2.02版本為例,介紹在Linux服務(wù)器上安裝系統(tǒng)引導(dǎo)程序GRUB的操作步驟。安裝其他版本的操作步驟與此相同,主要差異在于安裝過(guò)程中需下載相應(yīng)版本的GRUB源碼包。
操作步驟
-
登錄Linux源服務(wù)器。
-
依次運(yùn)行以下命令查看原grub、grub-install以及grub-mkconfig的路徑。
-
如果任一命令提示路徑不存在,說(shuō)明源服務(wù)器中未安裝GRUB或者文件缺失。您需要參見(jiàn)下文的操作步驟安裝GRUB。
-
如果能夠查看到文件路徑,則需要運(yùn)行以下命令為舊版本grub、grub-install以及grub-mkconfig改名以備份文件,然后參見(jiàn)下文的操作步驟安裝新版本GRUB,覆蓋當(dāng)前版本。
mv /sbin/grub /sbin/grub-old
mv /sbin/grub-install /sbin/grub-install-old
mv /sbin/grub-mkconfig /sbin/grub-mkconfig-old
說(shuō)明 您可以在使用SMC遷移服務(wù)器后,恢復(fù)原名以使用原配置。
-
安裝GRUB依賴的bison、gcc以及make工具。
yum install -y bison gcc make
-
依次運(yùn)行以下命令安裝flex。
-
判斷是否存在文件夾tools,如果不存在則創(chuàng)建。
test -d /root/tools || mkdir -p /root/tools
-
進(jìn)入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
-
進(jìn)入安裝包并創(chuàng)建build文件夾。
cd flex-2.6.4 mkdir -p build
-
進(jìn)入build文件夾,編譯安裝flex。
-
創(chuàng)建軟連接。
ln -s /usr/local/bin/flex /usr/bin/flex
-
依次運(yùn)行以下命令安裝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
-
進(jìn)入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
-
進(jìn)入安裝包并創(chuàng)建build文件夾。
cd grub-2.02~rc1
mkdir -p build
-
進(jìn)入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
說(shuō)明 若編譯過(guò)程中出現(xiàn)了-Werror報(bào)錯(cuò),您可以定位到編譯對(duì)象的編譯文件makefile中,去掉-Werror選項(xiàng)重新編譯。
-
運(yùn)行以下命令,檢查是否已成功安裝或更新至GRUB 2.02版本。
后續(xù)步驟
-
成功安裝新版本系統(tǒng)引導(dǎo)程序GRUB后,您可以使用SMC遷移服務(wù)器至阿里云。
-
(可選)遷云成功后,如果您需要使用舊版本的GRUB,可以運(yùn)行以下命令將GRUB恢復(fù)為舊版本。
-
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
如果您有其他問(wèn)題,可以聯(lián)系北京優(yōu)勝智連阿里云代理商,為您提供一對(duì)一專(zhuān)業(yè)全面的技術(shù)服務(wù),同時(shí)新/老阿里云會(huì)員,均可享受我公司代理商價(jià)格,歡迎咨詢!