Debian GRUB救援 - “无效的拱门独立ELF魔法”

时间:2013-08-08 07:58:56

标签: debian grub

我最近用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,gpt4)时,它指向(hd0,gpt5)。因此,我使用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.

然后我对这个问题进行了一些研究,似乎常见的解决方案是从Live CD重新安装GRUB。所以,我启动了Debian的现场CD并运行了以下内容:

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

那可能是什么问题?

3 个答案:

答案 0 :(得分:5)

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

sudo apt-get install grub-efi

答案 1 :(得分:4)

虽然在您的系统上安装grub-efi固定的东西(因为它支持传统的BIOS启动过程以及EFI启动),但如果您想修复原始的grub安装,答案可能是:

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

接下来是:

grub-install /dev/sdX

其中/dev/sdX应由您的启动驱动器(或驱动器)替换。

...这将取代看起来像grub二进制文件的损坏版本(这是“无效的arch独立ELF魔法”意味着)在启动驱动器上。

答案 2 :(得分:1)

您可以使用Windows恢复环境中提供的bootrec.exe重建主引导扇区。

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

     bootrec /fixmbr
     bootrec /fixboot
     bootrec /rebuildbcd