1、grub.conf配置文件丢失

首先说明:在grub命令提示符中所有类型的磁盘(不论是SATA还是SAS的)都被识别成以hd开头的设备(如 hd0),没有sda等等。

当/boot/grub/grub.conf配置文件丢失后,系统重新启动时就找不到linux启动的菜单了,就会直接进入grub提示符界面,界面如下:

这时可使用帮助命令help查看都有哪些命令可以使用。

完整的恢复步骤如下:

如果知道/boot目录在哪个磁盘分区可以省略第一步,直接使用root命令指定磁盘分区,如果不知道的话,可以使用find命令进行查找。

输入find (hd0,0)代表从第一块磁盘的第一个分区,在输入时直接输入find (hd0,0)/vmlinuz,后面使用tab键进行补全,如果能补全,就代表在这个分区能找到内核文件。

再使用root指定磁盘分区;

然后指定内核并传递参数给内核文件,ro代表以只读方式,root=/dev/sda2中的/dev/sda2是根文件系统所在的分区;(因此装系统时要注意一下根文件系统所在分区的名称,如果是根文件系统在逻辑卷上,就要写逻辑卷分区的名称)

最后指定initrd文件,initrd是一个用内存来模拟磁盘的文件,是一个小型的根文件系统,其包含了  当前系统  的真正根文件系统的 驱动,有了这些驱动linux内核才能去挂载真正的根文件系统。

kernel后面的内核文件名 和 initrd后面指定的文件都可以使用tab键进行自动补全

前面几步设置好后使用boot命令启动。

启动后,进入/boot/grub目录重新编写grub.conf文件,文件内容大致就是上面操作的几步,内容如下:

其中default=0代表title如果有多个的话,默认选择第一个title的启动;timeout=3代表启动时在grub选择界面停留3秒,title后面的可以自己随便定义。编辑完保存好,下次启动就不会出现问题了。

在上面的步骤中,若是kernel的参数 root= 这里指定的根文件系统所在分区的名称不正确的话,是会报错的,报错界面如下所示

2、MBR的前446字节丢失(如果是中间64字节丢失,此方法不适用,中间64字节丢失是分区表被破坏)

MBR总共有512字节,前446字节存放BootLoader程序,接下来的64字节存放分区表信息,最后2字节存放特殊标志。这里主要说明bootloader遭到破坏后如何修复。

当bootloader遭到破坏后重新启动后的界面如下:

这时就要启动使用光盘紧急救援模式。

挂载好光盘后,设置启动项从光驱启动,进入安装界面

选择Rescue installed system

回车后根据提示选择语言Lanaguage,键盘类型keyboard type,一般默认就行。然后到以下界面。

这一步是否启用网络,如果需要启用,可以选Yes,进入界面进行IP等的配置,这里不启用。

这里不用启用,选NO。进入下面的界面

默认Continue即可,接下来几步默认即可,一直到下面这一步。

这一步是在选择OK后,出现最下面的命令提示符,接下来就要进行操作了

第一步使用chroot /mnt/sysimage 切换到/mnt/sysimage目录所在的根文件系统,根文件系统会被挂载到此目录下,然后使用grub进入命令提示符,同样是使用root (hd0,0)指定磁盘分区,然后使用setup (hd0)直接开始进行恢复MBR,MBR不在任何分区,所有setup后面直接跟(hd0),直接指定磁盘即可。

恢复成功后,使用quit退出grub命令提示符界面,再使用exit退出/mnt/sysimage目录所在的根文件系统,回到从光盘中加载的根文件系统中,重启系统后即可正常进入系统

3、grub目录丢失


当/boot/grub目录丢失后,系统也不能进入系统,重启系统后报错如下:

这时仍然是进入紧急救援模式,具体步骤见上面的MBR丢失。

进入到救援模式后,使用chroot切换到/mnt/sysimage所在根文件系统中,使用grub-install命令重新安装grub目录,grub-install --root-directory=/ /dev/sda2 这个命令中--root-directory= 应该格式boot目录的根目录——也就是根/    后面再指定根文件系统所在的磁盘设备,这里就算根文件系统所在的分区是逻辑卷,也不能使用逻辑卷名称;而是要像上面一样使用原始的设备名称/dev/sda2或/dev/sda1或/dev/sda,总之执行完grub-install命令后要能出现下面的(fd0) /dev/fd0和 (hd0) /dev/sda这样的行才算安装成功。

安装好后就可以看到/boot目录下已经有grub目录了。

还有最后一步,要到grub目录中手动创建grub.conf文件,文件内容如下:

其中kernel那行如果根文件系统所在的分区是逻辑卷的话,就应该使用逻辑卷的名称,而不能像上面grub-install命令中那样使用/dev/sda2。如果是逻辑卷时应该像下面这样

参数还使用了quiet selinux=0代表使用静默模式、关闭selinux。

如果不关闭selinux时,启动时会报错如下

