Linux grub2启动失败的解决方法

2016-02-19 09:47 4 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - Linux教程 】

GRUB是多操作系统的启动程序,GRUB 2相对GRUB增加了不少新功能,比GRUB更加实用,不少朋友Linux系统操作中,会遇到GRUB 2启动失败的问题,下面图老师小编就给大家介绍下Linux GRUB2启动失败的解决方法。

 Linux grub2启动失败的解决方法

update-grub脚本可以可靠的检测内核、启动文件,并添加所有的操作系统,自动生成你的启动菜单,所以你不必手动的修改他们。

我们还要学习如何解决两个常见的故障。当启动系统时,它会停在grub》提示上,这是一个完整的GRUB 2命令界面,所以不要惊慌。这意味着GRUB 2依旧可以正常启动和加载normal.mod模块(它和其他模块分别位于/boot/grub/[架构]/ 下),但没有找到你的grub.cfg文件。如果你看到grub rescue》 这意味着它无法找到normal.mod,因此它有可能找不到你的启动文件。

这是如何发生的?因为内核可能改变驱动器分区号码的分配,或者您移动了您的硬盘驱动器,或者你手动改变一些分区,也有可能是安装一个新的操作系统或者移动一些文件。在这些情况下你的启动文件仍然存在,但GRUB不能找到他们。所以你可以在GRUB提示符中找到启动文件,设置它们的位置,然后启动您的系统并修复GRUB配置。

GRUB 2 命令行

GRUB 2 的命令界面和上一代GRUB中的一样强大。你可以用它来找到引导镜像,内核和根文件系统。事实上,它可以让你避开权限和其它访问控制,完全访问本地计算机上的所有文件。有些人可能会认为这是一个安全漏洞,但是你知道古老的UNIX的名言:有物理访问机器权限的人,就是拥有它的人。

当你在grub 》提示时,你有许多类似命令行界面的功能,如命令历史和tab补全。但是grub rescue》模式是受限的,没有命令历史,没有tab补全。

如果你是在一个正常运作的系统上练习,那就当GRUB菜单出现时,可以按下C来打开GRUB命令行界面。你可以通过向上和向下光标键滚动你的菜单条目来停止启动倒计时。在GRUB命令行下做实验是安全的,因为做不了永久的修改,一切都是暂时的。如果你已经看到grub 》或grub rescue》提示符,那就说明你的表现时刻到了。

接下来的几个命令可以在grub》和grub rescue模式下运行。你应该运行的第一个命令是设置一个分页器,将长的命令分页。如下:

grub》set pager=1

等号两侧必须不能出现空格。现在让我们做一点探索。输入ls来列出的GRUB识别的所有分区:

grub》 ls

(hd0)(hd0,msdos2)(hd0,msdos1)

msdos是什么?这意味着该系统具有老式的MS-DOS分区表,而不是全新的全局唯一标识符的分区表(GPT)。如果你正在运行的GPT,它会出现(hd0,GPT1)。现在让我们看看,使用ls命令查看你的系统里面有什么文件:

grub》 ls (hd0,1)/

lost+found/ bin/ boot/ cdrom/ dev/ etc/ home/ lib/

lib64/ media/ mnt/ opt/ proc/ root/ run/ sbin/

srv/ sys/ tmp/ usr/var/ vmlinuz vmlinuz.old

initrd.img initrd.img.old

太好了,我们已经找到了根文件系统。你可以省略msdos和GPT的标签。如果没有加分区后面的斜杠/,则只会列出分区的信息。你可以用cat命令显示文件系统上的任何文件:

grub》 cat (hd0,1)/etc/issue

Ubuntu14.04 LTS n l

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

在一个多引导系统上,通过/etc/issue文件可以知道这是哪个Linux系统。

从 grub》 中启动

下面讲述如何设置启动文件并从grub 》提示下启动系统。我们已经知道如何从Linux根文件系统(hd0,1)下运行ls命令,你可以一直寻找直到找到你的/boot/grub所在位置。然后运行以下命令,记得使用您自己的根分区,内核和initrd映像等参数:

grub》set root=(hd0,1)

grub》 linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1

grub》 initrd /boot/initrd.img-3.13.0-29-generic

grub》 boot

第一行设置分区的根文件系统。第二行告诉GRUB您想要使用的内核位置。开始输入/boot/vmli,然后使用tab补完填写。输入root= /dev/sdX设置根文件系统位置。是的,这似乎是多余的,但如果你忘记了输入,你会得到一个kernel panic。你知道怎么找到正确的分区吗?hd0,1 即 /dev/sda1,hd1,1 即 /dev/sdb1,hd3,2 即 /dev/ sdd2。我想你可以自己推算剩下的了。

