你的问题描述不详细啊,我把几种可能列出来:
1、双系统,重装windows引起没有ubuntu启动项
使用安装版的windows重装windows时会改写mbr,造成grub丢失,可以用grub4dos引
导进入ubuntu后修复grub或用livecd启动后修复grub。
1)用grub4dos修复ubuntu
先下载最新版的grub4dos,下载地址http://nufans.net/grub4dos/ ,如果是xp系统,
把grub4dos压缩包内的grldr复制到C盘根目录下,修改boot.ini,在最后加上一行
c:\grldr="grub4dos",
对 于vista/win7系统,把压缩包内的grldr.mbr和grldr复制到C盘根目录下,在C盘自己
建立一个boot.ini文件,若有boot隐 藏分区的,先给boot分区分配盘符,再把grldr,
grldr.mbr和boot.ini放在boot分区下,boot.ini内容如下:(底部图)
Win7使用软改激活的请不要使用此方法,否则会造成
使用软改激活的请不要使用此方法,否则会造成win7不能启动。
不能启动。
然后在根目录新建一个menu.lst,内容为
timeout 0
default 0
title grub2
find --set-root /boot/grub/core.img
kernel /boot/grub/core.img
boot
(有/boot分区的改为
find –set-root /grub/core.img
kernel /grub/core.img)
重启后选择Grub4Dos会自动转入grub2,从grub2菜单项选择ubuntu启动后,在终端
执行
sudo grub-install /dev/sda
将grub装入第一硬盘的mbr,如要装入第二硬盘的mbr把sda改为sdb,第三硬盘为
sdc,类推。
至于要把grub装到sda或sdb或sdc的mbr上,需根据自己情况确定,看看要设置哪一块
硬盘为启动盘,就把grub装到那块硬盘的mbr上
2、安装时grub没装在mbr上而选择装在linux分区的pbr上,怎么引导ubuntu
1)按前面的方法一,以grub4dos引导转入grub2。
2)把ubuntu分区/boot/grub目录下的boot.img提取出来,放到C盘根目录下,然后修
改boot.ini,在最后添加一行 C:\boot.img="grub2"
对vista/7可在C盘新建一个boot.ini,内容为
[boot loader]
timeout=0
default=c:\boot.img
[operating systems]
c:\boot.img="grub2"
重启后选择grub2就可进入grub2菜单。
此法兼容性较差,成功率低,仅供测试。
3、由于分区调整引起分区号或分区UUID改变造成的grub2不能正常启动
己安装好系统,对硬盘再次进行分区调整时可能会改变现有分区的分区号发生变化,
或者某种原因改变启动分区的UUID,都会造成grub2不能正常启动,而启动进入修复
模式(grub rescue),这时就要对grub进行修复。
1)用ubuntu9.10的livecd光盘启动,进入试用桌面系统后,再修复grub,操作方法如
第一种情况的第二种方法—
2)在rescue模式下启动并修复
由于分区问题,启动时会自动进入rescue模式,只要grub核心文件还在分区内,就能
由rescue模式转到normal模式,进而通过命令进入系统。下面这个就是rescue介面:
error: unknown filesystem
grub rescue>:
由于在rescue模式下,只有少量的基本命令可用,必须通过一定的操作才能加载正常
模块,然后进入正常模式。
rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径)
先假设grub2的核心文件在(hd0,8)分区,再来看看怎样从rescue模式进入从(hd0,8)启
动的正常模式(normal)。
在rescue模式下search命令不能用,对不清楚grub2文件处于哪个分区的,可以用ls命
令查看,比如
ls (hd0,8)/ 查看(hd0,8)分区根目录,看看有没有boot文件夹
ls (hd0,8)/boot/ 查看(hd0,8)分区的/boot目录下文件
ls (hd0,8)/boot/grub/ 查看(hd0,8)分区/boot/grub目录下文件
通过文件查看,可以确定grub2核心文件处于哪个分区,接下来就可以进行从rescue到
normal的转变动作:
先 ls 看看分区,根据分区列表,猜下 / 分区的编号再 ls (hd0,x)/ 看分区目录下文件确
定找到 / 分区,不对的话继续找。找到 / 分区的 (hd0,x) 继续
grub rescue>root=(hd0,x)
grub rescue>prefix=/boot/grub
grub rescue>set root=(hd0,x)
grub rescue>set prefix=(hd0,x)/boot/grub
grub rescue>insmod normal
rescue>normal -------->若出现启动菜单,按c进入命令行模式
rescue>linux /boot/vmlinuz-xxx-xxx root=/dev/sdax
rescue>initrd /boot/initrd.img-xxx-xxx
rescue>boot
内 核版本号 -xxx-xxx可以按Tab键查看后再手动补全。
有 /boot分区的,要先找出 /boot 分区 (hd0,x),再找出 / 分区的 (hd0,y),同样用 ls
(hd0,x)/ 和 ls (hd0,y)/ 的方式确定分区
grub rescue>root=(hd0,x)
grub rescue>prefix=/grub
grub rescue>set root=(hd0,x)
grub rescue>set prefix=(hd0,x)/grub
grub rescue>insmod normal
rescue>normal -------->若出现启动菜单,按c进入命令行模式
rescue>linux /vmlinuz-xxx-xxx root=/dev/sday
rescue>initrd /initrd.img-xxx-xxx
rescue>boot
说明:
1)由于grub2版本的的不一致,有的可能在第9步insmod normal.mod加载正常模块后
直接进入normal模式,即出现了normal grub>的提示符,这种情况就不能执行第10
步,即可以跳过normal命令的输入。
2)虽然输入normal命令会出现菜单,但由于缺少加载内核的Linux命令,直接从菜单
不能进入系统,需要按c在命令行继续操作。
3)使用/boot单独分区的,要正确修改路径,如
prefix=(hd0,8)/grub
insmod /grub/normal.mod
另外root=/dev/sda8也要修改根分区的分区号。
4)按boot启动系统后,再在系统下打开终端,执行命令修复grub
重建配置文件grub.cfg
sudo update-grub
重建grub到第一硬盘mbr
sudo grub-install /dev/sda
4、双硬盘双系统 Grub Loading时间过长的解决方案
grub2的boot.img设定root的uuid从第一分区开始搜索分区的/boot/grub下的模块并加
载, 如果linux分区处于第二硬盘甚至第三硬盘,会导致搜索时间过长而,出现菜单时
间会长达10多秒。
对双(多)硬盘的情况建议把grub安装在ubuntu所在硬盘的mbr上,/boot分区或 / 分
区 尽量靠前,并设该硬盘为启动盘,会大大缩短启动时间。
我遇到你这样的问题,我认为能修好的可能行真的不大,所以你考虑下重装双系统,没事别在Ubuntu下打开windows系统C盘的东西,Windows很娇贵,不小心改了哪个地方都会让它进入系统修复,而且这个修复真的真的是形同虚设啊~~
你的数据可以用Ubuntu的安装盘来恢复,你可以用Ubuntu的安装盘启动,这个我就不说了吧~~,然后选第一项进去,你电脑上所有盘里的数据都可以考到移动硬盘里。。
好运~
另外对于上楼聊表不同意见,觉得Windows7引导启动过于麻烦,初学者估计学不来,做双系统的话,可以先装Win7再Ubuntu,重装win7后可以用这个恢复ubuntu启动项。
http://zhidao.baidu.com/question/157881614.html?si=1
login incorrect的原因是控制台不认小键盘的数字,比如123必须打!@#这3个数字,startX试试