赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 操作指南
  5. 镜像
  6. 镜像FAQ
  7. 使用实例时镜像相关问题
  8. 如何为Linux服务器安装GRUB?

如何为Linux服务器安装GRUB?

  • 使用实例时镜像相关问题
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

通过服务器迁移中心SMC迁移Linux源服务器时,若Linux源服务器未安装GRUB、系统版本较低(如CentOS 5和Debian 7)、自带的系统引导程序GRUB( GRand Unified Bootloader)版本低于2.02,日志文件提示Do Grub Failed时,您需要安装GRUB的2.02及以上版本。

背景信息

本文以GRUB 2.02版本为例,介绍在Linux服务器上安装系统引导程序GRUB的操作步骤。安装其他版本的操作步骤与此相同,主要差异在于安装过程中需下载相应版本的GRUB源码包。详情请参见下载相应版本的GRUB源码包。

操作步骤

  1. 登录Linux源服务器。

  2. 依次运行以下命令,查看原grub、grub-install以及grub-mkconfig的路径。

    which grub
    which grub-install
    which 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迁移服务器后,恢复原名以使用原配置。

  3. 运行以下命令,安装GRUB依赖的bison、gcc以及make工具。

    yum install -y bison gcc make
  4. 依次运行以下命令,安装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
    3. 解压flex安装包。

      tar xzf flex-2.6.4.tar.gz
    4. 进入安装包并创建build文件夹。

      cd flex-2.6.4
      mkdir -p build
    5. 进入build文件夹,编译安装flex。

      cd build
      ../configure
      make && make install
    6. 创建软连接。

      ln -s /usr/local/bin/flex /usr/bin/flex
  5. 依次运行以下命令,安装GRUB。

    CentOS 5、Red Hat Enterprise Linux 5、Debian 7、Amazon Linux或Oracle Linux等低版本操作系统,更新GRUB至2.02及以上版本。

    1. 判断是否存在文件夹tools,如果不存在则创建。

      test -d /home/testuser/tools || mkdir -p /home/testuser/tools
    2. 进入tools文件夹,并下载GRUB 2.02安装包。

      cd /home/testuser/tools
      wget https://alpha.gnu.org/gnu/grub/grub-2.02~rc1.tar.gz
    3. 解压GRUB 2.02安装包。

      tar xzf grub-2.02~rc1.tar.gz
    4. 进入安装包并创建build文件夹。

      cd grub-2.02~rc1
      mkdir -p build
    5. 进入build文件夹,编译安装GRUB。

      cd build
      ../configure
      sed -i -e "s/-Werror//" ./grub-core/Makefile
      sed -i -e "s/-Werror//" ./Makefile
      make && make install
    6. 创建软连接。

      ln -s /usr/local/sbin/grub-install /sbin/grub-install
      ln -s /usr/local/sbin/grub-mkconfig /sbin/grub-mkconfig
    说明

    若编译过程中出现了-Werror报错,您可以定位到编译对象的编译文件makefile中,去掉-Werror选项重新编译。

  6. 运行以下命令,检查是否已成功安装或更新至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
相关文章

AMD实例更新GuestOS内核后,可能出现性能下降问题的说明 2025-04-01 12:00

本文介绍使用AMD CPU的ECS实例更新GuestOS内核后,可能出现性能下降问题的原因和解决方案。 问题描述 使用A

Linux时间和时区说明 2025-04-01 12:00

本文主要介绍Linux操作系统中时间和时区相关的基本概念与操作,并介绍部分阿里云Linux公共镜像中时钟配置的相关变化。 背景信息 Linux操作系统中时间

UEFI镜像的Windows实例VNC连接后无法修改分辨率 2025-04-01 12:00

使用UEFI镜像的Windows实例VNC连接后,不支持在系统内部修改分辨率,您可以参考本文操作在UEFI配置菜单中修改分辨率。 问题现象 使用UEFI镜像的Windows实例VNC连接后无法修改分辨率。

Windows Server半年渠道镜像与实例管理 2025-04-01 12:00

云服务器ECS提供的Windows Server半年渠道镜像是一款纯Server Core模式运行的操作系统,不提供图形化用户界面。Windows Server半年渠道镜像对硬件要求宽松许多,降低了更新频率并且支持远程管理。本文介绍如何管理由该类镜像创建的Windows Server半年渠道实例。

使用RSA密钥无法登录ECS实例问题 2025-04-01 12:00

当您使用Ubuntu、CentOS Stream 9等操作系统的ECS实例,且通过RSA密钥在FinalShell、nuoshell等部分SSH客户端连接ECS实例时,可能出现登录失败的问题,您可以参考本文的操作进行解决。 背景信息

如何为Linux服务器安装GRUB? 2025-04-01 12:00

通过服务器迁移中心SMC迁移Linux源服务器时,若Linux源服务器未安装GRUB、系统版本较低(如CentOS 5和Debian 7)、自带的系统引导程序GRUB( GRand Unified Bootloader)版本低于2.02,日志文件提示Do Grub Failed时,您需要安装GRUB

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号