本文转自 f_066 51CTO博客,原文链接:http://blog.51cto.com/ganmu/1850556,如需转载请自行联系原作者

Grub及MBR修复相关推荐

  1. 【转】win7与ubuntu双系统,删除ubuntu后,启动错误error:no such partition grub rescue的修复--不错...

    原文网址:http://blog.sina.com.cn/s/blog_541900d50101eu9r.html win7于ubuntu双系统,进入windows后直接格式化硬盘分区将ubuntu删 ...

  2. Grub引导项修复详解

    CSDN GitHub Grub引导项修复详解 AderXCoding/system/tools/grub/repair_grub 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可 ...

  3. linux装回win10系统无法开机,Win10/Linux双系统删除之后出现grub无法开机修复方法...

    现在很多用户会把电脑安装成双系统,一个用于日常使用,一个用于测试学习,一些用户反馈Win10/linux双系统,在删除linux系统之后,Win10无法启动,显示grub>,那么遇到这样的问题要 ...

  4. 服务器开机grub gt 命令修复方法,开机grubgt命令修复方法

    最近有的网友向小编反映,自己的电脑在重装系统之后,在开机的时候出现了grub&gt的问题,在网上搜索了很久也没有找到解决的办法,想让小编帮他解决一下这个问题.小编觉得应该不止这一位网友朋友遇到 ...

  5. 一次grub引导项修复记录

    1.状况说明 给U盘上装了个Ubuntu 20.04.5 LTS,结果把硬盘上的GRUB引导项给搞坏了.不插U盘的话,开机进入grub shell界面,进入不了硬盘上的系统. 2.解决方法 2.1.在 ...

  6. Ubuntu双系统Grub启动菜单修复

    一.Ubuntu Grub2使用liveCD修复grub(推荐) sudo –i fdisk –l 这是查看分区情况的命令,我的Linux在sda6分区. mount /dev/sda6 /mnt 这 ...

  7. Redhat GRUB配置错误修复

    一.修复步骤 a) Mv /boot/grub/grub.conf /boot/grub/grub.conf.bak b) Rm –rf /boot/grub/grub.conf c) grub> ...

  8. grub引导项修复详解_grub2修复引导 · LINCHUAN的小站

    [TOC] 前言 之前安装Ubuntu出问题的时候,都会出现grub source问题,一直也没太在意,因为毕竟还不是主要OS.只是这次装的东西有点多了,配置环境都更新了一遍,再重新配一次比较麻烦,结 ...

  9. linux的双系统修复工具下载,Mbrfix官方下载_Mbrfix.exe双系统MBR修复工具下载 - 系统之家...

    Mbrfix.exe官方版是用户修复硬盘中MBR引导的修复程序,mbrfix可以解决电脑安装了Windows和Linux双系统,如果在下直接格式化或删除Linux系统,就不能正常启动Windows系统 ...

最新文章

  1. python公共操作(运算符(+、*、in、not in)、公共方法(len()、del、max()、min()、range()、enumerate())、类型转换(tuple、list、set))
  2. 遇到指针别害怕!先把这篇笔记看一遍~
  3. 缓存最关心的问题是什么
  4. java高级-反射获取对象的18代祖宗
  5. 进击的AssetBundles和它的工具们
  6. [编写高质量代码:改善java程序的151个建议]建议66 asList方法产生的List对象不可更改...
  7. javafx给图形上颜色_红牛商标无效案:新欧盟商标条例下如何满足颜色商标注册条件?...
  8. UnicodeDecodeError: 'gbk' codec can't decode byte 0xfe in position 45: illegal multibyte sequence
  9. 李宏毅自然语言处理——GPT3简介
  10. Pycharm修改快捷键:后退键和前进键
  11. html的android开发工具,只会html也可以做安卓app(附实例)
  12. 2203-python 24点游戏
  13. mysql-8.0.28-winx64安装步骤
  14. A2DP音频流在安卓系统中的实现
  15. C语言:输入英文句子,将所有单词首字符转换成大写后输出
  16. win10下安装CUDA和CUDNN的版本对应
  17. 计算机四级网络-网络技术-第五章 新型网络应用
  18. 我的世界红石科技计算机系统,我的世界真实还原科技产品,自动走时钟表,红石打造核心系统...
  19. 蘑菇云「行空板Python入门教程」第九课-智慧农业物联网系统2
  20. mysql主从搭建、使用mycat实现主从读写分离

热门文章

  1. 操作系统课程设计 内核模块
  2. Kubernetes删除一直处于Terminating状态的namespace
  3. “云计算” 保险业发展新动力
  4. php实现适配器模式(转)
  5. TADOQuery parameter对象被不正确地定义。提供了不一致或不完整的信息
  6. Go 语言编程 — Context 上下文
  7. OpenStack 实现技术分解 (7) 通用库 — oslo_config
  8. Simulink仿真教程4---模块库介绍
  9. 几种常见信号波形变换电路
  10. web复习day03:request