,之前的相关文章可以参考这两篇,我的grub系统目录不一样
http://www.cnblogs.com/harold-yang/archive/2012/09/17/2689831.html
http://www.cnblogs.com/samcn/archive/2011/03/30/1999615.html
之前系统是Windows Xp(C盘) + D(FAT32),F盘(是NTFS) + E盘(Ubuntu安装盘)。
觉得FAT32格式不太好,于是用DiskGenis工具重新格式化了D盘,改成了NTFS。
想知道我怎么弄的,我用了一个PE启动盘,在PE系统中弄的。
重启之后就出现了grub错误。
拜托我真的不想再重新安装系统了,太麻烦了。
由于在Windows下面更改了分区状态,造成Ubuntu的分区变动,这样找不到grub了,开机显示grub rescue>
其他一些原因也会造成这类问题,一般是引导分区表变化导致的。
1. 先使用ls命令,找到Ubuntu的安装在哪个分区:
grub rescue>ls
会罗列所有的磁盘分区信息,比方说:
(hd0,1),(hd0,5),(hd0,3),(hd0,2)
2. 然后依次调用如下命令: X表示各个分区号码
grub rescue>ls (hd0,X)/boot/grub
如果都找不到的话,需要查一下是否因为Linux版本差异,造成grub的路径不对,例如直接ls(hd0,X)/grub等等。
这里可能会提示 file format error(文件格式错误)之类的活着好找不到,如果是文件格式错误,则显然不是grub所在目录
如果所有地方都提示找不到,那么试试 ls(hd0,X)/ 可以帮你看看每个硬盘分区下有哪些文件,
自己也可以在ls的结果中仔细找找有没有 grub或者boot相关的东西。
3. 假设找到(hd0,5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。
4. 调用如下命令:
grub rescue>set root=(hd0,5)
grub rescue> set prefix=(hd0,5)/boot/grub 或者为 set prefix=(hd0,5)/grub (这里依赖与grub文件夹的路径)grub rescue>insmod /boot/grub/normal.mod 注意这里的红三条指令依次输入,不然可能出现 unknown file system 错误
我在Ubuntu 12.10下尝试时,命令行提示找不到文件,
怎么办呢,自己用ls命令查看一下,
比如我的指令是
ls (hd0,msdos6)/grub
这个时候看到有一个 i386-pc 的目录,我们看看里面的东西:
ls (hd0,msdos6)/grub/i386-pc/
嗯,里买呢果然有一堆 mod 文件,那么好办了,我么把指令修改成这样子,也就是更换一下上面那个文件的路径:
grub rescue>insmod /grub/i386-pc/normal.mod
然后发现没有什么错误,命令行的提示前缀也被加亮了。
5. 下面调用如下命令,就可以显示出丢失的grub菜单了。
grub rescue>normal
6. 不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。
进入Ubuntu之后,在命令终端执行:
sudo update-grub
sudo grub-install /dev/sda
(sda不要修改,保持上面的代码就可以了,
千万不要指定分区号码,例如sda1,sda5等都不对)
7. 重启测试看看是否立刻出现了Ubuntu的系统选择界面,
如果出现了,那么恭喜修复成功。
2014-4-14 22:30 更新增加双系统引导内容
最近又折腾了一下电脑,把原来的win7 和ubuntu12同时重新安装了,
换成了win8.1和ubuntu13.04(没有尝试13.10的kylin系统)。先安装win8,然后安装ubuntu,值得注意的是在硬盘分区时对硬盘空间做好规划。
系统的限制是最多只能有四个主分区+0个扩展分区,或者三个主分区加一个扩展分区,其中扩展分区可以分成任意个逻辑分区,其中操作系统必须安装在主分区中(如果是ubuntu有单独/boot分区,单独的boot分区需要是主分区,ubuntu系统分区可以是扩展分区的一个逻辑分区)。
完成下面的操作您可能需要这两个软件(网络上资源都很多):
1、BOOTICE 一个优秀的引导区修复工具
2、EasyBCD windows下引导项修改工具(可以借助其仅靠硬盘安装ubuntu)
总之安装完毕后,可能是win8来优先引导系统,也可能是ubuntu的grub2来引导系统。
如果自己想优先使用ubuntu而系统启动时是win8的引导界面,可以按照下图这样解决:
即:使用Bootice的“主引导记录”功能,将主引导类型修改成ubuntu系统的grub2类型
注意:这样操作后,重启电脑,可能出现grub rescue,参考上面的办法即可解决。
同时应该注意,由于win8的关机不是彻底的关机,因而需要做一些额外操作,让使用win8后关机时更加彻底,
具体如何操作大家可以参看这篇文章: http://ask.zol.com.cn/q/21741.html
其中引导类型里面,第二个grub4dos是ubuntu硬盘安装的另一种工具,但是相比于EasyBCD略微麻烦一点,
Windows NT 5.x和6.x是现在的windows系统的引导记录。
有两种方式,一种是在ubuntu中设置默认选项到windows,这个比较多。
另外一种方式更加彻底,就是直接先让windows来引导,类似上面的操作设置主引导记录为Windows NT 5.x / 6.x MBR
(windows安装在第一分区的应该不会有啥问题)然后就是新增一个ubuntu的启动选项了,借助于EasyBCD很容易实现:
完成之后,开机的时候便会先出现win8的纯蓝色加载界面,然后出来两个选项,选择后就可以进入到ubuntu的选择界面了。