一、开机出现grub rescue 的修复或者硬盘装系统找不到启动项
针对以下方法 主要是针对window10系统,当时出现这种情况,是因为我在磁盘管理手动删除其他分区,导致分区表混乱,无法正常启动,我的是双系统,Windows一启动就就进入grub> 界面,但是ubuntu 正常启动。安装以下方法正常操作即可。
开机出现grub rescue ,然后就进不了系统了,一开机就提示:
Error:no such device :56156a74-8dd0-4c5b-afef-16egc5afbc1a
grub rescue >
我看到“grub rescue>”,这里应该可以输一下命令,可是不论我输什么命令或重装XP系统都是没有反映。后来经过百度才知道,我的引导文件grub坏了。
然后在网上查找很多关于grub rescue的修复,比如ls命令查看
用 ls (hd0,msdos1)/ 一个一个的的尝试 当出现有grub字眼是 就说明 找到了 正确的引导分区 你可以用ls (hd0,msdosX)/grub 继续查看里面的具体内容等等方法都不成功。曾经尝试重装系统,这风险太大,可能把原来的文件擦除或者丢失了。最后制作一个Ubuntu的启动盘
下面有很详细的步骤:
1.首先下载一个ubuntu的iso镜像文件
2.下载universal usb installer
3.运行installer 將u盘制作成启动盘(移动硬盘不行)
4.设置电脑的加载顺序,“先启动usb设备”。重新启动
5.直接启动ubuntu,打开terminal。
输入 :sudo apt-get install lilo
6.sudo fdisk -l 查看有哪些bootx选项下有*号
如sda1 * XXXXXX
7.然后 sudo lilo -M /dev/sda mbr
8.重启,修改加载顺序,一切正常~~~
二、重装grub到启动项(ubuntu)
PC安装ubuntu和 Windows双系统,将ubuntu添加windows到启动菜单;
然后启动之后,重启就只有windows了。所以第一步就是做一个linux启动盘。但是一直进入Grub>
好在用以下方法可以进入ubuntu系统,方法如下:
1、使用ls命令,找到Linux的安装分区:
grub rescue>ls
会罗列所有的磁盘分区信息:
(hd0,msdos13),(hd0,msdos12),(hd0,msdos11),,,,,,(hd0,msdos5),(hd0,msdos1)
注:有可能你的hd0后面不是msdosX,以下的操作就把msdosX换成自己硬盘的标号
2、然后依次调用如下命令:msdosX表示某个分区,X代表数字且msdos与数字之间没有空格
grub rescue>ls (hd0,msdosX)/boot/grub
如果都找不到的话,直接ls(hd0,msdosX)/grub(我的笔记本是这种格式,(hd0,msdos11)/grub)
其实,还可以用“ls (hd0,msdosX)/”,看grub文件夹在那个盘符下
注:“/”不可省略。
3、假设找到(hd0,msdos11)时,显示了文件夹中的文件,则表示Linux安装在这个分区。
4、调用如下命令,设置变量:
grub rescue>root=(hd0,msdos11)
grub rescue>prefix=(hd0,msdos11)/boot/grub (注:我的就是>prefix=(hd0,msdos11)/grub)
grub rescue>insmod /boot/grub/normal.mod
5、然后调用如下命令,就可以显示出丢失的grub菜单了。
grub rescue>normal
进入ubuntu系统之后,但是重启之后,又进入Grub>界面,所以按照以上方法进入系统,
1、sudo fdisk -l
2、sudo mkdir /media/temp
3、找出原来linux盘 sda8(就是boot安装的分区)
4、mount /dev/sda8 /media/temp
5、grub-install --root-directory=/media/temp /dev/sda
但是有的是grub-install --local-directory=/media/temp /dev/sda
6、当出现“Installation finished.No Error Reported.”的时候,就表示操作成功了
三、 开机,黑屏,显示unknown filesystem,然后换行显示grub rescue。让人不知所措。
解决方案:
1、输入ls
显示(hd0,msdos10)(hd0,msdos9)(hd0,msdos6)······
2、然后输入 ls (hd0,10)/boot/grub
注意:这儿如果grub不是在此分区中,会找不到文件,如果在此分区中,会出现文件夹中文件列表。挨个试就行。
我的在msdos6中。
3.分别输入如下命令。
set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod /boot/grub/normal.mod
normal
备注:此处如果显示找不到normal.mod。
insmod /boot/grub/normal.mod可以该为insmod /boot/grub/i386-pc/normal.mod
我的文件就是在这个文件夹中。
4、进入linux系统,我的是linuxdeepin。
输入如下命令,进行grub修复。
sudo update-grub
sudo grub-install /dev/sda
如果提示如下,
/usr/sbin/grub-setup:警告: Your core.img is unusually large. It won't fit in the embedding area..
/usr/sbin/grub-setup:警告: 无法嵌入。在此次安装中 GRUB 只能通过使用块列表安装。但是块列表是不可信赖的,不推荐使用。.
重启后问题依旧,输入一下指令,强制写入。
sudo grub-install --force /dev/sda
会出现以下2报警,不用管他。
/usr/sbin/grub-setup:警告: Your core.img is unusually large. It won't fit in the embedding area..
/usr/sbin/grub-setup:警告: 无法嵌入。在此次安装中 GRUB 只能通过使用块列表安装。但是块列表是不可信赖的,不推荐使用。.
Installation finished. No error reported.
重启后正常。