grub rescure> error: invalid arch independent elf magic

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
knightmade
帖子: 8
注册时间: 2013-04-19 16:56
系统: Ubuntu 13.04
送出感谢: 0
接收感谢: 0

grub rescure> error: invalid arch independent elf magic

#1

帖子 knightmade » 2013-04-27 17:50

先说一句,这个问题已经在度娘和google搜过N多了,搜到基本上都是同一篇文章拷贝来拷贝去的,都解决不了问题。
求求各位,请不要再把下面这篇文章拷贝过来了!
解决Grub Rescue: invalid arch independent ELF magic问题

环境:
硬件:联想服务器:ThinkCentre M8400T/CPU Core i5/内存 4GB/硬盘 1TB。
安装媒介:用Ubuntu Server 12.04.2 LTS的光盘镜像转成的U盘安装盘
系统引导模式:UEFI
分区计划:/dev/sda1 主分区 250M EFI引导区 可启动
/dev/sda2 主分区 250M ext2 /boot分区
/dev/sda5 逻辑分区 剩余全部空间 LVM分区
卷组中只划分了两块逻辑卷,其他空间暂时保留:
/dev/vg00/system 50G ext4 /
/dev/vg00/swap 4G swap

问题描述:
@ 全新安装Ubuntu,安装之前低格过,没有任何残留。
@ 安装过程正常,没有报错,重启后无法启动.
@ 若直接启动报错信息如为:
Error 1962: No operating system found. Press any key to repeat boot sequence.
@ 若引导时,按F12键,手工选择从指定的硬盘(只有一块硬盘)启动,则报错如下:
error: unknown filesystem.
grub rescue>


刚才我提到的网上被传烂了的文章,里面的方法我也试过,完全不起作用。
grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1)
grub rescue> set
prefix=(hd0,msdos1)/grub
root=hd0,msdos1
grub rescue> ls (hd0,msdos1)/ # 这块应该是EFI启动分区
error: unkonwn filesystem. # 和系统启动时同样的错误
grub rescue> ls (hd0,msdos2)/ # 这块应该是/boot分区
./ ../ lost_found/ efi/ ..... # /boot分区内的文件都能看到
grub rescue> set prefix=(hd0,msdos2)/grub # 按那篇文章内的方法来做,错误如下
grub rescue> set root=hd0,msdos2
grub rescue> insmod /grub/normal.mod
error: invalid arch independent ELF magic.

另外,用liveusb重新引导后,刷新grub也是一样的老问题,没作用:
# mount /dev/vg00/system /mnt
# chroot /mnt/ /bin/bash
# mount /dev/sda2 /boot
# mount /dev/sda1 /boot/efi
# grub-install --root-directory=/ /dev/sda
# update-grub

重启之后,还是同样的错误。
头像
niumao
帖子: 371
注册时间: 2010-10-27 20:43
送出感谢: 2 次
接收感谢: 15 次

Re: grub rescure> error: invalid arch independent elf magic

#2

帖子 niumao » 2013-04-27 23:47

看了那篇文章,它转引的第二篇有一种解决方法:

代码: 全选

sudo mount /dev/sda1 /mnt
sudo grub-install --root-directory=/mnt /dev/sda
注意这里sda1是它的boot分区。或者对应过来是efi分区。
挂载后安装grub时候 root那一句是对应到挂载点的,不是/。你这里肯定写的不对了。
我感觉应该是 把/改为/boot/efi 才对。

我也遇到同样问题。我用的是--boot=/mnt 这种,解决了。但那篇转引的英文说boot不对
,root才对。也搞不懂原理。

区别是使用root时候在EFI上根分区上建立的是 /boot/grub目录.使用boot时候是在EFI分区根目录上建立grub目录。
上次由 niumao 在 2013-04-28 0:03,总共编辑 2 次。
牛是牛顿的牛 毛是朱毛的毛
头像
niumao
帖子: 371
注册时间: 2010-10-27 20:43
送出感谢: 2 次
接收感谢: 15 次

Re: grub rescure> error: invalid arch independent elf magic

#3

帖子 niumao » 2013-04-27 23:57

此外,这两句执行完以后还是没有生成grub.cfg文件。需要手动生成grub.cfg。
原来是--boot-directory=/mnt的话,grub目录在/mnt下。

代码: 全选

sudo grub-mkconfig -o /mnt/grub/grub.cfg
如果原来是--root-directory=/mnt,那么grub目录是/mnt/boot/下。应该是

代码: 全选

sudo grub-mkconfig -o /mnt/boot/grub/grub.cfg
牛是牛顿的牛 毛是朱毛的毛
knightmade
帖子: 8
注册时间: 2013-04-19 16:56
系统: Ubuntu 13.04
送出感谢: 0
接收感谢: 0

Re: grub rescure> error: invalid arch independent elf magic

#4

帖子 knightmade » 2013-04-28 11:56

老哥,我用你说的方法有实验了一下,还是不行,问题现象又不同了。

用liveusb启动,挂载硬盘root分区的文件系统,然后步骤如下:

代码: 全选

# mount /dev/sda1 /mnt
# grub-install --boot-directory=/mnt /dev/sda
# update-grub
重启系统,提示信息“secure boot not enabled”。

niumao 写了:看了那篇文章,它转引的第二篇有一种解决方法:

代码: 全选

sudo mount /dev/sda1 /mnt
sudo grub-install --root-directory=/mnt /dev/sda
注意这里sda1是它的boot分区。或者对应过来是efi分区。
挂载后安装grub时候 root那一句是对应到挂载点的,不是/。你这里肯定写的不对了。
我感觉应该是 把/改为/boot/efi 才对。

我也遇到同样问题。我用的是--boot=/mnt 这种,解决了。但那篇转引的英文说boot不对
,root才对。也搞不懂原理。

区别是使用root时候在EFI上根分区上建立的是 /boot/grub目录.使用boot时候是在EFI分区根目录上建立grub目录。
头像
niumao
帖子: 371
注册时间: 2010-10-27 20:43
送出感谢: 2 次
接收感谢: 15 次

参数--uefi-secure-boot?

#5

帖子 niumao » 2013-04-28 12:11

哦。抱歉少说了一步。
你在grub-install时候加上一个参数,例如 --target 故意出个错
这个是错误参数,会出现提示信息的。
接着把提示信息中的正确参数加上: 好像是 --uefi-secure-boot
去掉那个错误参数。也许可以。
(但提示信息也说了 这个参数 --uefi-secure-boot 如果要起作用,
需要安装一个 signed?签过名的?一个image文件。应该把那个文件也装上吧?
我是在新立德里面和efi相关的装上好几个signed的东西,呵呵)
上次由 niumao 在 2013-04-28 12:21,总共编辑 1 次。
牛是牛顿的牛 毛是朱毛的毛
头像
niumao
帖子: 371
注册时间: 2010-10-27 20:43
送出感谢: 2 次
接收感谢: 15 次

需要grub-efi

#6

帖子 niumao » 2013-04-28 12:19

注意,如果提示参数中没有 --uefi-secure-boot
说明你的grub2s是grub-pc.那就需要先安装grub-efi.
牛是牛顿的牛 毛是朱毛的毛
头像
niumao
帖子: 371
注册时间: 2010-10-27 20:43
送出感谢: 2 次
接收感谢: 15 次

Re: grub rescure> error: invalid arch independent elf magic

#7

帖子 niumao » 2013-04-28 15:40

牛是牛顿的牛 毛是朱毛的毛
回复

回到 “启动和引导”