GRUB 2(Grand Unified Bootloader version 2)是一种流行且灵活的引导加载程序,广泛应用于许多Linux发行版。它充当系统固件与操作系统之间的接口,使用户能够选择要启动的操作系统或内核版本。GRUB 2支持多种操作系统,包括Linux、Windows等,功能非常强大。它采用模块化设计,允许通过各种模块进行自定义和扩展,例如支持不同文件系统和加密功能。GRUB 2还包括交互式命令行界面、救援模式和可编辑的配置选项,用于修改启动行为。该引导加载程序对于管理多系统引导以及确保操作系统在系统更新或更改后正确启动至关重要。

与原始GRUB引导加载程序相比,GRUB 2修复启动问题的能力得到了极大改进。本文提供了修复GRUB 2启动问题的选项信息以及使用GRUB 2终端的具体说明。以下说明均针对GRUB 2编写。

GRUB 2提示符是什么样子的?

当GRUB启动失败时,基本上会出现三种错误信息或界面。

grub>:当GRUB找到了所有内容但找不到配置文件(通常是grub.conf)时,会显示此界面。

grub rescue>:当GRUB 2无法找到GRUB文件夹或其内容丢失/损坏时显示。该文件夹包含菜单、模块和环境数据。

GRUB:仅显示"GRUB"字样,表示GRUB 2连启动所需的最基本信息都无法找到。

以上是启动过程中可能出现的基本错误。此外,屏幕上还可能出现一些其他错误,如冻结的启动画面、Busybox或Initramfs提示:GRUB 2已启动。不过,每种GRUB 2故障模式都可以通过GRUB 2终端或发行版的Live启动CD/DVD来修复。也可以使用第三方救援工具。

可用的基本命令

以下是通过按"c"键进入GRUB 2终端模式后可以使用的命令。

boot (启动系统,也可以使用F10或CTRL-x)

cat (查看配置或文本文件内容;cat (hd0,1)/boot/grub/grub.cfg)

configfile (加载GRUB 2配置文件,如grub.cfg;configfile (hd0,5)/boot/grub/grub.cfg.)

initrd (加载initrd.img,启动时必须;initrd (hd0,5)/initrd.img.)

insmod (加载模块;insmod (hd0,5)/boot/grub/normal.mod,或insmod normal.)

linux (加载内核;linux /vmlinuz root=(hd0,5) ro.)

loop (将文件作为设备挂载;loopback loop (hd0,2)/iso/my.iso.)

ls (列出分区/文件夹内容;ls,ls /boot/grub,ls (hd0,5)/,ls (hd0,5)/boot.)

lsmod (列出已加载的模块.)

normal (激活normal模块,如果已加载.)

search (搜索设备。输入help search查看可用选项.)

set (查看当前设置,或用set XXX设置变量,如colors、prefix、root.)

vbeinfo (显示GRUB 2可用分辨率.)

救援Shell

如果进入救援Shell,这通常意味着GRUB由于某种原因未能加载"normal"模块。可能可以通过临时方法来解决:例如,如果失败原因是"prefix"设置错误(可能指向了错误的设备,或者"/boot/grub"路径相对于设备不正确),则可以修正此设置并手动进入正常模式。

首先检查当前的prefix设置(以及其他预设变量):

set

你的输出大概会像这样:

GRUB 2救援模式修复Linux启动故障完整教程

你的输出可能有所不同,但能获取到所需信息。查看哪些设备可用:

ls

你的输出大概会像这样:

GRUB 2救援模式修复Linux启动故障完整教程

设置为正确的值,可能类似于这样(根据你自己的驱动器名称进行设置):

set prefix=(hd0,1)/grub

设置root(根据你自己的驱动器名称进行设置):

set root=(hd0,1)

以上命令将使你从救援模式退出到正常终端模式。在终端模式下,你可以使用更多功能增强的命令。

执行以上命令后,你可以继续进行其余设置:

insmod normal
normal

加载内核并启动系统:

insmod linux
linux /vmlinuz root=/dev/sdXY ro

如果以上命令不起作用,尝试以下命令:

linux /boot/vmlinuz-3.2.0-14-generic root=/dev/sda1 ro

(可选)选择initrd镜像:

initrd /initrd.img

执行启动:

boot

系统启动后

进入系统后,更新GRUB配置文件:

sudo update-grub

将GRUB重新安装到设备上:

sudo grub-install /dev/sdX

至此救援部分就完成了,你的系统应该可以正常运行了。如果仍然有问题,可以使用Boot Repair工具来省去所有麻烦。这是一个用于修复完整启动菜单的工具,可以直接下载并作为Live启动CD或DVD使用。这是下载链接:http://sourceforge.net/projects/boot-repair-cd/