如何為L(zhǎng)inux服務(wù)器安裝GRUB?
通過服務(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的操作步驟。安裝其他版本的操作步驟與此相同,主要差異在于安裝過程中需下載相應(yīng)版本的GRUB源碼包。詳情請(qǐng)參見下載相應(yīng)版本的GRUB源碼包。
操作步驟
登錄Linux源服務(wù)器。
依次運(yùn)行以下命令,查看原grub、grub-install以及grub-mkconfig的路徑。
which grub which grub-install which grub-mkconfig
如果任一命令提示路徑不存在,說明源服務(wù)器中未安裝GRUB或者文件缺失。您需要參見下文的操作步驟安裝GRUB。
如果能夠查看到文件路徑,則需要運(yùn)行以下命令為舊版本grub、grub-install以及grub-mkconfig改名以備份文件,然后參見下文的操作步驟安裝新版本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
說明您可以在使用SMC遷移服務(wù)器后,恢復(fù)原名以使用原配置。
運(yùn)行以下命令,安裝GRUB依賴的bison、gcc以及make工具。
yum install -y bison gcc make
依次運(yùn)行以下命令,安裝flex。
判斷是否存在文件夾tools,如果不存在則創(chuàng)建。
test -d /home/testuser/tools || mkdir -p /home/testuser/tools
進(jìn)入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
進(jìn)入安裝包并創(chuàng)建build文件夾。
cd flex-2.6.4 mkdir -p build
進(jìn)入build文件夾,編譯安裝flex。
cd build ../configure
make && make install
創(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 /home/testuser/tools || mkdir -p /home/testuser/tools
進(jìn)入tools文件夾,并下載GRUB 2.02安裝包。
cd /home/testuser/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。
cd build ../configure
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
報(bào)錯(cuò),您可以定位到編譯對(duì)象的編譯文件makefile中,去掉-Werror
選項(xiàng)重新編譯。運(yùn)行以下命令,檢查是否已成功安裝或更新至GRUB 2.02版本。
grub-install --version
后續(xù)步驟
成功安裝新版本系統(tǒng)引導(dǎo)程序GRUB后,您可以使用SMC遷移服務(wù)器至阿里云。具體操作,請(qǐng)參見遷移流程。
(可選)遷云成功后,如果您需要使用舊版本的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