ubuntu14.04 修复grub?ubuntu无法进入grub菜单
大家好,今天来为大家分享ubuntu14.04 修复grub的一些知识点,和ubuntu无法进入grub菜单的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
Ubuntu系统下修复Grub的步骤
Ubuntu系统下的Grub修复步骤是:
首先,尝试进入Ubuntu的Live CD系统,或者使用较新版本的Live CD系统。接着,利用终端执行命令“sudo fdisk-l”,找到ID=83的分区,并记录下sd[NUM],如sda8。
如果有多个ID=83的分区,需要自己确定“/”分区所在的分区号,同时确保“/boot”与“/”分区位于同一分区上,比如sda8。
随后,输入“sudo-i”获取root权限,并创建目录“/media/tmp”。将“/”分区挂载至新目录,命令为“mount/dev/sda8/media/tmp”。如果“/boot”分区是单独挂载的,需要找到其分区如sda7,然后执行“mount/dev/sda7/media/tmp/boot”。反之,这一步可直接跳过。
之后,在终端输入命令“grub-install--root-directory=/media/tmp/dev/sda”准备安装Grub。若看到“Installation finished,no error occured”等信息,表示安装成功。
重启系统后,应能恢复原来的Grub2引导界面,并显示所有存在的系统启动选项。如果未看到如“Windows 8”的启动项,可在正常启动Ubuntu后,终端执行“sudo update-grub2”,稍等片刻后,Windows 8的启动项应会添加到列表中。
按照上述步骤修复Ubuntu系统下的Grub,会比重新安装Grub更加简便快捷。若需要修复Grub引导,可以参考:Ubuntu下如何修复Grub引导。
ubuntu14.04开机显示grub命令行,不能进入系统怎么解决
重新安装、修复grub2\x0d\x0a1.先使用ls命令,找到Ubuntu的安装在哪个分区:\x0d\x0a在 grub>下输入以下命令:\x0d\x0als\x0d\x0a\x0d\x0a会罗列所有的磁盘分区信息,比方说:\x0d\x0a\x0d\x0a(hd0,1),(hd0,5),(hd0,3),(hd0,2)\x0d\x0a\x0d\x0a2.然后依次调用如下命令: X表示各个分区号码\x0d\x0a如果/boot没有单独分区,用以下命令:\x0d\x0als(hd0,X)/boot/grub\x0d\x0a\x0d\x0a如果/boot单独分区,则用下列命令:\x0d\x0a\x0d\x0als(hd0,X)/grub\x0d\x0a\x0d\x0a正常情况下,会列出来几百个文件,很多文件的扩展名是.mod和.lst和.img,还有一个文件是grub.cfg。假设找到(hd0,5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。\x0d\x0a\x0d\x0a3,如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下:\x0d\x0a以下是/boot没有单独分区的命令:\x0d\x0agrub>set root=(hd0,5)\x0d\x0a\x0d\x0agrub>set prefix=(hd0,5)/boot/grub\x0d\x0agrub>insmod/boot/grub/normal.mod\x0d\x0a以下是/boot单独分区的命令:(这几句有待验证)\x0d\x0a\x0d\x0agrub>set root=(hd0,5)\x0d\x0a\x0d\x0agrub>set prefix=(hd0,5)/grub\x0d\x0agrub>insmod/grub/normal.mod\x0d\x0a然后调用如下命令,就可以显示出丢失的grub菜单了。\x0d\x0a\x0d\x0agrub>normal\x0d\x0a不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。\x0d\x0a启动起来,进入ubuntu之后,在终端执行:\x0d\x0a sudo update-grub\x0d\x0a\x0d\x0a sudo grub-install/dev/sda\x0d\x0a(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)\x0d\x0a重启测试是否已经恢复了grub的启动菜单?恭喜你恢复成功!\x0d\x0a4,如果找不到正确的/grub目录,则尝试寻找是否有linux核心文件,则依次调用如下命令(X表示各个分区号码):\x0d\x0agrub>下输入:\x0d\x0a如果/boot没有单独分区:\x0d\x0als(hd0,X)/boot\x0d\x0a\x0d\x0a如果/boot单独分区,则:\x0d\x0a\x0d\x0als(hd0,X)\x0d\x0a\x0d\x0a找名字类似与vmlinuz-3.0.0-12-generic这样的文件,这是linux核心文件,如果找到,记下(hd0,X)中的X值。假设找到(hd0,5)时,显示了文件夹中的文件。\x0d\x0a\x0d\x0a然后用live cd或者 live usb启动,在live cd的ubuntu的终端中依次输入以下命令(sda5中的“5”必须改成上面记录下来数值)(这两句需要验证):\x0d\x0a如果/boot没有单独分区:\x0d\x0asudo mount/dev/sda5/mnt\x0d\x0a\x0d\x0asudo grub-install--boot-directory=/mnt/boot/dev/sda\x0d\x0a\x0d\x0a如果/boot单独分区,则:\x0d\x0asudo mount/dev/sda5/mnt\x0d\x0a\x0d\x0asudo grub-install--boot-directory=/mnt/dev/sda\x0d\x0a然后重新启动即可。\x0d\x0a\x0d\x0a(以上这两句命令也可以解决安装ubuntu时grub安装位置不对,没有将grub安装到/dev/sda,造成启动时不出现ubuntu启动项直接进入windows的问题,不过需要自行确定sda5中的“5”改成什么数字。)\x0d\x0a\x0d\x0a5,如果连linux核心文件都没有,那么,彻底重新安装吧。
Ubuntu重装启动失败进入修复grub rescue模式的解决方案
因为把Ubuntu从13.04升级到13.10后,鼠标出现了问题,一打开网页就不停的闪,而且好多东西都不一样了,又不好用,所以选择重装系统,重装的时候偏偏又重新分了区,然后装完了,一重启,悲剧了,进入修复grub rescue模式下了,一时间就不知道怎么办好了,好在还有个平板可以上网,马上上网搜。很快就搜到不少,点开第一个,“用U盘启动进入Windows系统重写mbr”?那我的Ubuntu不就没了!!!直接PASS!!!“直接在grub rescue”下修复,嗯,这个好。马上按给的方法试,我去,完全不一样好不好!完全没有变化!!再接着搜,嗯,这篇好像靠谱多了,还写了出现这种问题对应的情况,不错,有重新分区造成的,这个看起来是了。马上照着做。
1、输入set查看当前的设置(原来这个是查看当前设置的,先前搜到的都不说清楚)
2、输入set root=(hd0,msdos11),难怪刚才我的没有变化,选择前搜到的根本没有set,直接就root=(hd0,msdos11)了。(msdos11是我Ubuntu安装的位置,每个人不同的,可以用ls(hd0,x)/root/grub查看安装到哪个分区了,运行命令后出现很多文件的就是了)
3、输入insmod/grub/normal.mod,我靠,没有这个文件,什么情况!!!难道我的不是Ubuntu!!这不科学!!!冷静,要冷静!检查Ubuntu安装在哪个盘时还有几个文件夹,会不会是文件的路径不一样,嗯,查看一个其它文件路径看看,输入ls(hd0,msdos11)/root/grub/i386-pc,一个回国,出来一大串的文件名,大部分是.mod和.img的,应该就是这个了,把命令换成insmod(hd0,msdos11)/root/grub/i386-pc/normal.mod,成功!!!!
4、输入normal,回车的,熟悉的启动菜单出来了。不过还没有完。
5,进行Ubuntu,打开终端,输入sudo update-grub,更新一下引导文件。
6、输入sudo grub-install/dev/sda,等待几秒,我靠,失败,还没有原因!!算了,重启试试。等待中。。。我去,又是grub rescue!!!重新来过,再次进入Ubuntu,把网页再往下拉,还有解决的方法,不过刚才因为是要用live cd启动就没管,再试这个方法好了!(一般情况到这里应该就修复完成了,不过我的情况不一样,我是在重装时又重新分了区,而且还重新指定了引导文件存在的位置导致的,需要再用到下面的方法才行。)
7、输入sudo mount/dev/sda11/mnt,把安装的盘挂载到/mnt上
8、输入sudo grub-install--boot-directory=/mnt/boot/dev/sda,我靠,出来这一串东西是什么,我没输入错误啊,怎么不是运行成功!再试!还是这样!!!!重复试了几次后,算了,重启吧,奇迹般的启动菜单出来了!!原来已经执行成功了吗?!!
好了!这就是过程了,我的小心脏啊!!!(这是没有把/boot单独分出来的方法,把/boot单独分出来的话就把命令中的“/boot”去掉就好了)