GRUB(统一引导装入器)是基本的Linux引导装入器。
其具有四个作用,如下:
1.选择操作系统(计算机上安装多个操作系统);
2.表示相应的引导文件所在的分区;
3.找到内核;
4.运行初始内存盘,设置内核和相关模块。
楼主小明的电脑型号:Lenovo Y460
grub rescue出现的情景:使用U盘安装Ubuntu16.04,安装完成重启,选择硬盘启动,出现grub rescue。在网上找到解决方法:http://www.linuxidc.com/Linux/2012-07/65249.htm 。该文作者wzhnsc大神2012年写的解决方法,其中一些细节与小明的有一些不同,所以在此根据wzhnsc大神的方法记录一下小明的具体解决步骤,方便日后查找:
1. 先使用ls命令,找到ubuntu的安装在哪个分区:
grub rescue>ls
会罗列所有的磁盘分区信息,比方说:
(hd0),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1)
2. 然后依次调用如下命令: msdosX表示各个分区,注意 msdos 与 数字之间没有空格!
grub rescue>ls (hd0,msdosX)/grub
如果都找不到的话,需要查一下是否因为Linux版本差异,造成grub的路径不对,
例如ls (hd0,X)/boot/grub等等)。
3. 假设找到(hd0,msdos1)时,显示了文件夹中的文件,则表示 Linux 安装在这个分区。
4. 调用如下命令:
grub rescue>set root=(hd0,msdos1)
grub rescue>set prefix=(hd0,msdos1)/grub(该路径与第2步中找到grub文件的路径一致)
grub rescue>insmod /grub/i386-pc/normal.mod(设置之前,找到normal.mod在grub文件中所在的位置)
5. 然后调用如下命令,就可以显示出丢失的grub菜单了。
grub rescue>normal
6. 不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。
进入Linux之后,在命令行执行:
sudo update-grub
sudo grub-install /dev/sda
(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)
7. 重启测试是否已经恢复了grub的启动菜单。
注:sudo gedit /boot/grub/grub.cfg 可以修改 grub 的引导菜单。