Debian GRUB 救援 - "invalid arch independent ELF magic"



我最近和Debian Wheezy双启动了一台Windows PC。安装进行得很顺利,没有任何错误,但当我启动到Debian时,我立即收到GRUB救援:

Welcome to GRUB!
error: unknown filesystem.
Entering rescue mode...

在进一步检查使用set命令后,我注意到它正在引导到错误的分区:

grub rescue> set
prefix=(hd0,gpt4)/boot/grub
root=hd0,gpt4

在这里,当Debian安装到的位置是(hd0,gpt5)时,它指向(hd0,gpt4)。因此,我使用set快速修复了变量,将其改回原来的样子:

grub rescue> set prefix=(hd0,gpt5)/boot/grub
grub rescue> set root=gd0,gpt5

在做了这些之后,我只做了我记得应该做的事情来引导到操作系统并运行:

grub rescue> insmod normal

当我得到错误时,这就是事情开始出错的地方:

error: invalid arch independent ELF magic.

然后我对这个问题做了一些研究,似乎常见的解决方案是从一张实时CD中重新安装GRUB

sudo mount /dev/sda5 /mnt
sudo grub-install --root-directory=/mnt /dev/sda

我收到错误的地方:

The file /mnt/boot/grub/stage1 not read correctly.

虽然我可以保证这个文件确实存在,并且是可编辑的,因为我可以用编辑它

sudo nano /mnt/boot/grub/stage1

那么问题出在哪里呢?

在系统上安装grub efi修复了一些问题(因为它既支持传统的BIOS引导过程,也支持efi引导),如果你想修复原始的grub安装,答案可能是:

apt-get install --reinstall grub-pc-bin grub-pc

然后是:

grub-install /dev/sdX

其中/dev/sdX应替换为启动驱动器。

这将替换启动驱动器上看起来已损坏的grub二进制文件版本(这就是"无效的独立于arch的ELFmagic"的含义)。

事实证明答案很简单,我需要安装grub-efi包:

sudo apt-get install grub-efi

您可以使用bootrec.exe重建主引导扇区,bootrec.exe是Windows恢复环境中可用的工具。

  1. 插入Windows安装光盘
  2. 按"Press any key to boot from CD or DVD"(按任意键从CD或DVD引导)信息中的任意键从光盘引导
  3. 选择语言、时间和键盘方法(适用于Windows 7用户)后,选择"修复计算机"。XP用户:按R键访问恢复控制台
  4. 选择Windows安装驱动器(通常为C:),然后单击"下一步"。XP用户可能没有此步骤
  5. 在"系统恢复选项"框中选择"命令提示符"。XP用户需要输入管理员密码才能打开命令提示符
  6. 在命令提示符中写入以下命令:

     bootrec /fixmbr
     bootrec /fixboot
     bootrec /rebuildbcd
    

最新更新