如何拯救一台GRUB 2启动失败的Linux电脑

发布时间:2021-10-16 21:54:14

grub是多*作系统的启动程序,grub2相对grub增加了不少新功能,比grub更加实用,不少朋友linux系统*作中,会遇到grub2启动失败的问题,下面小编就给大家介绍下linuxgrub2启动失败的解决方法。

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

如何拯救一台GRUB 2启动失败的Linux电脑

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

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

grub2命令行

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

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

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

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

grub》setpager=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/vmlinuzvmlinuz.old

initrd.imginitrd.img.old

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

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

ubuntu14.04ltsl

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

从grub》中启动

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

grub》setroot=(hd0,1)

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

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

grub》boot

第一行设置分区的根文件系统。第二行告诉grub您想要使用的内核位置。开始输入/boot/vmli,然后使用tab补完填写。输入root=/dev/sdx设置根文件系统位置。是的,这似乎是多余的,但如果你忘记了输入,你会得到一个kernelpanic。你知道怎么找到正确的分区吗?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》setroot=(hd0,1)

grub》linux/vmlinuzroot=/dev/sda1

grub》initrd/initrd.img

grub》boot

从grubrescue》中启动

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

grubrescue》setprefix=(hd0,1)/boot/grub

grubrescue》setroot=(hd0,1)

grubrescue》insmodnormal

grubrescue》normal

grubrescue》insmodlinux

grubrescue》linux/boot/vmlinuz-3.13.0-29-genericroot=/dev/sda1

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

grubrescue》boot

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

永久*的修复

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

#update-grub

generatinggrubconfigurationfile。。。

foundbackground:/usr/share/images/grub/apollo_17_the_last_moon_shot_edit1.tga

foundbackgroundimage:/usr/share/images/grub/apollo_17_the_last_moon_shot_edit1.tga

foundlinuximage:/boot/vmlinuz-3.13.0-29-generic

foundinitrdimage:/boot/initrd.img-3.13.0-29-generic

foundlinuximage:/boot/vmlinuz-3.13.0-27-generic

foundinitrdimage:/boot/initrd.img-3.13.0-27-generic

foundlinuximage:/boot/vmlinuz-3.13.0-24-generic

foundinitrdimage:/boot/initrd.img-3.13.0-24-generic

foundmemtest86+image:/boot/memtest86+.elf

foundmemtest86+image:/boot/memtest86+.bin

done

#grub-install/dev/sda

installingfori386-pcplatform.

installationfinished.noerrorreported.

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

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

[如何拯救一台grub2启动失败的linux电脑]相关文章:

看了如何拯救一台GRUB 2启动失败的Linux电脑还看了:
  • 启动不了的台式电脑如何设置光驱

    当我们的饿台式电脑启动不了时应该要怎么处理呢?下面是小编为大家搜集整理出来的有关于启动不了的台式电脑如何设置光驱,希望可以帮助到大家!两种设置光驱优先启动的方法第一:awardbios设置光驱启动方法第二:华硕主板设置光驱启动方法。工具/原...

  • 如何设置电脑的启动项

    电脑开机启动项越多,电脑启动速度就越慢,下面小编手把手教大家如何合理安全的设置开机启动项,从而加快电脑开机的速度,一起来看看:第一步:从开始---运行,然后呼出运行的界面(快捷键是:同时按住键盘的win+r键)第二步:输入msconfig”...

  • 台式电脑如何设置光驱启动呢

    台式机想要设置成为光盘启动,有什么方法呢?以下是小编为大家搜集整理提供到的台式机设置光盘启动方法,希望对您有所帮助。欢迎阅读参考学习!台式机设置光盘启动方法一:1.第一步,设置光启:所谓光启,意思就是计算机在启动的时候首先读光驱,这样的话如...

  • 联想台式电脑如何设置光驱启动

    电脑(puter)是一种利用电子学原理根据一系列指令来对数据进行处理的机器。这是小编为大家带来的联想台式电脑如何设置光驱启动,希望对大家有所帮助。一、快捷键设置1、开机看到联想logo的时候,按f12。2、进入启动项菜单。3、使用方向键移动...

  • 台式电脑如何设置光驱启动项

    在我们使用台式电脑时需要设置光驱启动项,那么应该如何进行设置呢?下面是小编分享给大家的台式电脑如何设置光驱启动项,欢迎阅读。当计算机刚刚启动出现如下英文字母界面时,按del键直到进入主板bios如果不出现,则重新启动计算机,出现下图为止:在...