ubuntu 安装之后开机显示 grub rescue>

时间:2024-02-21 22:27:27

最近尝试着把ubuntu安装到一块移动硬盘上,实现即插即用,也避免使用虚拟机带来到性能下降,算是“真正的”体验一下ubuntu。但是安装完成,重启之后却总是进入 grub rescue> 模式,开不了机。当然,对于小白到我来说,肯定是baidu啦,毕竟不能google。结果发现出现这样问题到同学还真不少,很多热心到朋友都给出了解决方法。

引起这类问题的原因倒还不少,比如在windows系统中删除linux系统或者是直接格式化啦linux盘,linux系统到启动分区被更改了……总之就是grub2配置文件损坏啦,导致不能正常启动,而进入了救援模式。具体原理不太懂,以后再补上.....

此文讲解到比较详细,可以参考。

主要分为一下几个步骤:

1. 利用 ls 命令列出磁盘信息:

     grub rescue>ls

     会罗列所有的磁盘分区信息,比方说:

     (hd0,msods1),(hd0,msdos2),(hd0,msdos3),(hd1,msdos2),.....

2. 继续利用 ls 命令来查找 ubuntu 分区:这里需要注意区分在安装ubuntu时是否单独分了/boot分区
   grub rescue> ls (hd0,msdos1)/boot/grub    # 未单独分出/boot分区

 grub rescue> ls (hd0,msdos1)/grub   # 单独进行啦/boot分区

  针对以上所示到磁盘分区逐个调用上述命令,直到结果显示没有错误,而是列出一系列文件为止。我的是 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等具体分区

 

写下来备忘,原理不懂,盼大神指教。