关于linux多系统硬安装时遇到grub rescure错误与error:invalid arch independent ELF magic问题的解决方案

       这两天,在win7系统中安装ubuntu双系统时,遇到一个grub rescure问题,其实以前遇到过这个问题,怎么都进不了Ubuntu登陆页面,不过之前自己把它解决了,问题出在linux系统启动时引导分区的问题,这几天反反复复试了几次,终于成功修复系统,出现了Ubuntu启动界面,花了昨天一个晚上!!

   其实grub rescure(Linux救援模式)下可用的命令本来就不多(在救援模式下只有很少的命令可以用:set, ls , insmod , root , prefix,少的可怜)。

所以命令就在这几个中间。直接进入正题吧,在grub rescure下输入如下命令:

先使用ls命令,找到Ubuntu的安装在哪个分区:

     grub rescue>ls

会罗列所有的磁盘分区信息,比方说:  (hd0),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1)

然后依次调用如下命令: msdosX表示各个分区,注意 msdos 与 数字之间没有空格!

 grub rescue>ls (hd0,msdosX)/boot/grub

如果都找不到的话,需要查一下是否因为Linux版本差异,造成grub的路径不对,或者你在安装ubuntu时的分区时,是否单独建立了一个引导 /boot目录,那样的话,

 可用直接用

 grub rescue>ls(hd0,X)/grub

假设找到(hd0,msdos10)时,显示了文件夹中的文件,则表示 Linux 安装在这个分区(注:笔者就安装在这个分区,具体看个人设置)。
调用如下命令:
grub rescue>set root=(hd0,msdos10)
grub rescue>set prefix=(hd0,msdos10)/boot/grub
grub rescue>insmod /boot/grub/normal.mod
然后调用如下命令,就可以显示出丢失的grub菜单了。
grub rescue>normal
不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。
进入Linux之后,在命令行执行:
sudo update-grub
sudo grub-install /dev/sda
(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)
重启测试是否已经恢复了grub的启动菜单。
注:sudo gedit /boot/grub/grub.cfg 可以修改 grub 的引导菜单。
一般人到此就OK了,基本就解决问题了,笔者第一次之前遇到这个问题就这样把它解决了。但是这次,或许跟我开了一个玩笑,当执行到grub rescue>insmod /boot/grub/normal.mod又遇到了error:invalid arch independent ELF magic问题,真是好事多磨,又花了一些时间解决这个问题。

具体方法如下:

正确的解决方法如下:
1、使用U盘或者是CD,重启电脑,选择try ubuntu选项,试用ubuntu;这一步,我使用了U盘驱动;
开机时,boot 顺序选项中,选择U盘启动;

注:在boot顺序中,向下寻找,找到了可以选择U盘启动的选项,以此来解决这个问题。


2、试用ubuntu,在终端输入一下命令,#号之后是注释,不需要输入
sudo apt-get remove grub-efi-amd64   #移除grub-efi
sudo apt-get install grub-pc  #安装普通grub
sudo mount /dev/sda10 /mnt    #挂载引导分区,(注意:这一步因人而异。如果没有对ubuntu进行独立的启动引导分区,那么 sda10对应的就是根目录/所在的分区,可依照自己事先的分区对号入座,笔者是sda10,如果你的设置是sda8就改成sda8, 是sda9就改成sda9,以此类推。如果在安装ubuntu的过程中,分区有独立的启动引导分区/boot,那么这一行的命令修改为sudo mount /dev/sda10 /mnt/boot。)
sudo grub-install --root-directory=/mnt /dev/sda
最后一条命令之后,终端提示没有错误,大功告成。如果有错误,重新来过。
第三行命令时,如果不清楚自己的/boot在哪一个分区,可以提前输入sudo fdisk -lu /dev/sda 会有磁盘的使用情况,参考着进行选择。

3、重新启动
此时,系统变正常。我的启动后有乱码,但是进入ubuntu系统后,终端输入sudo update-grub,乱码消失。


至此,问题终于得到解决。



参考文章:http://ilovewen.blog.163.com/blog/static/1874223892013979132461/

http://ubuntuforums.org/showthread.php?t=2039793

http://www.linuxidc.com/Linux/2012-07/65249.htm

http://blog.csdn.net/woty123/article/details/7934417

http://blog.csdn.net/li_hai/article/details/7776213

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值