Debian GRUB 救援 - “无效的独立于拱门的 ELF 魔法”
Posted
技术标签:
【中文标题】Debian GRUB 救援 - “无效的独立于拱门的 ELF 魔法”【英文标题】:Debian GRUB rescue - "invalid arch independent ELF magic" 【发布时间】:2013-08-09 20:37:46 【问题描述】:我最近使用 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
这里它指向(hd0,gpt4)
,而Debian 的安装位置是(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 的 live 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
那么可能是什么问题?
【问题讨论】:
感谢 --root-directory 参数! 我想知道他们在北极是否有 IT 支持。 【参考方案1】:虽然在您的系统上安装 grub-efi 修复了一些东西(因为它支持传统的 Bios 引导过程以及 EFI 引导),但如果您想修复原始 grub 安装,答案可能是:
apt-get install --reinstall grub-pc-bin grub-pc
接着是:
grub-install /dev/sdX
/dev/sdX
应替换为您的引导驱动器(或多个驱动器)。
...这将替换引导驱动器上看起来已损坏的 grub 二进制文件版本(这是“无效的独立于拱门的 ELF 魔法”的意思)。
【讨论】:
【参考方案2】:原来答案很简单,我需要安装grub-efi
包:
sudo apt-get install grub-efi
【讨论】:
【参考方案3】:您可以使用 Windows 恢复环境中可用的工具 bootrec.exe 重建主引导扇区。
-
插入您的 Windows 安装光盘
在“按任意键从 CD 或 DVD 启动”消息中按任意键以从光盘启动
选择语言、时间和键盘方法后选择修复您的计算机(适用于 Windows 7 用户)。 XP 用户:按 R 键访问故障恢复控制台
选择您的 Windows 安装驱动器(通常是 C:),然后单击下一步。 XP 用户可能没有此步骤。
在系统恢复选项框中选择命令提示符。 XP 用户需要输入管理员密码才能打开命令提示符
在命令提示符中编写以下命令:
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
【讨论】:
以上是关于Debian GRUB 救援 - “无效的独立于拱门的 ELF 魔法”的主要内容,如果未能解决你的问题,请参考以下文章
grub legacy练习 之破坏MBR中的Bootloader,而后在救援模式下修复之