我最近对硬盘进行了重新分区,并且系统上的GRUB已损坏。在启动时,我会收到GRUB抢救提示,并且必须执行以下步骤才能正常启动:
set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal
normal
(这些步骤已在此处的另一篇文章中找到!)。
我对每次引导都重复这一点感到非常厌倦,如何永久修复GRUB?
我最近对硬盘进行了重新分区,并且系统上的GRUB已损坏。在启动时,我会收到GRUB抢救提示,并且必须执行以下步骤才能正常启动:
set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal
normal
(这些步骤已在此处的另一篇文章中找到!)。
我对每次引导都重复这一点感到非常厌倦,如何永久修复GRUB?
Answers:
首先是我们必须在修复grub之后才启动操作系统。
#to start OS-->
error: unknown filesystem.
Entering rescue mode...
grub rescue>
首先,当您看到这样的错误时,我们必须检查“文件系统”是否为ext2'。
grub rescue> ls # type 'ls' and hit enter to see drive partition.
(hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos4) ... # you will see such things
这是我们的驱动器,现在我们必须检查哪一个是ext2。
grub rescue>ls (hd0,msdos6)
error: disk 'hd,msdos6' not found.
换另一个驱动器,直到得到“ Filesystem is ext2”。
grub rescue>ls (hd0,msdos5)
error: disk 'hd,msdos5' not found.
grub rescue>ls (hd0,msdos2)
(hd0,msdos2): Filesystem is ext2 # this is what we want
现在设置路径
grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
现在只要在任何Ubuntu上执行以下命令即可修复grub
sudo grub-install /dev/sda
sudo apt-get update
# to update grub
sudo apt-get upgrade
确保登录操作系统后必须更新grub
我会尝试运行update-grub
以再次构建grub.conf
/ grub.cfg
。
您也可以尝试使用grub-install
,但我认为这没有帮助。
如果您想了解更多信息,请通过运行以下命令首先检查您拥有哪个版本(GRUB 1或2):
dpkg -l | grep grub
如果您有GRUB 2,则可以使用以下教程:http : //www.dedoimedo.com/computers/grub-2.html
当然,在谈论引导过程时,请小心使用GRUB,这是一种敏感的机制。
grub-install <correct-drive, i.e. /dev/sda>
并且update-grub2
终于做到了,我在Ubuntu 15.04
当您收到GRUB救援提示时,这意味着GRUB引导加载程序无法从中包含它们的分区中找到其模块/boot/grub
。这样做的原因是,适合驱动器MBR记录的代码很小,因此其主要目的是查找并加载其余的引导程序代码。一旦加载了其模块,就可以显示GRUB菜单并处理其余的引导过程。如果找不到模块,则会显示非常有限的救援提示。
因此,如果您进行了重新分区,那么您所看到的是完全正常的,从而破坏了引导加载程序对包含引导模块的分区的引用。
由于您可以手动引导,因此最简单的修复方法是手动引导并在MBR中重新安装引导加载程序,以便它对分区具有正确的引用。这样做的方法是:
sudo grub-install /dev/sda
这假定您从中启动/dev/sda
(大多数情况下,如果不是,则将其替换为正确的驱动器)。
此解决方案比使用容易得多boot-repair
,但是如果不确定,这可能更合适。
最简单的方法是:
sudo apt-get purge grub-pc grub-pc-bin
然后:
sudo apt-get install grub-pc grub-pc-bin
解决grub抢救失败的最终案例:问题:1. 找不到i386-pc ****普通模式不起作用 cp不起作用 search.file不起作用。所有这些都可以通过以下命令解决,也可以与Ubuntu 18.04一起使用。步骤1:找到包含目录的根文件夹。
ls
例如,如果根文件夹位于(hd0,gpt4)中,则键入
ls (hd0, 4)/
您将看到一些文件或文件夹:
现在,如果您幸运的话,请执行以下操作:
set root=(hd0, 4)
set prefix=(hd0, 4)/boot/grub/
insmode normal
normal
如果幸运的话,它将解决您的问题。有时人们会遇到诸如找不到1386 pc文件夹的问题。在这种情况下,您必须查看grub文件夹在哪里。如果您遇到以下问题:
在这种情况下,您需要找到文件夹grub2。如果您有grub2,并且在该文件夹中,则可以有i386-pc文件夹。那你需要输入
prefix=(hd0, 4)/grub2/
它会工作。如果您没有grub2并且找不到i386-pc文件夹,请执行以下操作:
grub rescue>set root=(hd0, 4)
grub rescue>set prefix=(hd0, 4)/usr/lib/grub
grub rescue>insmode normal
grub rescue>normal
执行此命令后,您的grub救援模式将进入grub菜单。现在您可以执行linux命令。
grub>set root =(hd0, 4)
grub>set prefix= (hd0, 4)/boot
grub>insmaod linux
grub>linux vmlinuz.....-generic
grub>intrd (hd0, 4)/boot/...-generic
grub>boot
它将带您进入恢复模式。从那里,您可以从几个可用的恢复选项中进行选择。如果没有帮助,则需要下载ubuntu操作系统,例如ubuntu 18.04。您可以从以下链接下载: ubuntu链接
制作一个可启动驱动器,并使用该活动磁盘打开计算机。它不会损害您的任何文档。观看有关如何执行此操作的视频。现在,您必须找到i386-pc文件夹。它将在
rootContainingDirectory-usr-lib-grub
现在将i386-pc复制到boot / grub /文件夹。您可能有一个权限问题来解决该问题,请键入以下命令:
sudo nautilus
现在,右键单击该目录,并将所有者更改为ubuntu实时会话用户
跟随视频:权限更改
现在,将其粘贴到boot / grub文件夹中后,重新启动并卸下USB驱动器。这次使用第一组命令,它将起作用。如果cp命令有效,则也可以从grub菜单执行此操作。