转载自:http://blog.youkuaiyun.com/scut1135/article/details/6930948
grub 引导文件被你格式化了。就是grub坏了。
糊里糊涂做了某个操作,导致ubuntu无法启动。 GRUB显示error: file not found,然后就停到了 GRUB rescue的提示符下。
解决办法:
1. http://wenku.baidu.com/view/d797d43183c4bb4cf7ecd13e.html
用Ubuntu的安装CD,也就是Live CD从光驱启动,打开一个终端窗口,在里面输入如下命令:sudo -i (获得超级用户权限)mount /dev/sda7 /mnt (也就是你的Ubuntu的“/”的挂接硬盘分区,比如sda7,根据你的具体安装情况确定,/mnt是你建立的一个用来挂接的目录)如果你单独划分了Ubuntu的boot分区,那么还需要做如下操作:mount /dev/sda6 /mnt/boot (假设你的boot分区是在sda6)挂载你其他的分区,如果有的话重建grub到sda的mbrgrub-install --root-directory=/mnt /dev/sda (一定注意/mnt后面有个空格)
然后,重启,就应该可以了
2. grub rescue救援模式的处理我的linux在调整分区后,出现了grub rescue>这表示grub2的配置文件坏了,由于分区调整或分区UUID改变造成GRUB2不能正常启动,从而进入修复模式(grub rescue)也称救援模式。在救援模式下只有很少的命令可以用:set , ls , insmod , root , prefix(1)set 查看环境变量,这里可以查看启动路径和分区。(2)ls 查看设备(3)insmod 加载模块(4)root 指定用于启动系统的分区,在救援模式下设置grub启动分区(5)prefix 设定grub启动路径一、分区乱了,我不知道boot目录在什么地方了ls #查看一下设备状态如图:grub rescue> ls (hd0,msdos3)error: bad filename.提示:错误的文件名,我在测试时发现必须是后面加一个/grub rescue> ls (hd0,msdos3)/./ ../ lost+found/通过查看发现在(hd0,msdos1)/下有一个boot目录二、设置grub的启动分区和路径set root=(hd0,msdos1) #设置grub启动分区set prefix=(hd0,msdos1)/boot/grub/ #设置grub启动路径查看一下设置情况:grub rescue> setprefix=(hd0,msdos1)/boot/grubroot=hd0,msdos1三、加载基本模块insmod /boot/grub/normal.mod #加载基本模块四、进入正常模式normal #进入正常模式,出现菜单,如果加载grub.cfg(错误的)可能出现问题,按shift可以出现菜单,之后按c键进入控制台进入正常模式后就会出现grub>这样的提示符,在这里支持的命令就非常多了。五、引导系统set root=(hd0,msdos1) #设置正常启动分区linux /boot/vmlinuz .... ro text root=/dev/sda1 #加载内核,进入控制台模式initrd /boot/initrd .... #加载initrd.imgboot #引导六、更新grub安装:grub-install /dev/sda更新:update-grub