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.退出重启机器,系统开机引导成功。