linux系统救援模式解决开机引导失败问题

问题:linux开机后进入grub命令行且grub命令行输入命令报错

推测:因之前系统装好以后改变过分区,而导致不能读取到grub主开机引导程序

在解决这个问题之前我们先来了解linux开机启动过程。

linux系统开机启动有以下过程

1.开机加载BIOS

2.进入MBR(master boot record)主引导记录:MBR中主要是安装加载引导程序,如主流的grub(既支持win也支持linux)。它是可引导设备的第一个扇区(一般情况下是硬盘中的第一扇区)中的主引导分区 

3.读取运行grub主引导程序:grub主要是识别磁盘格式,用于载入并启动操作系统核心(Kernel)。多操作系统时可以通过配置grub而引导系统启动。

4.启动init进程完成系统启动;据我所知有两种方式init方式。System V  initialization方式和Upstart方式。(具体方式的运行模式自行百度)

  linux开机引导过程大致分为以上几步。

知道了开机启动大致过程,我们针对遇到的问题可以判断问题出在grub主引导程序上。

下面我们将使用系统盘进入linux救援模式修复grub引导程序。

1.放入linux装机光盘并选择以光盘启动

2.选择Rescue installed system 救援模式进入

3.语言选择默认英语,键盘选择us

4.根据需要选择是否联网,这里不需要联网

5.进入到Rescue界面,如果选择Continue按钮并回车则救援模式程序会自动查找系统中已有的文件系统,并把他们挂载到/mnt/sysimage目录下;如果选择Read-Only并回车,则会以只读的方式挂载已有的文件系统,如果需要手动挂载则选Skip

6.之后有三种模式选择 我们选择进入shell模式并根据之前提示输入chroot  /mnt/sysimage命令    (fakd为诊断模式)

7.输入grub进入grub命令行

8.在grub命令行中输入:root(hdx,y)

  其中x为安装linux根分区所在的盘,比如只有一个硬盘那x就是0,linux根分区在第二个硬盘上x就为1.

  其中y为安装linux系统所在的根分区

  我这里输入的是root(hd0,0)

9.输入setup(hd0)

          setup(hd0)就是把grub写入到硬盘的MBR上,显示succeeded就说明写入修复成功。

10.退出重启机器,系统开机引导成功。

posted @ 2020-01-03 15:37  法卡萨多  阅读(3315)  评论(0编辑  收藏  举报