第三行设置initrd文件,必须是和内核相同的版本号。

最后一行启动系统。

在一些Linux系统上,内核和initrd是被符号链接到当前的根文件系统的根目录,就像:

$ ls -l /

vmlinuz -》 boot/vmlinuz-3.13.0-29-generic

initrd.img -》 boot/initrd.img-3.13.0-29-generic

所以,你也可以这样输入命令:

grub》set root=(hd0,1)

grub》 linux /vmlinuz root=/dev/sda1

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

grub》 initrd /initrd.img

grub》 boot

从grub rescue》 中启动

如果你处在grub rescue》 命令界面下,命令有所不同,你必须要先加载两个模块normal.mod 和 linux.mod。

grub rescue》set prefix=(hd0,1)/boot/grub

grub rescue》set root=(hd0,1)

grub rescue》 insmod normal

grub rescue》 normal

grub rescue》 insmod linux

grub rescue》 linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1

grub rescue》 initrd /boot/initrd.img-3.13.0-29-generic

grub rescue》 boot

在你加载了这两个模块之后tab补完的功能就可以用了。

永久性的修复

当你成功地启动你的系统,运行这些命令来永久修复GRUB:

# update-grub

Generating grub configuration file 。。。

Found background:/usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tga

Found background image:/usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tga

Found linux image:/boot/vmlinuz-3.13.0-29-generic

Found initrd image:/boot/initrd.img-3.13.0-29-generic

Found linux image:/boot/vmlinuz-3.13.0-27-generic

Found initrd image:/boot/initrd.img-3.13.0-27-generic

Found linux image:/boot/vmlinuz-3.13.0-24-generic

Found initrd image:/boot/initrd.img-3.13.0-24-generic

Found memtest86+ image:/boot/memtest86+.elf

Found memtest86+ image:/boot/memtest86+.bin

done

# grub-install /dev/sda

Installingfor i386-pc platform.

Installation finished.No error reported.

当你运行 grub-install 时,记得GRUB是安装到整个硬盘驱动器的主引导扇区而不是到一个具体分区,所以不要加上像/dev/sda1一样的分区号。

上面就是Linux GRUB 2启动失败的解决方法的介绍了,但你遇到GRUB 2无法启动的时候不用担心,只需按照本文介绍的方法进行修复,输入正确的命令即可。

来源:http://www.tulaoshi.com/n/20160219/1592143.html

延伸阅读
解决Win7开机出现grub错误解决方法   很多时候我们可能会在不知明的情况下误删系统文件或其他误操作导致无法顺利进入系统,而导致出现grub。Grub对一部分人来说也许很陌生,因为没接触过,所以当遇到这种情况也许很多人会不知所措。 在我周围就遇到过类似的情况,同学的机子不明原因的开机之后不能进入系统,而停留在grub页面。...
据说dl-ssl.google.com在大陆被强了,伟大的天朝真是不让人活了,解决方法就是修改C:\Windows\System32\drivers\etc\hosts文件。添加一行: 74.125.237.1       dl-ssl.google.com  再次下载SDK的时候就会成功啦!
标签: 软件教程
系统重装来说,小编认为U大师是一款值得推荐的软件,不少朋友在U大师的使用过程中会出现一些问题,下面小编为大家提供一些U大师制作u盘启动盘的时候提示失败解决方法 方法一:查看是否有运行杀毒软件、U盘保镖等软件,如果有,就先退出。然后再点“一键制作”。 方法二:制作前先点击还原U盘后,再点“一...
标签: 电脑入门
  Windows Update是我们用来升级系统的组件,通过它来更新我们的系统,能够扩展系统的功能,让系统支持更多的软、硬件,解决各种兼容性问题,让系统更安全、更稳定。今天,我们就来分析一下因种种原因导致的更新失败,让大家在更新系统的时候能够畅通无阻。 殊途同归,五种方式升级系统 方法1:更新系统最常用的方法是单击...
Outlook 2010启动慢解决方法 最近群里有很多用户向pc6小编反馈Outlook 2010比Outlook 2003启动慢很多,长时间停留在启动界面(如下图),希望能教他们一两招提高启动速度。 原因分析:Outlook 2010在启动中会预加载很多COM加载项,有些并不是所有人都会用到的,可以禁用来提高Outlook 2010的打开速度。 解决方法: 1、...

经验教程

124

收藏

56
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部