grub rescue命令来修复启动问题
GRUB代表宏伟统一的引导加载程序。
它是计算机启动时运行的第一个软件程序。
引导加载程序负责加载并引导操作系统内核。
GRUB是基于Linux内核的操作系统的默认引导加载程序。
在某些情况下,我们必须在同一台计算机(笔记本电脑或者PC)上运行Linux和Windows,我们可能会遇到Grub的一些问题。
例如,如果在Linux安装后安装Windows,则Windows在MBR(主引导记录)上启动自己的引导加载程序。
因此,GRUB不再可用,我们无法启动到Linux操作系统。
本教程将经过一些方案,使GRUB无法启动,以及如何使用GRUB命令来从启动中抢救Linux操作系统。
什么时候会使用GRUB救援命令?
如今,大多数Linux系统都使用GRUB2(GRUB版本2)。
GRUB2是GRUB引导加载程序的替代品。
如果GRUB无法找到GRUB文件夹或者内部内容已损坏,则GRUB提示符如下所示:
error: no such partition. grub rescue > _
或者
error: unknown filesystem. grub rescue > _
或者
grub > _
此错误可防止我们引导到操作系统中。
以下部分将解释解决此问题的方法。
General Node: Getting into grub mode is general a very common issue when you do a dual boot. Most of the time the fix is to boot using Live USB and chroot into your installed system, then use os-prober and grub install
GRUB救援命令
GRUB失效模式中的每一个都可以由GRUB端子或者实时CD安装程序固定。
在GRUB命令提示符下,输入"LS"以查看磁盘驱动器和可用分区:
grub > ls (hd0) (hd0,msdos2) (hd0,msdos1) grub > _
其中:
HD0:硬盘
MSDOS:分区类型
通常,OS由硬盘的第一个分区引导。
在这种情况下,要验证可启动分区是否为"MSDOS1",请运行以下命令:
grub > ls (hd0,msdos1)/
接下来,让我们通过运行来探索grub2目录:
grub > ls (hd0,msdos1)/grub2
输出:
device.map fonts grub.cfg grub.cfg.1590068449.rpmsave grubenv i386-pc locale
如我们所见,Linux中的GRUB有自己的配置文件:'grub.cfg'。
如果我们没有看到此文件,则可以通过运行命令来创建它:
grub2-mkconfig
为了引导系统,让我们键入:
grub > set root=(hd0,msdos1)
输出:
linux (hd0,msdos1)/vmlinuz-3.10.0-1127.13.1.el7.x86_64 root=/dev/sda1
运行"设置根"将定义可引导分区。
默认内核是Linux v3.10.
现在,我们必须定义GRUB2目录的路径:
grub > set prefix=(hd0,msdos1)/grub2 grub > insmod normal
然后:
initrd (hd0,msdos1)/initramfs-3.10.0-1127.13.1.el7.x86_64.img
此外,我们还需要将分区更改为引导分区。
如果我们无法启动系统(可能是由于文件系统的错误,或者由于缺少GRUB配置文件),我们需要从其他媒体启动。
如果可用,我们可以使用一些可启动救援CD或者分发的实时CD。
启动到系统后,如果缺少或者错误配置,我们可能需要创建GRUB配置文件。
要创建这些配置文件,请运行:
$update-grub
此命令需要超级用户权限。
因此,运行此命令(以及本文中的以下命令)作为root。
下一步是在MBR上安装GRUB。
这将解决Windows引起的问题,其中Windows在Linux上安装Windows后,Windows在MBR上安装其引导加载程序。
其中我假设我们已从Live或者Rescue CD启动。
现在,在我们去MBR上安装Grub的详细信息之前,我们需要安装Linux的根分区。
$sudo mount /dev/sda1 /mnt
其中假设根分区为'/dev/sda1'。
此分区安装在/mnt目录上。
我们可以选择自己的挂载点,根文件系统分区可能不同。
现在,我们准备安装Grub。
运行以下命令:
$sudo grub-install --root-directory=/mnt//dev/sda
这将在主引导记录上安装GRUB。
如果要在某些分区上安装它,请将上述命令的最后一个参数用正确的分区替换。
通过启动修复救援
另一种拯救GRUB对Ubuntu和几乎所有Linux发行版的方法是使用启动修复工具。
它是一个图形实用程序,可以通过某些点击修复GRUB2引导加载程序。
我们需要准备一个Live USB/DVD安装程序并启动到Live Linux环境。
然后,让我们将Live OS连接到Internet,通过运行以下命令来安装引导修复:
$sudo add-apt-repository -y ppa:yannubuntu/boot-repair $sudo apt-get update $sudo apt-get install -y boot-repair && boot-repair
将启动启动修复工具,我们可以选择"推荐维修"按钮,然后按照一些后续步骤修复Bootloader。