#1513 重新激活Linux Loaders(GRUB、GRUB 2、LILO)

icon佟裕在 2026-1-9 下午12:12 编写
  编辑(登录)
  收藏
  响应调查   响应调查

  主题

问题现象

如何重新激活 Linux 加载程序 GRUB、GRUB 2 和 LILO

解决方法

重新激活GRUB

  1. 从Linux安装光盘启动并进入救援模式
  2. 挂载所有分区,并将root从临时root改为已安装系统的root分区
    #mkdir /mnt/tmp
    #mount /dev/sdXY /mnt/tmp (/dev/sdXY是root分区)
    #chroot /mnt/tmp
    
  3. 生成 /etc/mtab
    #grep -v rootfs /proc/mounts > /etc/mtab
  4. 检查一下 GRUB 配置文件是否正确:GRUB 根据你使用的发行版,会将配置存储在 /boot/grub/grub.conf 或 /boot/grub/menu.lst 中
  5. 自动重新激活GRUB
    执行以下命令
    #grub-install /dev/[device name]
    其中 /dev/[device name] 是你要安装 GRUB 的磁盘或分区名称,例如,以下命令将 GRUB 安装到MBR磁盘 /dev/sda
    #grub-install /dev/sda
  6. 如果步骤5失败,请手动重新激活GRUB
    #/sbin/grub
    你将收到一个提示
    grub>
    Please issue the commands (在这个例子中4是root分区):
    grub>root (hd0,4)
    grub> setup (hd0)
    
    你将看到输出
    Checking if "/boot/grub/stage1" exists... yes
    Checking if "/boot/grub/stage2" exists... yes
    Checking if "/boot/grub/reiserfs_stage1_5" exists... yes
    Running "embed /boot/grub/reiserfs_stage1_5 (hd0)"... 18 sectors are embedded.
    succeeded
    Running "install /boot/grub/stage1 (hd0) (hd0)1+18 p (hd0,4)/boot/grub/stage2
    /boot/grub/grub.conf"... succeeded
    Done.
    grub>
    
  7. 重启

重新激活GRUB 2

如果使用 Acronis 软件恢复 Linux 分区,其 UUID 会发生变化,导致 GRUB 2 无法启动操作系统并出现错误,例如:Error: invalid arch independent ELF magic
在这种情况下,需要重新安装 GRUB 2

  1. 启动Live CD,例如Ubuntu Live CD
  2. 从桌面打开终端:应用程序 -> 附件 -> 终端
  3. 确定你的常规系统分区
    sudo fdisk -l
  4. 如果不确定,执行以下命令,查找正确的磁盘大小和ext3或ext4格式
    df -Th
  5. 挂载你的普通系统分区
    sudo mount /dev/sdXY /mnt
  6. 如果你不确定挂载了正确的分区,挂载后运行以下命令检查分区
    ls /mnt
    如果是正确的分区,你应该会看到正常的Linux文件夹,比如/bin、/boot、/etc、/home等
    示例
    sudo mount /dev/sda1 /mnt
    注意:挂载分区通常是安装Linux的分区:SDA1、SDB5等。如果你有单独的 /boot 分区,使用该分区所在的设备。Grub 2 在安装在 BIOS 启动的驱动器的主板(MBR)中效果最佳。还要记住,你在这一步挂载了分区(包括编号),但之后执行“sudo grub-install”命令时不会包含分区号。GRUB 2 将第一个驱动器(X)计为“0”,但第一个分区(Y)为“1”。
    只有当你有独立的启动分区时才会这样做
    sudo mount /dev/sdXY /mnt/boot
    其中 sdXY 是你的 /boot 分区编号
  7. 重装GRUB 2
    sudo grub-install --root-directory=/mnt /dev/sdX
    不要包含分区号,例如
    sudo grub-install --root-directory=/mnt /dev/sda
    注意:替换安装Ubuntu的设备——SDA、SDB等。不要指定分区号
  8. 卸载分区
    sudo umount /mnt
  9. 如果你挂载了一个单独的 /boot 分区,先卸载它
    sudo umount /mnt/boot
  10. 重启

重新激活LILO

  1. 从Linux安装光盘启动并进入救援模式
  2. 挂载所有分区,并将root从临时root改为已安装系统的root分区
    #mkdir /mnt/tmp
    #mount /dev/sdXY /mnt/tmp (/dev/sdXY是root分区)
    #chroot /mnt/tmp
    
  3. 执行以下命令重新激活LILO
    #/sbin/lilo
  4. 重启

更多信息


原文链接:https://care.acronis.com/s/article/Reactivating-Linux-Loaders-GRUB-GRUB-2-LILO?language=en_US

 附加文件     - [0]


 添加评论