最近尝试着把ubuntu安装到一块移动硬盘上,实现即插即用,也避免使用虚拟机带来到性能降低,算是“真正的”体验一下ubuntu。可是安装完成,重启以后却老是进入 grub rescue> 模式,开不了机。固然,对于小白到我来讲,确定是baidu啦,毕竟不能google。结果发现出现这样问题到同窗还真很多,不少热心到朋友都给出了解决方法。html
引发这类问题的缘由倒还很多,好比在windows系统中删除linux系统或者是直接格式化啦linux盘,linux系统到启动分区被更改了……总之就是grub2配置文件损坏啦,致使不能正常启动,而进入了救援模式。具体原理不太懂,之后再补上.....linux
此文讲解到比较详细,能够参考。ubuntu
主要分为一下几个步骤:windows
1. 利用 ls 命令列出磁盘信息:性能
grub rescue>lsui
会罗列全部的磁盘分区信息,比方说:google
(hd0,msods1),(hd0,msdos2),(hd0,msdos3),(hd1,msdos2),.....spa
2. 继续利用 ls 命令来查找 ubuntu 分区:这里须要注意区分在安装ubuntu时是否单独分了/boot分区
grub rescue> ls (hd0,msdos1)/boot/grub # 未单独分出/boot分区.net
grub rescue> ls (hd0,msdos1)/grub # 单独进行啦/boot分区unix
针对以上所示到磁盘分区逐个调用上述命令,直到结果显示没有错误,而是列出一系列文件为止。个人是 ls (hd0,msdos2)/grub 到时候列出了一些文件,说明找到啦ubuntu分区。
3. 修改启动分区:一样区分/boot是否单独分区的状况
/boot没有进行单独分区:
grub rescue>set root=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos2)/boot/grub
grub rescue>insmod /boot/grub/normal.mod
grub rescue>normal
/boot进行单独分区:
grub rescue>set root=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos2)/grub
grub rescue>insmod /grub/normal.mod
grub rescue>normal # 正常状况下,这就能够启动进入ubuntu启动界面啦
个人状况是/boot单独分区啦,但是利用上述方法并不成功,总说找不到文件,后来百度经验的方法给了答案(厉害):
set root=(hd0,msdos2)/grub
set prefix=(hd0,msdos2)/grub
insmod normal
normal
4.进入ubuntu以后,修复grub:
开机以后,打开终端:
sudo update-grub
sudo grub-install /dev/sdb # 这里sdb就是ubuntu安装到了那个硬盘,我到是在移动硬盘里面,恰好是sdb,千万不要写sdb2等具体分区
写下来备忘,原理不懂,盼大神指教。