grub rescue问题解决

2023-12-27 06:32
文章标签 问题 解决 grub rescue

本文主要是介绍grub rescue问题解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

grub 2介绍

grub的介绍:
https://zh.wikipedia.org/wiki/GNU_GRUB
GNU GRUB(简称“GRUB”)是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。现在是grub2版本。

启动过程

计算机启动后,BIOS将寻找第一个可启动的设备(通常为硬盘),而后从MBR中载入启动程序,然后把控制交给这段代码。MBR位于硬盘的前512字节内。

GRUB第一版本

GRUB的步骤1包含在MBR中。由于受MBR的大小限制,步骤一所做的几乎只是装载GRUB的下一步骤(存放在硬盘的其它位置)。步骤1既可以直接装载步骤2,也可以装载步骤1.5:GRUB的步骤1.5包含在MBR后面的30千字节中。步骤1.5载入步骤2。
当步骤2启动后,它将呈现一个界面来让用户选择启动的操作系统。这步通常采用的是图形菜单的形式,如果图形方式不可用或者用户需要更高级的控制,可以使用GRUB的命令行提示,通过它,用户可以手工指定启动参数。GRUB还可以设置超时后自动从某一个内核启动。

GRUB第二版本

与GRUB第一版相似的是,boot.img像步骤1一样在MBR或在启动分区中,但是,它可以从任何LBA48地址的一个扇区中读取,它(boot.img)将读取core.img(产生于diskboot.img)的第一个扇区以用来后面读取core.img的剩余部分。core.img正常情况下跟步骤1.5储存在同一地方并且有着同样的问题,可是,当他被移动到一个文件系统或一个纯粹的分区时会比在步骤1.5移动或删除引起更少的麻烦。一旦完成读取,core.img会读取默认的配置文件和其他需要的模块。

当GRUB启动后

一旦选择了启动选项,GRUB把选择的内核载入内存并把控制交给内核。在此步骤中,对于Windows之类不支持多启动标准的操作系统,GRUB也可以通过链式启动把控制传给其它启动器。在这种情况下,其它操作系统的启动程序被GRUB保存了下来;与内核不同,其它操作系统如同直接自MBR启动。类似Windows的启动菜单,也许是另一个启动管理器,它允许在多个不支持多启动的操作系统中做进一步的选择。(在已有Windows的系统上面,或者包含多个Windows版本的系统上安装现代的Linux而不修改原操作系统,即属于这类情况。)

Linux启动流程介绍

https://zh.wikipedia.org/wiki/Linux%E5%90%AF%E5%8A%A8%E8%BF%9B%E7%A8%8B

grub rescue问题

原因
win10和ubuntu双系统,win10大幅度升级时破坏了grub
因为grub2其实分为两部分,第一部分在MBR中,第二部分在Ubuntu的boot/grub中,win10升级导致在MBR中的grub找不到在boot/grub中的grub2.
解决办法
开机错误显示:
error: file ‘/boot/grub/i386-pc/normal.mod’ not found.
Entering rescue mode…
grub rescue>
先输入ls回车,查看显示的内容。如:
(hd0) (hd0,msdos14) (hd0,msdos13) (hd0,msdos12)….
然后找出哪个盘安装了系统,
ls (hd0,msdos1)/boot/grub
ls (hd0,msdos2)//boot/grub
..
尝试所有的,直到返回内容不再是error: unknown filesystem.为止。
然后依次输入如下内容:


set root=(hd0,msdos13)/boot/grub
set prefix=(hd0,msdos13)/boot/grub
insmod normal
normal

然后就可以显示grub2的图形界面。详情见https://jingyan.baidu.com/album/c85b7a640cd7d6003bac95f8.html?stepindex=6&wap_detail_test=G6&st=2&os=0&bd_page_type=1&net_type=&ssid=&from=
但这并没有结束,因为win10已经将grub破坏了,下一次重启我们仍会遇到grub rescue问题,所以我们必须重启进入ubuntu修复grub2.
修复grub
进入Linux系统后,在命令行里

  sudo update-grubsudo grub-install /dev/sda     #=>sda是你的启动磁盘,不是某一个扇区

下面是参考资料
1.http://jingyan.baidu.com/album/c85b7a640cd7d6003bac95f8.html?stepindex=6&wap_detail_test=G6&st=2&os=0&bd_page_type=1&net_type=&ssid=&from=
2.https://my.oschina.net/amath0312/blog/227225
3.http://m.blog.csdn.net/jscese/article/details/36865449
4.https://my.oschina.net/arvinjones/blog/139483
5.若以上资料仍未帮你解决问题,请参考一下grub的官网介绍吧
grub2中文繁体手册
grub官网
grub英文手册

这篇关于grub rescue问题解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/542175

相关文章

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间