Ubuntu 开机出现 grub rescue> 终端模式修复方法
本人装的windows和Ubuntu双系统,手贱在windows下动了原来挂载在Ubuntu系统上一个盘,本以为不是原来原来划给Ubuntu的硬盘
空间,而且在windows资源管理器里也是可见和可用的,最后格式化了一下,就进不去Ubuntu了,好奇怪
不过网上Ubuntu论坛上有介绍解决方法
1. 先使用ls命令,找到Ubuntu的安装在哪个分区:
grub rescue>ls
会罗列所有的磁盘分区信息,比方说:
(hd0),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1)
2. 然后依次调用如下命令: msdosX表示各个分区,注意 msdos 与 数字 之间没有空格!
grub rescue>ls (hd0,msdosX)/boot/grub
如果都找不到的话,需要查一下是否因为Linux版本差异,造成grub的路径不对,
例如直接ls(hd0,X)/grub等等。
3. 假设找到(hd0,msdos3)时,显示了文件夹中的文件,则表示 Linux 安装在这个分区。
这里我是(hd0,msdos7)
4. 调用如下命令:
grub rescue>set root=(hd0,msdos3)
grub rescue>set prefix=(hd0,msdos3)/boot/grub
grub rescue>insmod /boot/grub/normal.mod
这里需要注意的是有的机器上normal.mod直接在/boot/grub/可以找到,但有的不可以,我们通过ls (hd0,msdosX)/boot/grub命令可以看到一个i386-pc的文件夹,我当时是估计了一下,然后
ls (hd0,msdosX)/boot/grub/i386-pc可以看到一堆文件,好多.mod的文件,于是我猜测normal.mod就在这里面,所以上面
grub rescue>set root=(hd0,msdos3)
grub rescue>set prefix=(hd0,msdos3)/boot/grub
grub rescue>insmod /boot/grub/normal.mod步骤可以改写成:
grub rescue>set root=(hd0,msdos3)
grub rescue>set prefix=(hd0,msdos3)/boot/grub
grub rescue>insmod /boot/grub/i386-pc/normal.mod
就可以了。
5. 然后调用如下命令,就可以显示出丢失的grub菜单了。
grub rescue>normal
6. 不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。
进入Linux之后,在命令行执行:
sudo update-grub
sudo grub-install /dev/sda
(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)
7. 重启测试是否已经恢复了grub的启动菜单。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。