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

news/2025/1/11 11:51:12/

       这两天,在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


http://www.ppmy.cn/news/819826.html

相关文章

Rescure模式无法chroot

在对一台RHEL6.6的机器进行修复的时候,使用DVD引导至rescure模式。在执行 chroot /mnt/sysimage/的时候报 chroot: cannot execute /bin/sh: Exec format error 解决方法是 # cp /lib64/ld-linux-x86-64-so.2 /lib64/libdl.so.2 /lib64/libc.so.6 /mnt/sysimage/lib…

nginx的权限问题(13: Permission denied)解决办法

1、查看nginx启动用户和使用用户是否一致 ps aux | grep nginx 如图: 一个是www,一个是root用户 2、打开nginx配置文件 打开 nginx.conf 文件 查找nginx.conf的位置 ps -aux | grep nginx 3、把 nginx 改为 root 4、重启nginx服务 service nginx restart …

SpringBoot07:Thymeleaf模板引擎

目录 一、Thymeleaf 1、模板引擎 2、引入Thymeleaf 3、Thymeleaf分析 二、测试 1、编写一个TestController 2、编写一个测试页面welcome.html放在templates目录下 3、启动项目请求测试 三、Thymeleaf语法学习 1、修改测试请求,增加数据传输 2、要使用thy…

面试问题总结目录

目录 一 vue 面试题keep-alive理解父子组件传值$nextTick的理解和作用虚拟dom和真实dom 二 vue 生命周期面试题vue生命周期理解第一次加载页面会触发的钩子函数常用钩子函数适用的场景vue 父子组件的渲染顺序vue父子组件销毁的顺序 三 vuex面试题vuex是什么vuex属性及使用方法 …

瑞芯微 RK356x 基于Android11移植usb接口rtl8723du wifi和蓝牙一体化

开发环境 平台: 瑞芯微RK356x 操作系统:Android11 WiFi、蓝牙芯片:RTL8723DU 通讯类型:USB协议 RTL8723du介绍 Realtek RTL8723DU是一个高度集成的单片机802.11b/g/n 1T1R WLAN,和一个集成的蓝牙2.1/4.2单片机,USB 2.0多功能。…

Markdown语法

Markdown语法 目录 Markdown语法简介(不需要的朋友可以跳过)Markdown是什么举个例子更为官方的定义Markdown的背景 Markdown可以用来做什么呢? 标题篇效果 这是一级标题这是二级标题这是三级标题这是四级标题这是五级标题这是六级标题 语法另…

HTML 教程(一文彻底搞懂HTML)

目录 HTML 教程- (HTML5 标准) HTML 简介 什么是HTML? HTML 标签 HTML 元素 Web 浏览器 HTML 网页结构 HTML版本 声明 通用声明 中文编码 HTML 编辑器 HTML 编辑器推荐 VS Code HTML 基础- 4个实例 HTML 标题 HTML 段落 HTML 链接 HTML 图像 HTML 元素 HTML …

打印系统开发(56)——打印机驱动程序设计指南

一、打印机驱动程序设计指南(微软) https://docs.microsoft.com/zh-cn/windows-hardware/drivers/print/ 1、GPD 文件简介 https://docs.microsoft.com/zh-cn/windows-hardware/drivers/print/introduction-to-gpd-files 2、PPD 文件 https://docs.…